An opinionated, game-facing surface for the language: - Color.<Name>: 221 named colors resolved to 0xRRGGBB at compile time (selfhost/emit_color.ludic). - Namespaced builtins Screen.* / Input.key / Random.* / Map.*, so calls read as subject.action; present() -> Screen.show(), clear -> Screen.clear, fill_rect -> Screen.fill_rectangle, etc. - Named arguments, e.g. Screen.fill_rectangle(x:, y:, width:, height:, color:), reordered to the callee's parameters at emit time. - machine/become can run over a named program-scope var, not just a register. - Migrate examples off numeric registers to named vars; snake/menu/chronorift render byte-identical to the goldens and the bootstrap fixpoint is preserved. - Regenerate the checked-in seed (selfhost/ludicc.seed.ll). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
36603 lines
1.2 MiB
36603 lines
1.2 MiB
; Ludic (self-hosted) -> LLVM IR
|
|
declare i32 @printf(ptr, ...)
|
|
declare ptr @malloc(i64)
|
|
declare ptr @realloc(ptr, i64)
|
|
declare void @free(ptr)
|
|
declare ptr @fopen(ptr, ptr)
|
|
declare i64 @fread(ptr, i64, i64, ptr)
|
|
declare i64 @fwrite(ptr, i64, i64, ptr)
|
|
declare i32 @fseek(ptr, i64, i32)
|
|
declare i64 @ftell(ptr)
|
|
declare i32 @fclose(ptr)
|
|
declare void @exit(i32)
|
|
declare i32 @system(ptr)
|
|
declare ptr @getenv(ptr)
|
|
declare ptr @memcpy(ptr, ptr, i64)
|
|
declare ptr @memset(ptr, i32, i64)
|
|
declare i64 @strlen(ptr)
|
|
declare i32 @getchar()
|
|
declare i32 @putchar(i32)
|
|
declare i64 @time(ptr)
|
|
declare void @win_open(i32, i32, i32, ptr)
|
|
declare i32 @win_poll()
|
|
declare void @win_present(ptr, i32, i32)
|
|
declare i32 @win_running()
|
|
declare void @win_close()
|
|
@__stderrp = external global ptr
|
|
@__stdoutp = external global ptr
|
|
@.fmt_int = private unnamed_addr constant [4 x i8] c"%d\0A\00"
|
|
@.fmt_line = private unnamed_addr constant [4 x i8] c"%s\0A\00"
|
|
@L_argc = internal global i32 0
|
|
@L_argv = internal global ptr null
|
|
@.gametitle = private unnamed_addr constant [9 x i8] c"SelfHost\00"
|
|
%LSlice = type { ptr, i32, i32 }
|
|
%Cmp_Buf = type { ptr, i32, i32 }
|
|
%Cmp_Node = type { i32, ptr, i32, ptr, ptr, ptr, ptr, ptr, i32 }
|
|
%Cmp_Tok = type { i32, ptr, i32, i32 }
|
|
%Cmp_Val = type { ptr, ptr }
|
|
@g_toks = internal global ptr null
|
|
@g_pi = internal global i32 0
|
|
@g_prog = internal global ptr null
|
|
@g_g_game_name = internal global ptr null
|
|
@g_loaded_paths = internal global ptr null
|
|
@g_cur_dir = internal global ptr null
|
|
@g_head = internal global ptr null
|
|
@g_code = internal global ptr null
|
|
@g_falloc = internal global ptr null
|
|
@g_ll_t = internal global i32 0
|
|
@g_ll_lbl = internal global i32 0
|
|
@g_ll_str = internal global i32 0
|
|
@g_loc_name = internal global ptr null
|
|
@g_loc_reg = internal global ptr null
|
|
@g_loc_ty = internal global ptr null
|
|
@g_loc_mut = internal global ptr null
|
|
@g_nloc = internal global i32 0
|
|
@g_g_uses_str = internal global i32 0
|
|
@g_g_uses_intstr = internal global i32 0
|
|
@g_g_uses_strslice = internal global i32 0
|
|
@g_brk_lbl = internal global ptr null
|
|
@g_cnt_lbl = internal global ptr null
|
|
@g_nloop = internal global i32 0
|
|
@g_ret_ty = internal global ptr null
|
|
@g_g_term = internal global i32 0
|
|
@g_self_stk = internal global ptr null
|
|
@g_nself = internal global i32 0
|
|
@g_mach_stk = internal global ptr null
|
|
@g_nmach = internal global i32 0
|
|
@g_g_scenes = internal global ptr null
|
|
@g_g_scene_count = internal global i32 0
|
|
@g_g_start_scene = internal global i32 0
|
|
@g_g_cur_scene = internal global ptr null
|
|
@g_g_computed = internal global ptr null
|
|
@g_g_onspawn = internal global ptr null
|
|
@g_g_ondespawn = internal global ptr null
|
|
@g_g_onattach = internal global ptr null
|
|
@g_g_ondetach = internal global ptr null
|
|
@g_g_onenable = internal global ptr null
|
|
@g_g_ondisable = internal global ptr null
|
|
@g_g_events = internal global ptr null
|
|
@g_g_onlisten = internal global ptr null
|
|
@g_g_cancel_addr = internal global ptr null
|
|
@g_g_toggled_layers = internal global ptr null
|
|
@g_g_addr_ty = internal global ptr null
|
|
@g_g_intrin_ok = internal global i32 0
|
|
@g_g_windowed = internal global i32 0
|
|
@g_g_iok = internal global i32 0
|
|
@g_g_snap_mode = internal global ptr null
|
|
@g_g_off = internal global ptr null
|
|
@g_g_uses_loopback = internal global i32 0
|
|
@g_uiw = internal global ptr null
|
|
@g_uiw_parent = internal global ptr null
|
|
@g_ui_roots = internal global ptr null
|
|
@.str0 = private unnamed_addr constant [3 x i8] c"rb\00"
|
|
@.str1 = private unnamed_addr constant [28 x i8] c"ludicc(self): parse error: \00"
|
|
@.str2 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str3 = private unnamed_addr constant [20 x i8] c"expected identifier\00"
|
|
@.str4 = private unnamed_addr constant [2 x i8] c"[\00"
|
|
@.str5 = private unnamed_addr constant [2 x i8] c"]\00"
|
|
@.str6 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str7 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str8 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str9 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str10 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str11 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str12 = private unnamed_addr constant [2 x i8] c"+\00"
|
|
@.str13 = private unnamed_addr constant [4 x i8] c"str\00"
|
|
@.str14 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str15 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str16 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str17 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str18 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str19 = private unnamed_addr constant [5 x i8] c"emit\00"
|
|
@.str20 = private unnamed_addr constant [5 x i8] c"true\00"
|
|
@.str21 = private unnamed_addr constant [6 x i8] c"false\00"
|
|
@.str22 = private unnamed_addr constant [5 x i8] c"null\00"
|
|
@.str23 = private unnamed_addr constant [4 x i8] c"new\00"
|
|
@.str24 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str25 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str26 = private unnamed_addr constant [20 x i8] c"expected expression\00"
|
|
@.str27 = private unnamed_addr constant [2 x i8] c".\00"
|
|
@.str28 = private unnamed_addr constant [2 x i8] c"[\00"
|
|
@.str29 = private unnamed_addr constant [3 x i8] c"..\00"
|
|
@.str30 = private unnamed_addr constant [2 x i8] c"]\00"
|
|
@.str31 = private unnamed_addr constant [2 x i8] c"]\00"
|
|
@.str32 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str33 = private unnamed_addr constant [2 x i8] c"-\00"
|
|
@.str34 = private unnamed_addr constant [2 x i8] c"-\00"
|
|
@.str35 = private unnamed_addr constant [2 x i8] c"~\00"
|
|
@.str36 = private unnamed_addr constant [2 x i8] c"~\00"
|
|
@.str37 = private unnamed_addr constant [4 x i8] c"not\00"
|
|
@.str38 = private unnamed_addr constant [4 x i8] c"not\00"
|
|
@.str39 = private unnamed_addr constant [2 x i8] c"*\00"
|
|
@.str40 = private unnamed_addr constant [2 x i8] c"/\00"
|
|
@.str41 = private unnamed_addr constant [2 x i8] c"%\00"
|
|
@.str42 = private unnamed_addr constant [3 x i8] c"<<\00"
|
|
@.str43 = private unnamed_addr constant [3 x i8] c">>\00"
|
|
@.str44 = private unnamed_addr constant [2 x i8] c"&\00"
|
|
@.str45 = private unnamed_addr constant [2 x i8] c"+\00"
|
|
@.str46 = private unnamed_addr constant [2 x i8] c"-\00"
|
|
@.str47 = private unnamed_addr constant [2 x i8] c"|\00"
|
|
@.str48 = private unnamed_addr constant [2 x i8] c"^\00"
|
|
@.str49 = private unnamed_addr constant [2 x i8] c"<\00"
|
|
@.str50 = private unnamed_addr constant [3 x i8] c"<=\00"
|
|
@.str51 = private unnamed_addr constant [2 x i8] c">\00"
|
|
@.str52 = private unnamed_addr constant [3 x i8] c">=\00"
|
|
@.str53 = private unnamed_addr constant [3 x i8] c"==\00"
|
|
@.str54 = private unnamed_addr constant [3 x i8] c"!=\00"
|
|
@.str55 = private unnamed_addr constant [4 x i8] c"and\00"
|
|
@.str56 = private unnamed_addr constant [4 x i8] c"and\00"
|
|
@.str57 = private unnamed_addr constant [3 x i8] c"or\00"
|
|
@.str58 = private unnamed_addr constant [3 x i8] c"or\00"
|
|
@.str59 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str60 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str61 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str62 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str63 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str64 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str65 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str66 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str67 = private unnamed_addr constant [43 x i8] c"expected newline or ';' between statements\00"
|
|
@.str68 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str69 = private unnamed_addr constant [4 x i8] c"let\00"
|
|
@.str70 = private unnamed_addr constant [4 x i8] c"var\00"
|
|
@.str71 = private unnamed_addr constant [4 x i8] c"var\00"
|
|
@.str72 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str73 = private unnamed_addr constant [2 x i8] c"=\00"
|
|
@.str74 = private unnamed_addr constant [7 x i8] c"return\00"
|
|
@.str75 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str76 = private unnamed_addr constant [3 x i8] c"if\00"
|
|
@.str77 = private unnamed_addr constant [5 x i8] c"else\00"
|
|
@.str78 = private unnamed_addr constant [3 x i8] c"if\00"
|
|
@.str79 = private unnamed_addr constant [6 x i8] c"while\00"
|
|
@.str80 = private unnamed_addr constant [4 x i8] c"for\00"
|
|
@.str81 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str82 = private unnamed_addr constant [3 x i8] c"..\00"
|
|
@.str83 = private unnamed_addr constant [6 x i8] c"spawn\00"
|
|
@.str84 = private unnamed_addr constant [8 x i8] c"machine\00"
|
|
@.str85 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str86 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str87 = private unnamed_addr constant [2 x i8] c"=\00"
|
|
@.str88 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str89 = private unnamed_addr constant [5 x i8] c"emit\00"
|
|
@.str90 = private unnamed_addr constant [7 x i8] c"become\00"
|
|
@.str91 = private unnamed_addr constant [8 x i8] c"despawn\00"
|
|
@.str92 = private unnamed_addr constant [7 x i8] c"enable\00"
|
|
@.str93 = private unnamed_addr constant [8 x i8] c"disable\00"
|
|
@.str94 = private unnamed_addr constant [7 x i8] c"enable\00"
|
|
@.str95 = private unnamed_addr constant [6 x i8] c"layer\00"
|
|
@.str96 = private unnamed_addr constant [6 x i8] c"layer\00"
|
|
@.str97 = private unnamed_addr constant [3 x i8] c"on\00"
|
|
@.str98 = private unnamed_addr constant [7 x i8] c"attach\00"
|
|
@.str99 = private unnamed_addr constant [3 x i8] c"on\00"
|
|
@.str100 = private unnamed_addr constant [27 x i8] c"attach needs 'on <entity>'\00"
|
|
@.str101 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str102 = private unnamed_addr constant [7 x i8] c"detach\00"
|
|
@.str103 = private unnamed_addr constant [3 x i8] c"on\00"
|
|
@.str104 = private unnamed_addr constant [27 x i8] c"detach needs 'on <entity>'\00"
|
|
@.str105 = private unnamed_addr constant [6 x i8] c"break\00"
|
|
@.str106 = private unnamed_addr constant [9 x i8] c"continue\00"
|
|
@.str107 = private unnamed_addr constant [7 x i8] c"cancel\00"
|
|
@.str108 = private unnamed_addr constant [6 x i8] c"match\00"
|
|
@.str109 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str110 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str111 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str112 = private unnamed_addr constant [3 x i8] c"=>\00"
|
|
@.str113 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str114 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str115 = private unnamed_addr constant [2 x i8] c"=\00"
|
|
@.str116 = private unnamed_addr constant [3 x i8] c"+=\00"
|
|
@.str117 = private unnamed_addr constant [3 x i8] c"-=\00"
|
|
@.str118 = private unnamed_addr constant [3 x i8] c"*=\00"
|
|
@.str119 = private unnamed_addr constant [3 x i8] c"/=\00"
|
|
@.str120 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str121 = private unnamed_addr constant [2 x i8] c"=\00"
|
|
@.str122 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str123 = private unnamed_addr constant [2 x i8] c"=\00"
|
|
@.str124 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str125 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str126 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str127 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str128 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str129 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str130 = private unnamed_addr constant [3 x i8] c"->\00"
|
|
@.str131 = private unnamed_addr constant [1 x i8] c"\00"
|
|
@.str132 = private unnamed_addr constant [2 x i8] c"@\00"
|
|
@.str133 = private unnamed_addr constant [7 x i8] c"export\00"
|
|
@.str134 = private unnamed_addr constant [7 x i8] c"Public\00"
|
|
@.str135 = private unnamed_addr constant [3 x i8] c"On\00"
|
|
@.str136 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str137 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str138 = private unnamed_addr constant [8 x i8] c"Queries\00"
|
|
@.str139 = private unnamed_addr constant [8 x i8] c"OnSpawn\00"
|
|
@.str140 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str141 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str142 = private unnamed_addr constant [10 x i8] c"OnDespawn\00"
|
|
@.str143 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str144 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str145 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str146 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str147 = private unnamed_addr constant [9 x i8] c"OnAttach\00"
|
|
@.str148 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str149 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str150 = private unnamed_addr constant [9 x i8] c"OnDetach\00"
|
|
@.str151 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str152 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str153 = private unnamed_addr constant [9 x i8] c"OnEnable\00"
|
|
@.str154 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str155 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str156 = private unnamed_addr constant [10 x i8] c"OnDisable\00"
|
|
@.str157 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str158 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str159 = private unnamed_addr constant [8 x i8] c"OnStart\00"
|
|
@.str160 = private unnamed_addr constant [6 x i8] c"Start\00"
|
|
@.str161 = private unnamed_addr constant [7 x i8] c"OnQuit\00"
|
|
@.str162 = private unnamed_addr constant [7 x i8] c"OnQuit\00"
|
|
@.str163 = private unnamed_addr constant [5 x i8] c"Sync\00"
|
|
@.str164 = private unnamed_addr constant [6 x i8] c"Owned\00"
|
|
@.str165 = private unnamed_addr constant [7 x i8] c"Server\00"
|
|
@.str166 = private unnamed_addr constant [7 x i8] c"server\00"
|
|
@.str167 = private unnamed_addr constant [10 x i8] c"Predicted\00"
|
|
@.str168 = private unnamed_addr constant [10 x i8] c"predicted\00"
|
|
@.str169 = private unnamed_addr constant [9 x i8] c"ToServer\00"
|
|
@.str170 = private unnamed_addr constant [9 x i8] c"toserver\00"
|
|
@.str171 = private unnamed_addr constant [10 x i8] c"ToClients\00"
|
|
@.str172 = private unnamed_addr constant [10 x i8] c"toclients\00"
|
|
@.str173 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str174 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str175 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str176 = private unnamed_addr constant [7 x i8] c"import\00"
|
|
@.str177 = private unnamed_addr constant [29 x i8] c"expected \22path\22 after import\00"
|
|
@.str178 = private unnamed_addr constant [5 x i8] c"enum\00"
|
|
@.str179 = private unnamed_addr constant [6 x i8] c"event\00"
|
|
@.str180 = private unnamed_addr constant [9 x i8] c"property\00"
|
|
@.str181 = private unnamed_addr constant [6 x i8] c"model\00"
|
|
@.str182 = private unnamed_addr constant [6 x i8] c"scene\00"
|
|
@.str183 = private unnamed_addr constant [8 x i8] c"handler\00"
|
|
@.str184 = private unnamed_addr constant [7 x i8] c"server\00"
|
|
@.str185 = private unnamed_addr constant [7 x i8] c"model_\00"
|
|
@.str186 = private unnamed_addr constant [7 x i8] c"_spawn\00"
|
|
@.str187 = private unnamed_addr constant [7 x i8] c"model_\00"
|
|
@.str188 = private unnamed_addr constant [9 x i8] c"_despawn\00"
|
|
@.str189 = private unnamed_addr constant [6 x i8] c"prop_\00"
|
|
@.str190 = private unnamed_addr constant [8 x i8] c"_attach\00"
|
|
@.str191 = private unnamed_addr constant [6 x i8] c"prop_\00"
|
|
@.str192 = private unnamed_addr constant [8 x i8] c"_detach\00"
|
|
@.str193 = private unnamed_addr constant [6 x i8] c"prop_\00"
|
|
@.str194 = private unnamed_addr constant [8 x i8] c"_enable\00"
|
|
@.str195 = private unnamed_addr constant [6 x i8] c"prop_\00"
|
|
@.str196 = private unnamed_addr constant [9 x i8] c"_disable\00"
|
|
@.str197 = private unnamed_addr constant [6 x i8] c"Start\00"
|
|
@.str198 = private unnamed_addr constant [14 x i8] c"program_start\00"
|
|
@.str199 = private unnamed_addr constant [13 x i8] c"program_quit\00"
|
|
@.str200 = private unnamed_addr constant [3 x i8] c"ui\00"
|
|
@.str201 = private unnamed_addr constant [4 x i8] c"var\00"
|
|
@.str202 = private unnamed_addr constant [6 x i8] c"const\00"
|
|
@.str203 = private unnamed_addr constant [3 x i8] c"fn\00"
|
|
@.str204 = private unnamed_addr constant [7 x i8] c"extern\00"
|
|
@.str205 = private unnamed_addr constant [6 x i8] c"entry\00"
|
|
@.str206 = private unnamed_addr constant [21 x i8] c"expected declaration\00"
|
|
@.str207 = private unnamed_addr constant [20 x i8] c"cannot open import \00"
|
|
@.str208 = private unnamed_addr constant [1 x i8] c"\00"
|
|
@.str209 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00"
|
|
@.str210 = private unnamed_addr constant [6 x i8] c"Ludic\00"
|
|
@.str211 = private unnamed_addr constant [7 x i8] c"import\00"
|
|
@.str212 = private unnamed_addr constant [2 x i8] c"@\00"
|
|
@.str213 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str214 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str215 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str216 = private unnamed_addr constant [8 x i8] c"program\00"
|
|
@.str217 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str218 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str219 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str220 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str221 = private unnamed_addr constant [2 x i8] c"@\00"
|
|
@.str222 = private unnamed_addr constant [9 x i8] c"Computed\00"
|
|
@.str223 = private unnamed_addr constant [5 x i8] c"Sync\00"
|
|
@.str224 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str225 = private unnamed_addr constant [2 x i8] c"=\00"
|
|
@.str226 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str227 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str228 = private unnamed_addr constant [12 x i8] c"cancellable\00"
|
|
@.str229 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str230 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str231 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str232 = private unnamed_addr constant [2 x i8] c"=\00"
|
|
@.str233 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str234 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str235 = private unnamed_addr constant [7 x i8] c"Update\00"
|
|
@.str236 = private unnamed_addr constant [2 x i8] c"@\00"
|
|
@.str237 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str238 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str239 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str240 = private unnamed_addr constant [6 x i8] c"phase\00"
|
|
@.str241 = private unnamed_addr constant [2 x i8] c"[\00"
|
|
@.str242 = private unnamed_addr constant [2 x i8] c"]\00"
|
|
@.str243 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str244 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str245 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str246 = private unnamed_addr constant [2 x i8] c"]\00"
|
|
@.str247 = private unnamed_addr constant [6 x i8] c"where\00"
|
|
@.str248 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str249 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str250 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str251 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str252 = private unnamed_addr constant [6 x i8] c"query\00"
|
|
@.str253 = private unnamed_addr constant [29 x i8] c"expected 'query' in for-loop\00"
|
|
@.str254 = private unnamed_addr constant [4 x i8] c"and\00"
|
|
@.str255 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str256 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str257 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str258 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str259 = private unnamed_addr constant [6 x i8] c"these\00"
|
|
@.str260 = private unnamed_addr constant [2 x i8] c"[\00"
|
|
@.str261 = private unnamed_addr constant [2 x i8] c"]\00"
|
|
@.str262 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str263 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str264 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str265 = private unnamed_addr constant [2 x i8] c"]\00"
|
|
@.str266 = private unnamed_addr constant [3 x i8] c"on\00"
|
|
@.str267 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str268 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str269 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str270 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str271 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str272 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str273 = private unnamed_addr constant [6 x i8] c"start\00"
|
|
@.str274 = private unnamed_addr constant [7 x i8] c"public\00"
|
|
@.str275 = private unnamed_addr constant [6 x i8] c"start\00"
|
|
@.str276 = private unnamed_addr constant [7 x i8] c"scene_\00"
|
|
@.str277 = private unnamed_addr constant [7 x i8] c"_enter\00"
|
|
@.str278 = private unnamed_addr constant [7 x i8] c"scene_\00"
|
|
@.str279 = private unnamed_addr constant [6 x i8] c"_exit\00"
|
|
@.str280 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str281 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str282 = private unnamed_addr constant [3 x i8] c"on\00"
|
|
@.str283 = private unnamed_addr constant [6 x i8] c"enter\00"
|
|
@.str284 = private unnamed_addr constant [5 x i8] c"exit\00"
|
|
@.str285 = private unnamed_addr constant [38 x i8] c"expected 'enter' or 'exit' after 'on'\00"
|
|
@.str286 = private unnamed_addr constant [6 x i8] c"layer\00"
|
|
@.str287 = private unnamed_addr constant [7 x i8] c"public\00"
|
|
@.str288 = private unnamed_addr constant [7 x i8] c"layer_\00"
|
|
@.str289 = private unnamed_addr constant [6 x i8] c"_show\00"
|
|
@.str290 = private unnamed_addr constant [7 x i8] c"layer_\00"
|
|
@.str291 = private unnamed_addr constant [6 x i8] c"_hide\00"
|
|
@.str292 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str293 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str294 = private unnamed_addr constant [8 x i8] c"handler\00"
|
|
@.str295 = private unnamed_addr constant [28 x i8] c"expected 'handler' in layer\00"
|
|
@.str296 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str297 = private unnamed_addr constant [39 x i8] c"expected 'on', 'layer' or '}' in scene\00"
|
|
@.str298 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str299 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str300 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str301 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str302 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str303 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str304 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str305 = private unnamed_addr constant [2 x i8] c"@\00"
|
|
@.str306 = private unnamed_addr constant [5 x i8] c"Sync\00"
|
|
@.str307 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str308 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str309 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str310 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str311 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str312 = private unnamed_addr constant [2 x i8] c",\00"
|
|
@.str313 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str314 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str315 = private unnamed_addr constant [3 x i8] c"->\00"
|
|
@.str316 = private unnamed_addr constant [2 x i8] c"=\00"
|
|
@.str317 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str318 = private unnamed_addr constant [2 x i8] c":\00"
|
|
@.str319 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str320 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str321 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str322 = private unnamed_addr constant [2 x i8] c"{\00"
|
|
@.str323 = private unnamed_addr constant [2 x i8] c"}\00"
|
|
@.str324 = private unnamed_addr constant [3 x i8] c"%t\00"
|
|
@.str325 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str326 = private unnamed_addr constant [11 x i8] c" = alloca \00"
|
|
@.str327 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str328 = private unnamed_addr constant [3 x i8] c"%t\00"
|
|
@.str329 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str330 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str331 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str332 = private unnamed_addr constant [7 x i8] c"entity\00"
|
|
@.str333 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str334 = private unnamed_addr constant [5 x i8] c"byte\00"
|
|
@.str335 = private unnamed_addr constant [3 x i8] c"i8\00"
|
|
@.str336 = private unnamed_addr constant [6 x i8] c"words\00"
|
|
@.str337 = private unnamed_addr constant [7 x i8] c"fixeds\00"
|
|
@.str338 = private unnamed_addr constant [5 x i8] c"ptrs\00"
|
|
@.str339 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str340 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str341 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str342 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str343 = private unnamed_addr constant [6 x i8] c"%Cmp_\00"
|
|
@.str344 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str345 = private unnamed_addr constant [10 x i8] c"EndReason\00"
|
|
@.str346 = private unnamed_addr constant [10 x i8] c"Despawned\00"
|
|
@.str347 = private unnamed_addr constant [10 x i8] c"SceneExit\00"
|
|
@.str348 = private unnamed_addr constant [5 x i8] c"Quit\00"
|
|
@.str349 = private unnamed_addr constant [2 x i8] c".\00"
|
|
@.str350 = private unnamed_addr constant [2 x i8] c".\00"
|
|
@.str351 = private unnamed_addr constant [7 x i8] c"entity\00"
|
|
@.str352 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str353 = private unnamed_addr constant [7 x i8] c"reason\00"
|
|
@.str354 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str355 = private unnamed_addr constant [6 x i8] c"@.str\00"
|
|
@.str356 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00"
|
|
@.str357 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00"
|
|
@.str358 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00"
|
|
@.str359 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str360 = private unnamed_addr constant [5 x i8] c"null\00"
|
|
@.str361 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str362 = private unnamed_addr constant [2 x i8] c"-\00"
|
|
@.str363 = private unnamed_addr constant [2 x i8] c"-\00"
|
|
@.str364 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str365 = private unnamed_addr constant [5 x i8] c"null\00"
|
|
@.str366 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str367 = private unnamed_addr constant [34 x i8] c"; Ludic (self-hosted) -> LLVM IR\0A\00"
|
|
@.str368 = private unnamed_addr constant [31 x i8] c"declare i32 @printf(ptr, ...)\0A\00"
|
|
@.str369 = private unnamed_addr constant [26 x i8] c"declare ptr @malloc(i64)\0A\00"
|
|
@.str370 = private unnamed_addr constant [32 x i8] c"declare ptr @realloc(ptr, i64)\0A\00"
|
|
@.str371 = private unnamed_addr constant [25 x i8] c"declare void @free(ptr)\0A\00"
|
|
@.str372 = private unnamed_addr constant [30 x i8] c"declare ptr @fopen(ptr, ptr)\0A\00"
|
|
@.str373 = private unnamed_addr constant [40 x i8] c"declare i64 @fread(ptr, i64, i64, ptr)\0A\00"
|
|
@.str374 = private unnamed_addr constant [41 x i8] c"declare i64 @fwrite(ptr, i64, i64, ptr)\0A\00"
|
|
@.str375 = private unnamed_addr constant [35 x i8] c"declare i32 @fseek(ptr, i64, i32)\0A\00"
|
|
@.str376 = private unnamed_addr constant [25 x i8] c"declare i64 @ftell(ptr)\0A\00"
|
|
@.str377 = private unnamed_addr constant [26 x i8] c"declare i32 @fclose(ptr)\0A\00"
|
|
@.str378 = private unnamed_addr constant [25 x i8] c"declare void @exit(i32)\0A\00"
|
|
@.str379 = private unnamed_addr constant [26 x i8] c"declare i32 @system(ptr)\0A\00"
|
|
@.str380 = private unnamed_addr constant [26 x i8] c"declare ptr @getenv(ptr)\0A\00"
|
|
@.str381 = private unnamed_addr constant [36 x i8] c"declare ptr @memcpy(ptr, ptr, i64)\0A\00"
|
|
@.str382 = private unnamed_addr constant [36 x i8] c"declare ptr @memset(ptr, i32, i64)\0A\00"
|
|
@.str383 = private unnamed_addr constant [26 x i8] c"declare i64 @strlen(ptr)\0A\00"
|
|
@.str384 = private unnamed_addr constant [24 x i8] c"declare i32 @getchar()\0A\00"
|
|
@.str385 = private unnamed_addr constant [27 x i8] c"declare i32 @putchar(i32)\0A\00"
|
|
@.str386 = private unnamed_addr constant [24 x i8] c"declare i64 @time(ptr)\0A\00"
|
|
@.str387 = private unnamed_addr constant [44 x i8] c"declare void @win_open(i32, i32, i32, ptr)\0A\00"
|
|
@.str388 = private unnamed_addr constant [25 x i8] c"declare i32 @win_poll()\0A\00"
|
|
@.str389 = private unnamed_addr constant [42 x i8] c"declare void @win_present(ptr, i32, i32)\0A\00"
|
|
@.str390 = private unnamed_addr constant [28 x i8] c"declare i32 @win_running()\0A\00"
|
|
@.str391 = private unnamed_addr constant [27 x i8] c"declare void @win_close()\0A\00"
|
|
@.str392 = private unnamed_addr constant [34 x i8] c"@__stderrp = external global ptr\0A\00"
|
|
@.str393 = private unnamed_addr constant [34 x i8] c"@__stdoutp = external global ptr\0A\00"
|
|
@.str394 = private unnamed_addr constant [64 x i8] c"@.fmt_int = private unnamed_addr constant [4 x i8] c\22%d\5C0A\5C00\22\0A\00"
|
|
@.str395 = private unnamed_addr constant [65 x i8] c"@.fmt_line = private unnamed_addr constant [4 x i8] c\22%s\5C0A\5C00\22\0A\00"
|
|
@.str396 = private unnamed_addr constant [33 x i8] c"@L_argc = internal global i32 0\0A\00"
|
|
@.str397 = private unnamed_addr constant [36 x i8] c"@L_argv = internal global ptr null\0A\00"
|
|
@.str398 = private unnamed_addr constant [46 x i8] c"@.gametitle = private unnamed_addr constant [\00"
|
|
@.str399 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00"
|
|
@.str400 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00"
|
|
@.str401 = private unnamed_addr constant [34 x i8] c"%LSlice = type { ptr, i32, i32 }\0A\00"
|
|
@.str402 = private unnamed_addr constant [11 x i8] c" = type { \00"
|
|
@.str403 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str404 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str405 = private unnamed_addr constant [4 x i8] c" }\0A\00"
|
|
@.str406 = private unnamed_addr constant [4 x i8] c"@g_\00"
|
|
@.str407 = private unnamed_addr constant [20 x i8] c" = internal global \00"
|
|
@.str408 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str409 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str410 = private unnamed_addr constant [9 x i8] c"declare \00"
|
|
@.str411 = private unnamed_addr constant [3 x i8] c" @\00"
|
|
@.str412 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str413 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str414 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str415 = private unnamed_addr constant [41 x i8] c"define i32 @fn_str_eq(ptr %a, ptr %b) {\0A\00"
|
|
@.str416 = private unnamed_addr constant [25 x i8] c"entry:\0A br label %loop\0A\00"
|
|
@.str417 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %cont ]\0A\00"
|
|
@.str418 = private unnamed_addr constant [51 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %i\0A\00"
|
|
@.str419 = private unnamed_addr constant [51 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %i\0A\00"
|
|
@.str420 = private unnamed_addr constant [51 x i8] c" %ca = load i8, ptr %pa\0A %cb = load i8, ptr %pb\0A\00"
|
|
@.str421 = private unnamed_addr constant [66 x i8] c" %df = icmp ne i8 %ca, %cb\0A br i1 %df, label %ret0, label %chk\0A\00"
|
|
@.str422 = private unnamed_addr constant [70 x i8] c"chk:\0A %zt = icmp eq i8 %ca, 0\0A br i1 %zt, label %ret1, label %cont\0A\00"
|
|
@.str423 = private unnamed_addr constant [46 x i8] c"cont:\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00"
|
|
@.str424 = private unnamed_addr constant [39 x i8] c"ret1:\0A ret i32 1\0Aret0:\0A ret i32 0\0A}\0A\00"
|
|
@.str425 = private unnamed_addr constant [45 x i8] c"define ptr @fn_str_concat(ptr %a, ptr %b) {\0A\00"
|
|
@.str426 = private unnamed_addr constant [23 x i8] c"entry:\0A br label %al\0A\00"
|
|
@.str427 = private unnamed_addr constant [51 x i8] c"al:\0A %ia = phi i32 [ 0, %entry ], [ %ia1, %alb ]\0A\00"
|
|
@.str428 = private unnamed_addr constant [78 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %ia\0A %cca = load i8, ptr %pa\0A\00"
|
|
@.str429 = private unnamed_addr constant [64 x i8] c" %za = icmp eq i8 %cca, 0\0A br i1 %za, label %bl0, label %alb\0A\00"
|
|
@.str430 = private unnamed_addr constant [45 x i8] c"alb:\0A %ia1 = add i32 %ia, 1\0A br label %al\0A\00"
|
|
@.str431 = private unnamed_addr constant [21 x i8] c"bl0:\0A br label %bl\0A\00"
|
|
@.str432 = private unnamed_addr constant [49 x i8] c"bl:\0A %ib = phi i32 [ 0, %bl0 ], [ %ib1, %blb ]\0A\00"
|
|
@.str433 = private unnamed_addr constant [78 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %ib\0A %ccb = load i8, ptr %pb\0A\00"
|
|
@.str434 = private unnamed_addr constant [66 x i8] c" %zb = icmp eq i8 %ccb, 0\0A br i1 %zb, label %alloc, label %blb\0A\00"
|
|
@.str435 = private unnamed_addr constant [45 x i8] c"blb:\0A %ib1 = add i32 %ib, 1\0A br label %bl\0A\00"
|
|
@.str436 = private unnamed_addr constant [58 x i8] c"alloc:\0A %sum = add i32 %ia, %ib\0A %sz = add i32 %sum, 1\0A\00"
|
|
@.str437 = private unnamed_addr constant [83 x i8] c" %sz64 = sext i32 %sz to i64\0A %out = call ptr @malloc(i64 %sz64)\0A br label %c1\0A\00"
|
|
@.str438 = private unnamed_addr constant [49 x i8] c"c1:\0A %i = phi i32 [ 0, %alloc ], [ %i1, %c1b ]\0A\00"
|
|
@.str439 = private unnamed_addr constant [66 x i8] c" %d1 = icmp slt i32 %i, %ia\0A br i1 %d1, label %c1b, label %c2i\0A\00"
|
|
@.str440 = private unnamed_addr constant [81 x i8] c"c1b:\0A %s1 = getelementptr inbounds i8, ptr %a, i32 %i\0A %v1 = load i8, ptr %s1\0A\00"
|
|
@.str441 = private unnamed_addr constant [77 x i8] c" %o1 = getelementptr inbounds i8, ptr %out, i32 %i\0A store i8 %v1, ptr %o1\0A\00"
|
|
@.str442 = private unnamed_addr constant [38 x i8] c" %i1 = add i32 %i, 1\0A br label %c1\0A\00"
|
|
@.str443 = private unnamed_addr constant [21 x i8] c"c2i:\0A br label %c2\0A\00"
|
|
@.str444 = private unnamed_addr constant [47 x i8] c"c2:\0A %j = phi i32 [ 0, %c2i ], [ %j1, %c2b ]\0A\00"
|
|
@.str445 = private unnamed_addr constant [66 x i8] c" %d2 = icmp slt i32 %j, %ib\0A br i1 %d2, label %c2b, label %fin\0A\00"
|
|
@.str446 = private unnamed_addr constant [81 x i8] c"c2b:\0A %s2 = getelementptr inbounds i8, ptr %b, i32 %j\0A %v2 = load i8, ptr %s2\0A\00"
|
|
@.str447 = private unnamed_addr constant [102 x i8] c" %oj = add i32 %ia, %j\0A %o2 = getelementptr inbounds i8, ptr %out, i32 %oj\0A store i8 %v2, ptr %o2\0A\00"
|
|
@.str448 = private unnamed_addr constant [38 x i8] c" %j1 = add i32 %j, 1\0A br label %c2\0A\00"
|
|
@.str449 = private unnamed_addr constant [99 x i8] c"fin:\0A %pe = getelementptr inbounds i8, ptr %out, i32 %sum\0A store i8 0, ptr %pe\0A ret ptr %out\0A}\0A\00"
|
|
@.str450 = private unnamed_addr constant [35 x i8] c"define ptr @fn_int_str(i32 %n0) {\0A\00"
|
|
@.str451 = private unnamed_addr constant [42 x i8] c"entry:\0A %buf = call ptr @malloc(i64 24)\0A\00"
|
|
@.str452 = private unnamed_addr constant [56 x i8] c" %isneg = icmp slt i32 %n0, 0\0A %neg = sub i32 0, %n0\0A\00"
|
|
@.str453 = private unnamed_addr constant [44 x i8] c" %n = select i1 %isneg, i32 %neg, i32 %n0\0A\00"
|
|
@.str454 = private unnamed_addr constant [79 x i8] c" %term = getelementptr inbounds i8, ptr %buf, i32 23\0A store i8 0, ptr %term\0A\00"
|
|
@.str455 = private unnamed_addr constant [70 x i8] c" %iszero = icmp eq i32 %n0, 0\0A br i1 %iszero, label %zc, label %dl\0A\00"
|
|
@.str456 = private unnamed_addr constant [94 x i8] c"zc:\0A %zp = getelementptr inbounds i8, ptr %buf, i32 22\0A store i8 48, ptr %zp\0A ret ptr %zp\0A\00"
|
|
@.str457 = private unnamed_addr constant [23 x i8] c"dl:\0A br label %dloop\0A\00"
|
|
@.str458 = private unnamed_addr constant [104 x i8] c"dloop:\0A %pos = phi i32 [ 22, %dl ], [ %pos2, %dbody ]\0A %cur = phi i32 [ %n, %dl ], [ %cur2, %dbody ]\0A\00"
|
|
@.str459 = private unnamed_addr constant [72 x i8] c" %done = icmp eq i32 %cur, 0\0A br i1 %done, label %sign, label %dbody\0A\00"
|
|
@.str460 = private unnamed_addr constant [85 x i8] c"dbody:\0A %d = urem i32 %cur, 10\0A %ch = add i32 %d, 48\0A %ch8 = trunc i32 %ch to i8\0A\00"
|
|
@.str461 = private unnamed_addr constant [80 x i8] c" %pp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 %ch8, ptr %pp\0A\00"
|
|
@.str462 = private unnamed_addr constant [73 x i8] c" %cur2 = udiv i32 %cur, 10\0A %pos2 = sub i32 %pos, 1\0A br label %dloop\0A\00"
|
|
@.str463 = private unnamed_addr constant [49 x i8] c"sign:\0A br i1 %isneg, label %addneg, label %fin\0A\00"
|
|
@.str464 = private unnamed_addr constant [128 x i8] c"addneg:\0A %sp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 45, ptr %sp\0A %posn = sub i32 %pos, 1\0A br label %fin\0A\00"
|
|
@.str465 = private unnamed_addr constant [60 x i8] c"fin:\0A %fpos = phi i32 [ %pos, %sign ], [ %posn, %addneg ]\0A\00"
|
|
@.str466 = private unnamed_addr constant [101 x i8] c" %rpos = add i32 %fpos, 1\0A %res = getelementptr inbounds i8, ptr %buf, i32 %rpos\0A ret ptr %res\0A}\0A\00"
|
|
@.str467 = private unnamed_addr constant [58 x i8] c"define ptr @fn_str_slice(ptr %s, i32 %start, i32 %end) {\0A\00"
|
|
@.str468 = private unnamed_addr constant [62 x i8] c"entry:\0A %len = sub i32 %end, %start\0A %sz = add i32 %len, 1\0A\00"
|
|
@.str469 = private unnamed_addr constant [85 x i8] c" %sz64 = sext i32 %sz to i64\0A %out = call ptr @malloc(i64 %sz64)\0A br label %loop\0A\00"
|
|
@.str470 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %body ]\0A\00"
|
|
@.str471 = private unnamed_addr constant [66 x i8] c" %d = icmp slt i32 %i, %len\0A br i1 %d, label %body, label %fin\0A\00"
|
|
@.str472 = private unnamed_addr constant [109 x i8] c"body:\0A %si = add i32 %start, %i\0A %sp = getelementptr inbounds i8, ptr %s, i32 %si\0A %c = load i8, ptr %sp\0A\00"
|
|
@.str473 = private unnamed_addr constant [115 x i8] c" %op = getelementptr inbounds i8, ptr %out, i32 %i\0A store i8 %c, ptr %op\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00"
|
|
@.str474 = private unnamed_addr constant [99 x i8] c"fin:\0A %tp = getelementptr inbounds i8, ptr %out, i32 %len\0A store i8 0, ptr %tp\0A ret ptr %out\0A}\0A\00"
|
|
@.str475 = private unnamed_addr constant [32 x i8] c"member access on non-aggregate \00"
|
|
@.str476 = private unnamed_addr constant [15 x i8] c"no such field \00"
|
|
@.str477 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str478 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00"
|
|
@.str479 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str480 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str481 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str482 = private unnamed_addr constant [6 x i8] c"words\00"
|
|
@.str483 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds i32, ptr \00"
|
|
@.str484 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str485 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str486 = private unnamed_addr constant [7 x i8] c"fixeds\00"
|
|
@.str487 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds i32, ptr \00"
|
|
@.str488 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str489 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str490 = private unnamed_addr constant [5 x i8] c"ptrs\00"
|
|
@.str491 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds ptr, ptr \00"
|
|
@.str492 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str493 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str494 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00"
|
|
@.str495 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str496 = private unnamed_addr constant [5 x i8] c"byte\00"
|
|
@.str497 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str498 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00"
|
|
@.str499 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00"
|
|
@.str500 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str501 = private unnamed_addr constant [18 x i8] c" = load ptr, ptr \00"
|
|
@.str502 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str503 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str504 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00"
|
|
@.str505 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str506 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str507 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str508 = private unnamed_addr constant [7 x i8] c"resize\00"
|
|
@.str509 = private unnamed_addr constant [10 x i8] c"file_open\00"
|
|
@.str510 = private unnamed_addr constant [10 x i8] c"file_read\00"
|
|
@.str511 = private unnamed_addr constant [11 x i8] c"file_write\00"
|
|
@.str512 = private unnamed_addr constant [10 x i8] c"file_seek\00"
|
|
@.str513 = private unnamed_addr constant [10 x i8] c"file_tell\00"
|
|
@.str514 = private unnamed_addr constant [11 x i8] c"file_close\00"
|
|
@.str515 = private unnamed_addr constant [10 x i8] c"arg_count\00"
|
|
@.str516 = private unnamed_addr constant [4 x i8] c"arg\00"
|
|
@.str517 = private unnamed_addr constant [5 x i8] c"exit\00"
|
|
@.str518 = private unnamed_addr constant [12 x i8] c"file_stderr\00"
|
|
@.str519 = private unnamed_addr constant [12 x i8] c"file_stdout\00"
|
|
@.str520 = private unnamed_addr constant [4 x i8] c"run\00"
|
|
@.str521 = private unnamed_addr constant [7 x i8] c"getenv\00"
|
|
@.str522 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str523 = private unnamed_addr constant [4 x i8] c" = \00"
|
|
@.str524 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str525 = private unnamed_addr constant [7 x i8] c"resize\00"
|
|
@.str526 = private unnamed_addr constant [10 x i8] c"zext i32 \00"
|
|
@.str527 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str528 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00"
|
|
@.str529 = private unnamed_addr constant [7 x i8] c", i64 \00"
|
|
@.str530 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str531 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str532 = private unnamed_addr constant [10 x i8] c"file_open\00"
|
|
@.str533 = private unnamed_addr constant [21 x i8] c"call ptr @fopen(ptr \00"
|
|
@.str534 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str535 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str536 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str537 = private unnamed_addr constant [10 x i8] c"file_read\00"
|
|
@.str538 = private unnamed_addr constant [11 x i8] c"file_write\00"
|
|
@.str539 = private unnamed_addr constant [10 x i8] c"zext i32 \00"
|
|
@.str540 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str541 = private unnamed_addr constant [7 x i8] c"@fread\00"
|
|
@.str542 = private unnamed_addr constant [11 x i8] c"file_write\00"
|
|
@.str543 = private unnamed_addr constant [8 x i8] c"@fwrite\00"
|
|
@.str544 = private unnamed_addr constant [10 x i8] c"call i64 \00"
|
|
@.str545 = private unnamed_addr constant [6 x i8] c"(ptr \00"
|
|
@.str546 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00"
|
|
@.str547 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str548 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str549 = private unnamed_addr constant [11 x i8] c"trunc i64 \00"
|
|
@.str550 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str551 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str552 = private unnamed_addr constant [10 x i8] c"file_seek\00"
|
|
@.str553 = private unnamed_addr constant [10 x i8] c"sext i32 \00"
|
|
@.str554 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str555 = private unnamed_addr constant [21 x i8] c"call i32 @fseek(ptr \00"
|
|
@.str556 = private unnamed_addr constant [7 x i8] c", i64 \00"
|
|
@.str557 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str558 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str559 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str560 = private unnamed_addr constant [10 x i8] c"file_tell\00"
|
|
@.str561 = private unnamed_addr constant [21 x i8] c"call i64 @ftell(ptr \00"
|
|
@.str562 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str563 = private unnamed_addr constant [11 x i8] c"trunc i64 \00"
|
|
@.str564 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str565 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str566 = private unnamed_addr constant [11 x i8] c"file_close\00"
|
|
@.str567 = private unnamed_addr constant [24 x i8] c" call i32 @fclose(ptr \00"
|
|
@.str568 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str569 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str570 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str571 = private unnamed_addr constant [10 x i8] c"arg_count\00"
|
|
@.str572 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_argc\00"
|
|
@.str573 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str574 = private unnamed_addr constant [4 x i8] c"arg\00"
|
|
@.str575 = private unnamed_addr constant [22 x i8] c"load ptr, ptr @L_argv\00"
|
|
@.str576 = private unnamed_addr constant [24 x i8] c"getelementptr ptr, ptr \00"
|
|
@.str577 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str578 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00"
|
|
@.str579 = private unnamed_addr constant [4 x i8] c"str\00"
|
|
@.str580 = private unnamed_addr constant [5 x i8] c"exit\00"
|
|
@.str581 = private unnamed_addr constant [23 x i8] c" call void @exit(i32 \00"
|
|
@.str582 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str583 = private unnamed_addr constant [15 x i8] c" unreachable\0A\00"
|
|
@.str584 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str585 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str586 = private unnamed_addr constant [12 x i8] c"file_stderr\00"
|
|
@.str587 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stderrp\00"
|
|
@.str588 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str589 = private unnamed_addr constant [12 x i8] c"file_stdout\00"
|
|
@.str590 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stdoutp\00"
|
|
@.str591 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str592 = private unnamed_addr constant [4 x i8] c"run\00"
|
|
@.str593 = private unnamed_addr constant [22 x i8] c"call i32 @system(ptr \00"
|
|
@.str594 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str595 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str596 = private unnamed_addr constant [7 x i8] c"getenv\00"
|
|
@.str597 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00"
|
|
@.str598 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str599 = private unnamed_addr constant [4 x i8] c"str\00"
|
|
@.str600 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str601 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str602 = private unnamed_addr constant [5 x i8] c"free\00"
|
|
@.str603 = private unnamed_addr constant [5 x i8] c"fill\00"
|
|
@.str604 = private unnamed_addr constant [7 x i8] c"offset\00"
|
|
@.str605 = private unnamed_addr constant [10 x i8] c"read_char\00"
|
|
@.str606 = private unnamed_addr constant [9 x i8] c"as_fixed\00"
|
|
@.str607 = private unnamed_addr constant [7 x i8] c"as_int\00"
|
|
@.str608 = private unnamed_addr constant [12 x i8] c"is_windowed\00"
|
|
@.str609 = private unnamed_addr constant [11 x i8] c"game_title\00"
|
|
@.str610 = private unnamed_addr constant [9 x i8] c"win_open\00"
|
|
@.str611 = private unnamed_addr constant [9 x i8] c"win_poll\00"
|
|
@.str612 = private unnamed_addr constant [12 x i8] c"win_present\00"
|
|
@.str613 = private unnamed_addr constant [12 x i8] c"win_running\00"
|
|
@.str614 = private unnamed_addr constant [10 x i8] c"win_close\00"
|
|
@.str615 = private unnamed_addr constant [5 x i8] c"free\00"
|
|
@.str616 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \00"
|
|
@.str617 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str618 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str619 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str620 = private unnamed_addr constant [5 x i8] c"fill\00"
|
|
@.str621 = private unnamed_addr constant [10 x i8] c"zext i32 \00"
|
|
@.str622 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str623 = private unnamed_addr constant [24 x i8] c" call ptr @memset(ptr \00"
|
|
@.str624 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str625 = private unnamed_addr constant [7 x i8] c", i64 \00"
|
|
@.str626 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str627 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str628 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str629 = private unnamed_addr constant [7 x i8] c"offset\00"
|
|
@.str630 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str631 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00"
|
|
@.str632 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str633 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str634 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str635 = private unnamed_addr constant [10 x i8] c"read_char\00"
|
|
@.str636 = private unnamed_addr constant [20 x i8] c"call i32 @getchar()\00"
|
|
@.str637 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str638 = private unnamed_addr constant [9 x i8] c"as_fixed\00"
|
|
@.str639 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str640 = private unnamed_addr constant [7 x i8] c"as_int\00"
|
|
@.str641 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str642 = private unnamed_addr constant [12 x i8] c"is_windowed\00"
|
|
@.str643 = private unnamed_addr constant [2 x i8] c"1\00"
|
|
@.str644 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str645 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str646 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str647 = private unnamed_addr constant [11 x i8] c"game_title\00"
|
|
@.str648 = private unnamed_addr constant [12 x i8] c"@.gametitle\00"
|
|
@.str649 = private unnamed_addr constant [4 x i8] c"str\00"
|
|
@.str650 = private unnamed_addr constant [9 x i8] c"win_poll\00"
|
|
@.str651 = private unnamed_addr constant [21 x i8] c"call i32 @win_poll()\00"
|
|
@.str652 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str653 = private unnamed_addr constant [12 x i8] c"win_running\00"
|
|
@.str654 = private unnamed_addr constant [24 x i8] c"call i32 @win_running()\00"
|
|
@.str655 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str656 = private unnamed_addr constant [9 x i8] c"win_open\00"
|
|
@.str657 = private unnamed_addr constant [27 x i8] c" call void @win_open(i32 \00"
|
|
@.str658 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str659 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str660 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str661 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str662 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str663 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str664 = private unnamed_addr constant [12 x i8] c"win_present\00"
|
|
@.str665 = private unnamed_addr constant [30 x i8] c" call void @win_present(ptr \00"
|
|
@.str666 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str667 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str668 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str669 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str670 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str671 = private unnamed_addr constant [10 x i8] c"win_close\00"
|
|
@.str672 = private unnamed_addr constant [26 x i8] c" call void @win_close()\0A\00"
|
|
@.str673 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str674 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str675 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str676 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str677 = private unnamed_addr constant [4 x i8] c"min\00"
|
|
@.str678 = private unnamed_addr constant [4 x i8] c"max\00"
|
|
@.str679 = private unnamed_addr constant [4 x i8] c"abs\00"
|
|
@.str680 = private unnamed_addr constant [6 x i8] c"clamp\00"
|
|
@.str681 = private unnamed_addr constant [4 x i8] c"abs\00"
|
|
@.str682 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00"
|
|
@.str683 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str684 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00"
|
|
@.str685 = private unnamed_addr constant [11 x i8] c"select i1 \00"
|
|
@.str686 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str687 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str688 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str689 = private unnamed_addr constant [4 x i8] c"min\00"
|
|
@.str690 = private unnamed_addr constant [4 x i8] c"max\00"
|
|
@.str691 = private unnamed_addr constant [4 x i8] c"slt\00"
|
|
@.str692 = private unnamed_addr constant [4 x i8] c"max\00"
|
|
@.str693 = private unnamed_addr constant [4 x i8] c"sgt\00"
|
|
@.str694 = private unnamed_addr constant [6 x i8] c"icmp \00"
|
|
@.str695 = private unnamed_addr constant [6 x i8] c" i32 \00"
|
|
@.str696 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str697 = private unnamed_addr constant [11 x i8] c"select i1 \00"
|
|
@.str698 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str699 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str700 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str701 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00"
|
|
@.str702 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str703 = private unnamed_addr constant [11 x i8] c"select i1 \00"
|
|
@.str704 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str705 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str706 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00"
|
|
@.str707 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str708 = private unnamed_addr constant [11 x i8] c"select i1 \00"
|
|
@.str709 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str710 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str711 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str712 = private unnamed_addr constant [6 x i8] c"White\00"
|
|
@.str713 = private unnamed_addr constant [5 x i8] c"Snow\00"
|
|
@.str714 = private unnamed_addr constant [6 x i8] c"Ivory\00"
|
|
@.str715 = private unnamed_addr constant [14 x i8] c"EggShellWhite\00"
|
|
@.str716 = private unnamed_addr constant [12 x i8] c"FloralWhite\00"
|
|
@.str717 = private unnamed_addr constant [9 x i8] c"SeaShell\00"
|
|
@.str718 = private unnamed_addr constant [6 x i8] c"Linen\00"
|
|
@.str719 = private unnamed_addr constant [13 x i8] c"AntiqueWhite\00"
|
|
@.str720 = private unnamed_addr constant [8 x i8] c"OldLace\00"
|
|
@.str721 = private unnamed_addr constant [6 x i8] c"Beige\00"
|
|
@.str722 = private unnamed_addr constant [6 x i8] c"Cream\00"
|
|
@.str723 = private unnamed_addr constant [9 x i8] c"Honeydew\00"
|
|
@.str724 = private unnamed_addr constant [10 x i8] c"MintCream\00"
|
|
@.str725 = private unnamed_addr constant [6 x i8] c"Azure\00"
|
|
@.str726 = private unnamed_addr constant [10 x i8] c"AliceBlue\00"
|
|
@.str727 = private unnamed_addr constant [11 x i8] c"GhostWhite\00"
|
|
@.str728 = private unnamed_addr constant [11 x i8] c"WhiteSmoke\00"
|
|
@.str729 = private unnamed_addr constant [9 x i8] c"Lavender\00"
|
|
@.str730 = private unnamed_addr constant [5 x i8] c"Bone\00"
|
|
@.str731 = private unnamed_addr constant [10 x i8] c"Parchment\00"
|
|
@.str732 = private unnamed_addr constant [10 x i8] c"Gainsboro\00"
|
|
@.str733 = private unnamed_addr constant [10 x i8] c"LightGray\00"
|
|
@.str734 = private unnamed_addr constant [7 x i8] c"Silver\00"
|
|
@.str735 = private unnamed_addr constant [4 x i8] c"Ash\00"
|
|
@.str736 = private unnamed_addr constant [9 x i8] c"DarkGray\00"
|
|
@.str737 = private unnamed_addr constant [5 x i8] c"Gray\00"
|
|
@.str738 = private unnamed_addr constant [8 x i8] c"DimGray\00"
|
|
@.str739 = private unnamed_addr constant [7 x i8] c"Nickel\00"
|
|
@.str740 = private unnamed_addr constant [6 x i8] c"Slate\00"
|
|
@.str741 = private unnamed_addr constant [10 x i8] c"SlateGray\00"
|
|
@.str742 = private unnamed_addr constant [15 x i8] c"LightSlateGray\00"
|
|
@.str743 = private unnamed_addr constant [9 x i8] c"Gunmetal\00"
|
|
@.str744 = private unnamed_addr constant [9 x i8] c"Charcoal\00"
|
|
@.str745 = private unnamed_addr constant [9 x i8] c"Graphite\00"
|
|
@.str746 = private unnamed_addr constant [5 x i8] c"Onyx\00"
|
|
@.str747 = private unnamed_addr constant [4 x i8] c"Jet\00"
|
|
@.str748 = private unnamed_addr constant [6 x i8] c"Black\00"
|
|
@.str749 = private unnamed_addr constant [11 x i8] c"EerieBlack\00"
|
|
@.str750 = private unnamed_addr constant [12 x i8] c"RaisinBlack\00"
|
|
@.str751 = private unnamed_addr constant [6 x i8] c"Ebony\00"
|
|
@.str752 = private unnamed_addr constant [4 x i8] c"Red\00"
|
|
@.str753 = private unnamed_addr constant [8 x i8] c"Crimson\00"
|
|
@.str754 = private unnamed_addr constant [8 x i8] c"Scarlet\00"
|
|
@.str755 = private unnamed_addr constant [10 x i8] c"Vermilion\00"
|
|
@.str756 = private unnamed_addr constant [10 x i8] c"FireBrick\00"
|
|
@.str757 = private unnamed_addr constant [9 x i8] c"Cinnabar\00"
|
|
@.str758 = private unnamed_addr constant [8 x i8] c"DarkRed\00"
|
|
@.str759 = private unnamed_addr constant [7 x i8] c"Maroon\00"
|
|
@.str760 = private unnamed_addr constant [5 x i8] c"Ruby\00"
|
|
@.str761 = private unnamed_addr constant [9 x i8] c"Cardinal\00"
|
|
@.str762 = private unnamed_addr constant [10 x i8] c"IndianRed\00"
|
|
@.str763 = private unnamed_addr constant [5 x i8] c"Rust\00"
|
|
@.str764 = private unnamed_addr constant [8 x i8] c"Sangria\00"
|
|
@.str765 = private unnamed_addr constant [8 x i8] c"Redwood\00"
|
|
@.str766 = private unnamed_addr constant [7 x i8] c"Cerise\00"
|
|
@.str767 = private unnamed_addr constant [9 x i8] c"Amaranth\00"
|
|
@.str768 = private unnamed_addr constant [8 x i8] c"Carmine\00"
|
|
@.str769 = private unnamed_addr constant [9 x i8] c"Chestnut\00"
|
|
@.str770 = private unnamed_addr constant [6 x i8] c"Brick\00"
|
|
@.str771 = private unnamed_addr constant [11 x i8] c"TerraCotta\00"
|
|
@.str772 = private unnamed_addr constant [5 x i8] c"Pink\00"
|
|
@.str773 = private unnamed_addr constant [10 x i8] c"LightPink\00"
|
|
@.str774 = private unnamed_addr constant [8 x i8] c"HotPink\00"
|
|
@.str775 = private unnamed_addr constant [9 x i8] c"DeepPink\00"
|
|
@.str776 = private unnamed_addr constant [14 x i8] c"PaleVioletRed\00"
|
|
@.str777 = private unnamed_addr constant [5 x i8] c"Rose\00"
|
|
@.str778 = private unnamed_addr constant [6 x i8] c"Blush\00"
|
|
@.str779 = private unnamed_addr constant [7 x i8] c"Salmon\00"
|
|
@.str780 = private unnamed_addr constant [12 x i8] c"LightSalmon\00"
|
|
@.str781 = private unnamed_addr constant [11 x i8] c"DarkSalmon\00"
|
|
@.str782 = private unnamed_addr constant [6 x i8] c"Coral\00"
|
|
@.str783 = private unnamed_addr constant [11 x i8] c"Watermelon\00"
|
|
@.str784 = private unnamed_addr constant [9 x i8] c"Flamingo\00"
|
|
@.str785 = private unnamed_addr constant [10 x i8] c"Bubblegum\00"
|
|
@.str786 = private unnamed_addr constant [8 x i8] c"Fuchsia\00"
|
|
@.str787 = private unnamed_addr constant [8 x i8] c"Magenta\00"
|
|
@.str788 = private unnamed_addr constant [6 x i8] c"Mauve\00"
|
|
@.str789 = private unnamed_addr constant [5 x i8] c"Puce\00"
|
|
@.str790 = private unnamed_addr constant [8 x i8] c"Thistle\00"
|
|
@.str791 = private unnamed_addr constant [7 x i8] c"Orchid\00"
|
|
@.str792 = private unnamed_addr constant [7 x i8] c"Orange\00"
|
|
@.str793 = private unnamed_addr constant [11 x i8] c"DarkOrange\00"
|
|
@.str794 = private unnamed_addr constant [10 x i8] c"Tangerine\00"
|
|
@.str795 = private unnamed_addr constant [8 x i8] c"Pumpkin\00"
|
|
@.str796 = private unnamed_addr constant [8 x i8] c"Apricot\00"
|
|
@.str797 = private unnamed_addr constant [6 x i8] c"Peach\00"
|
|
@.str798 = private unnamed_addr constant [11 x i8] c"Cantaloupe\00"
|
|
@.str799 = private unnamed_addr constant [6 x i8] c"Amber\00"
|
|
@.str800 = private unnamed_addr constant [7 x i8] c"Bronze\00"
|
|
@.str801 = private unnamed_addr constant [7 x i8] c"Copper\00"
|
|
@.str802 = private unnamed_addr constant [9 x i8] c"Marigold\00"
|
|
@.str803 = private unnamed_addr constant [7 x i8] c"Carrot\00"
|
|
@.str804 = private unnamed_addr constant [10 x i8] c"Persimmon\00"
|
|
@.str805 = private unnamed_addr constant [7 x i8] c"Papaya\00"
|
|
@.str806 = private unnamed_addr constant [7 x i8] c"Sunset\00"
|
|
@.str807 = private unnamed_addr constant [7 x i8] c"Yellow\00"
|
|
@.str808 = private unnamed_addr constant [12 x i8] c"LightYellow\00"
|
|
@.str809 = private unnamed_addr constant [5 x i8] c"Gold\00"
|
|
@.str810 = private unnamed_addr constant [10 x i8] c"Goldenrod\00"
|
|
@.str811 = private unnamed_addr constant [6 x i8] c"Lemon\00"
|
|
@.str812 = private unnamed_addr constant [7 x i8] c"Canary\00"
|
|
@.str813 = private unnamed_addr constant [8 x i8] c"Mustard\00"
|
|
@.str814 = private unnamed_addr constant [5 x i8] c"Flax\00"
|
|
@.str815 = private unnamed_addr constant [6 x i8] c"Wheat\00"
|
|
@.str816 = private unnamed_addr constant [5 x i8] c"Corn\00"
|
|
@.str817 = private unnamed_addr constant [10 x i8] c"Dandelion\00"
|
|
@.str818 = private unnamed_addr constant [8 x i8] c"Saffron\00"
|
|
@.str819 = private unnamed_addr constant [6 x i8] c"Khaki\00"
|
|
@.str820 = private unnamed_addr constant [10 x i8] c"DarkKhaki\00"
|
|
@.str821 = private unnamed_addr constant [6 x i8] c"Straw\00"
|
|
@.str822 = private unnamed_addr constant [6 x i8] c"Brown\00"
|
|
@.str823 = private unnamed_addr constant [12 x i8] c"SaddleBrown\00"
|
|
@.str824 = private unnamed_addr constant [7 x i8] c"Sienna\00"
|
|
@.str825 = private unnamed_addr constant [10 x i8] c"Chocolate\00"
|
|
@.str826 = private unnamed_addr constant [5 x i8] c"Peru\00"
|
|
@.str827 = private unnamed_addr constant [4 x i8] c"Tan\00"
|
|
@.str828 = private unnamed_addr constant [10 x i8] c"BurlyWood\00"
|
|
@.str829 = private unnamed_addr constant [5 x i8] c"Sand\00"
|
|
@.str830 = private unnamed_addr constant [7 x i8] c"Coffee\00"
|
|
@.str831 = private unnamed_addr constant [9 x i8] c"Espresso\00"
|
|
@.str832 = private unnamed_addr constant [9 x i8] c"Mahogany\00"
|
|
@.str833 = private unnamed_addr constant [7 x i8] c"Walnut\00"
|
|
@.str834 = private unnamed_addr constant [6 x i8] c"Umber\00"
|
|
@.str835 = private unnamed_addr constant [6 x i8] c"Sepia\00"
|
|
@.str836 = private unnamed_addr constant [6 x i8] c"Taupe\00"
|
|
@.str837 = private unnamed_addr constant [5 x i8] c"Fawn\00"
|
|
@.str838 = private unnamed_addr constant [8 x i8] c"Caramel\00"
|
|
@.str839 = private unnamed_addr constant [6 x i8] c"Cocoa\00"
|
|
@.str840 = private unnamed_addr constant [6 x i8] c"Hazel\00"
|
|
@.str841 = private unnamed_addr constant [6 x i8] c"Wenge\00"
|
|
@.str842 = private unnamed_addr constant [6 x i8] c"Green\00"
|
|
@.str843 = private unnamed_addr constant [5 x i8] c"Lime\00"
|
|
@.str844 = private unnamed_addr constant [10 x i8] c"LimeGreen\00"
|
|
@.str845 = private unnamed_addr constant [10 x i8] c"LawnGreen\00"
|
|
@.str846 = private unnamed_addr constant [11 x i8] c"Chartreuse\00"
|
|
@.str847 = private unnamed_addr constant [12 x i8] c"GreenYellow\00"
|
|
@.str848 = private unnamed_addr constant [12 x i8] c"SpringGreen\00"
|
|
@.str849 = private unnamed_addr constant [10 x i8] c"MintGreen\00"
|
|
@.str850 = private unnamed_addr constant [9 x i8] c"SeaGreen\00"
|
|
@.str851 = private unnamed_addr constant [15 x i8] c"MediumSeaGreen\00"
|
|
@.str852 = private unnamed_addr constant [12 x i8] c"ForestGreen\00"
|
|
@.str853 = private unnamed_addr constant [10 x i8] c"DarkGreen\00"
|
|
@.str854 = private unnamed_addr constant [10 x i8] c"OliveDrab\00"
|
|
@.str855 = private unnamed_addr constant [6 x i8] c"Olive\00"
|
|
@.str856 = private unnamed_addr constant [5 x i8] c"Moss\00"
|
|
@.str857 = private unnamed_addr constant [5 x i8] c"Fern\00"
|
|
@.str858 = private unnamed_addr constant [8 x i8] c"Emerald\00"
|
|
@.str859 = private unnamed_addr constant [5 x i8] c"Jade\00"
|
|
@.str860 = private unnamed_addr constant [10 x i8] c"Malachite\00"
|
|
@.str861 = private unnamed_addr constant [9 x i8] c"Shamrock\00"
|
|
@.str862 = private unnamed_addr constant [10 x i8] c"Pistachio\00"
|
|
@.str863 = private unnamed_addr constant [8 x i8] c"Avocado\00"
|
|
@.str864 = private unnamed_addr constant [5 x i8] c"Pine\00"
|
|
@.str865 = private unnamed_addr constant [5 x i8] c"Sage\00"
|
|
@.str866 = private unnamed_addr constant [6 x i8] c"Kelly\00"
|
|
@.str867 = private unnamed_addr constant [7 x i8] c"Hunter\00"
|
|
@.str868 = private unnamed_addr constant [6 x i8] c"Basil\00"
|
|
@.str869 = private unnamed_addr constant [7 x i8] c"Clover\00"
|
|
@.str870 = private unnamed_addr constant [8 x i8] c"Juniper\00"
|
|
@.str871 = private unnamed_addr constant [5 x i8] c"Neon\00"
|
|
@.str872 = private unnamed_addr constant [5 x i8] c"Cyan\00"
|
|
@.str873 = private unnamed_addr constant [5 x i8] c"Aqua\00"
|
|
@.str874 = private unnamed_addr constant [10 x i8] c"LightCyan\00"
|
|
@.str875 = private unnamed_addr constant [14 x i8] c"PaleTurquoise\00"
|
|
@.str876 = private unnamed_addr constant [11 x i8] c"Aquamarine\00"
|
|
@.str877 = private unnamed_addr constant [10 x i8] c"Turquoise\00"
|
|
@.str878 = private unnamed_addr constant [16 x i8] c"MediumTurquoise\00"
|
|
@.str879 = private unnamed_addr constant [14 x i8] c"DarkTurquoise\00"
|
|
@.str880 = private unnamed_addr constant [5 x i8] c"Teal\00"
|
|
@.str881 = private unnamed_addr constant [9 x i8] c"DarkCyan\00"
|
|
@.str882 = private unnamed_addr constant [10 x i8] c"CadetBlue\00"
|
|
@.str883 = private unnamed_addr constant [7 x i8] c"Lagoon\00"
|
|
@.str884 = private unnamed_addr constant [8 x i8] c"Seafoam\00"
|
|
@.str885 = private unnamed_addr constant [9 x i8] c"Cerulean\00"
|
|
@.str886 = private unnamed_addr constant [13 x i8] c"SkyBlueLight\00"
|
|
@.str887 = private unnamed_addr constant [6 x i8] c"Robin\00"
|
|
@.str888 = private unnamed_addr constant [10 x i8] c"Verdigris\00"
|
|
@.str889 = private unnamed_addr constant [8 x i8] c"Celadon\00"
|
|
@.str890 = private unnamed_addr constant [5 x i8] c"Blue\00"
|
|
@.str891 = private unnamed_addr constant [10 x i8] c"LightBlue\00"
|
|
@.str892 = private unnamed_addr constant [11 x i8] c"PowderBlue\00"
|
|
@.str893 = private unnamed_addr constant [8 x i8] c"SkyBlue\00"
|
|
@.str894 = private unnamed_addr constant [13 x i8] c"LightSkyBlue\00"
|
|
@.str895 = private unnamed_addr constant [12 x i8] c"DeepSkyBlue\00"
|
|
@.str896 = private unnamed_addr constant [11 x i8] c"DodgerBlue\00"
|
|
@.str897 = private unnamed_addr constant [15 x i8] c"CornflowerBlue\00"
|
|
@.str898 = private unnamed_addr constant [10 x i8] c"SteelBlue\00"
|
|
@.str899 = private unnamed_addr constant [10 x i8] c"RoyalBlue\00"
|
|
@.str900 = private unnamed_addr constant [11 x i8] c"MediumBlue\00"
|
|
@.str901 = private unnamed_addr constant [9 x i8] c"DarkBlue\00"
|
|
@.str902 = private unnamed_addr constant [5 x i8] c"Navy\00"
|
|
@.str903 = private unnamed_addr constant [13 x i8] c"MidnightBlue\00"
|
|
@.str904 = private unnamed_addr constant [7 x i8] c"Cobalt\00"
|
|
@.str905 = private unnamed_addr constant [9 x i8] c"Sapphire\00"
|
|
@.str906 = private unnamed_addr constant [6 x i8] c"Denim\00"
|
|
@.str907 = private unnamed_addr constant [7 x i8] c"Indigo\00"
|
|
@.str908 = private unnamed_addr constant [9 x i8] c"Prussian\00"
|
|
@.str909 = private unnamed_addr constant [12 x i8] c"Ultramarine\00"
|
|
@.str910 = private unnamed_addr constant [11 x i8] c"Periwinkle\00"
|
|
@.str911 = private unnamed_addr constant [5 x i8] c"Iris\00"
|
|
@.str912 = private unnamed_addr constant [9 x i8] c"Glaucous\00"
|
|
@.str913 = private unnamed_addr constant [7 x i8] c"Zaffre\00"
|
|
@.str914 = private unnamed_addr constant [6 x i8] c"Berry\00"
|
|
@.str915 = private unnamed_addr constant [7 x i8] c"Purple\00"
|
|
@.str916 = private unnamed_addr constant [7 x i8] c"Violet\00"
|
|
@.str917 = private unnamed_addr constant [11 x i8] c"DarkViolet\00"
|
|
@.str918 = private unnamed_addr constant [11 x i8] c"BlueViolet\00"
|
|
@.str919 = private unnamed_addr constant [13 x i8] c"MediumPurple\00"
|
|
@.str920 = private unnamed_addr constant [9 x i8] c"Amethyst\00"
|
|
@.str921 = private unnamed_addr constant [5 x i8] c"Plum\00"
|
|
@.str922 = private unnamed_addr constant [9 x i8] c"Eggplant\00"
|
|
@.str923 = private unnamed_addr constant [6 x i8] c"Grape\00"
|
|
@.str924 = private unnamed_addr constant [5 x i8] c"Wine\00"
|
|
@.str925 = private unnamed_addr constant [9 x i8] c"Mulberry\00"
|
|
@.str926 = private unnamed_addr constant [6 x i8] c"Lilac\00"
|
|
@.str927 = private unnamed_addr constant [9 x i8] c"Wisteria\00"
|
|
@.str928 = private unnamed_addr constant [11 x i8] c"Heliotrope\00"
|
|
@.str929 = private unnamed_addr constant [10 x i8] c"Byzantium\00"
|
|
@.str930 = private unnamed_addr constant [7 x i8] c"Tyrian\00"
|
|
@.str931 = private unnamed_addr constant [14 x i8] c"RebeccaPurple\00"
|
|
@.str932 = private unnamed_addr constant [8 x i8] c"Orchid2\00"
|
|
@.str933 = private unnamed_addr constant [15 x i8] c"getelementptr \00"
|
|
@.str934 = private unnamed_addr constant [18 x i8] c", ptr null, i32 1\00"
|
|
@.str935 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00"
|
|
@.str936 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str937 = private unnamed_addr constant [27 x i8] c"unknown record type in new\00"
|
|
@.str938 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00"
|
|
@.str939 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str940 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str941 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00"
|
|
@.str942 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str943 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str944 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str945 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str946 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str947 = private unnamed_addr constant [5 x i8] c"null\00"
|
|
@.str948 = private unnamed_addr constant [9 x i8] c" store \00"
|
|
@.str949 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str950 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str951 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str952 = private unnamed_addr constant [8 x i8] c"%LSlice\00"
|
|
@.str953 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00"
|
|
@.str954 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str955 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str956 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00"
|
|
@.str957 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00"
|
|
@.str958 = private unnamed_addr constant [23 x i8] c" store ptr null, ptr \00"
|
|
@.str959 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str960 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str961 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00"
|
|
@.str962 = private unnamed_addr constant [16 x i8] c", i32 0, i32 1\0A\00"
|
|
@.str963 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00"
|
|
@.str964 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str965 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str966 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00"
|
|
@.str967 = private unnamed_addr constant [16 x i8] c", i32 0, i32 2\0A\00"
|
|
@.str968 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00"
|
|
@.str969 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str970 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str971 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00"
|
|
@.str972 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str973 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str974 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str975 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str976 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00"
|
|
@.str977 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str978 = private unnamed_addr constant [11 x i8] c"trunc i64 \00"
|
|
@.str979 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str980 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str981 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str982 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str983 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00"
|
|
@.str984 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str985 = private unnamed_addr constant [5 x i8] c"grow\00"
|
|
@.str986 = private unnamed_addr constant [4 x i8] c"put\00"
|
|
@.str987 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str988 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str989 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str990 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str991 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str992 = private unnamed_addr constant [9 x i8] c"mul i32 \00"
|
|
@.str993 = private unnamed_addr constant [4 x i8] c", 2\00"
|
|
@.str994 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str995 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str996 = private unnamed_addr constant [11 x i8] c"select i1 \00"
|
|
@.str997 = private unnamed_addr constant [14 x i8] c", i32 8, i32 \00"
|
|
@.str998 = private unnamed_addr constant [10 x i8] c"zext i32 \00"
|
|
@.str999 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str1000 = private unnamed_addr constant [9 x i8] c"mul i64 \00"
|
|
@.str1001 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1002 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00"
|
|
@.str1003 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00"
|
|
@.str1004 = private unnamed_addr constant [7 x i8] c", i64 \00"
|
|
@.str1005 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1006 = private unnamed_addr constant [13 x i8] c" store ptr \00"
|
|
@.str1007 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1008 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1009 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str1010 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1011 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1012 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1013 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1014 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1015 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00"
|
|
@.str1016 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1017 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00"
|
|
@.str1018 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1019 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1020 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1021 = private unnamed_addr constant [9 x i8] c" store \00"
|
|
@.str1022 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1023 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1024 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1025 = private unnamed_addr constant [9 x i8] c"add i32 \00"
|
|
@.str1026 = private unnamed_addr constant [4 x i8] c", 1\00"
|
|
@.str1027 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str1028 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1029 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1030 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1031 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1032 = private unnamed_addr constant [6 x i8] c"load \00"
|
|
@.str1033 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1034 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str1035 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str1036 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1037 = private unnamed_addr constant [9 x i8] c"zext i1 \00"
|
|
@.str1038 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1039 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str1040 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1041 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1042 = private unnamed_addr constant [3 x i8] c"sc\00"
|
|
@.str1043 = private unnamed_addr constant [6 x i8] c"scend\00"
|
|
@.str1044 = private unnamed_addr constant [4 x i8] c"and\00"
|
|
@.str1045 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1046 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1047 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1048 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1049 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1050 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1051 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1052 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1053 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1054 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str1055 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1056 = private unnamed_addr constant [9 x i8] c"zext i1 \00"
|
|
@.str1057 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1058 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str1059 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1060 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1061 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1062 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1063 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1064 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1065 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str1066 = private unnamed_addr constant [2 x i8] c"<\00"
|
|
@.str1067 = private unnamed_addr constant [4 x i8] c"slt\00"
|
|
@.str1068 = private unnamed_addr constant [3 x i8] c"<=\00"
|
|
@.str1069 = private unnamed_addr constant [4 x i8] c"sle\00"
|
|
@.str1070 = private unnamed_addr constant [2 x i8] c">\00"
|
|
@.str1071 = private unnamed_addr constant [4 x i8] c"sgt\00"
|
|
@.str1072 = private unnamed_addr constant [3 x i8] c">=\00"
|
|
@.str1073 = private unnamed_addr constant [4 x i8] c"sge\00"
|
|
@.str1074 = private unnamed_addr constant [3 x i8] c"==\00"
|
|
@.str1075 = private unnamed_addr constant [3 x i8] c"eq\00"
|
|
@.str1076 = private unnamed_addr constant [3 x i8] c"ne\00"
|
|
@.str1077 = private unnamed_addr constant [2 x i8] c"<\00"
|
|
@.str1078 = private unnamed_addr constant [3 x i8] c"<=\00"
|
|
@.str1079 = private unnamed_addr constant [2 x i8] c">\00"
|
|
@.str1080 = private unnamed_addr constant [3 x i8] c">=\00"
|
|
@.str1081 = private unnamed_addr constant [3 x i8] c"==\00"
|
|
@.str1082 = private unnamed_addr constant [3 x i8] c"!=\00"
|
|
@.str1083 = private unnamed_addr constant [2 x i8] c"+\00"
|
|
@.str1084 = private unnamed_addr constant [4 x i8] c"add\00"
|
|
@.str1085 = private unnamed_addr constant [2 x i8] c"-\00"
|
|
@.str1086 = private unnamed_addr constant [4 x i8] c"sub\00"
|
|
@.str1087 = private unnamed_addr constant [2 x i8] c"*\00"
|
|
@.str1088 = private unnamed_addr constant [4 x i8] c"mul\00"
|
|
@.str1089 = private unnamed_addr constant [2 x i8] c"/\00"
|
|
@.str1090 = private unnamed_addr constant [5 x i8] c"sdiv\00"
|
|
@.str1091 = private unnamed_addr constant [2 x i8] c"&\00"
|
|
@.str1092 = private unnamed_addr constant [4 x i8] c"and\00"
|
|
@.str1093 = private unnamed_addr constant [2 x i8] c"|\00"
|
|
@.str1094 = private unnamed_addr constant [3 x i8] c"or\00"
|
|
@.str1095 = private unnamed_addr constant [2 x i8] c"^\00"
|
|
@.str1096 = private unnamed_addr constant [4 x i8] c"xor\00"
|
|
@.str1097 = private unnamed_addr constant [3 x i8] c"<<\00"
|
|
@.str1098 = private unnamed_addr constant [4 x i8] c"shl\00"
|
|
@.str1099 = private unnamed_addr constant [3 x i8] c">>\00"
|
|
@.str1100 = private unnamed_addr constant [5 x i8] c"lshr\00"
|
|
@.str1101 = private unnamed_addr constant [5 x i8] c"srem\00"
|
|
@.str1102 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str1103 = private unnamed_addr constant [9 x i8] c"shl i32 \00"
|
|
@.str1104 = private unnamed_addr constant [5 x i8] c", 16\00"
|
|
@.str1105 = private unnamed_addr constant [2 x i8] c"+\00"
|
|
@.str1106 = private unnamed_addr constant [29 x i8] c"call ptr @fn_str_concat(ptr \00"
|
|
@.str1107 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1108 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1109 = private unnamed_addr constant [4 x i8] c"str\00"
|
|
@.str1110 = private unnamed_addr constant [25 x i8] c"call i32 @fn_str_eq(ptr \00"
|
|
@.str1111 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1112 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1113 = private unnamed_addr constant [3 x i8] c"!=\00"
|
|
@.str1114 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str1115 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1116 = private unnamed_addr constant [9 x i8] c"zext i1 \00"
|
|
@.str1117 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1118 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str1119 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str1120 = private unnamed_addr constant [4 x i8] c"and\00"
|
|
@.str1121 = private unnamed_addr constant [3 x i8] c"or\00"
|
|
@.str1122 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1123 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1124 = private unnamed_addr constant [2 x i8] c"+\00"
|
|
@.str1125 = private unnamed_addr constant [2 x i8] c"+\00"
|
|
@.str1126 = private unnamed_addr constant [3 x i8] c"==\00"
|
|
@.str1127 = private unnamed_addr constant [3 x i8] c"!=\00"
|
|
@.str1128 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str1129 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str1130 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str1131 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1132 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1133 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1134 = private unnamed_addr constant [6 x i8] c"icmp \00"
|
|
@.str1135 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1136 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1137 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1138 = private unnamed_addr constant [9 x i8] c"zext i1 \00"
|
|
@.str1139 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1140 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str1141 = private unnamed_addr constant [2 x i8] c"*\00"
|
|
@.str1142 = private unnamed_addr constant [10 x i8] c"sext i32 \00"
|
|
@.str1143 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str1144 = private unnamed_addr constant [10 x i8] c"sext i32 \00"
|
|
@.str1145 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str1146 = private unnamed_addr constant [9 x i8] c"mul i64 \00"
|
|
@.str1147 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1148 = private unnamed_addr constant [10 x i8] c"ashr i64 \00"
|
|
@.str1149 = private unnamed_addr constant [5 x i8] c", 16\00"
|
|
@.str1150 = private unnamed_addr constant [11 x i8] c"trunc i64 \00"
|
|
@.str1151 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1152 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str1153 = private unnamed_addr constant [2 x i8] c"/\00"
|
|
@.str1154 = private unnamed_addr constant [10 x i8] c"sext i32 \00"
|
|
@.str1155 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str1156 = private unnamed_addr constant [9 x i8] c"shl i64 \00"
|
|
@.str1157 = private unnamed_addr constant [5 x i8] c", 16\00"
|
|
@.str1158 = private unnamed_addr constant [10 x i8] c"sext i32 \00"
|
|
@.str1159 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str1160 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00"
|
|
@.str1161 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1162 = private unnamed_addr constant [11 x i8] c"trunc i64 \00"
|
|
@.str1163 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1164 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str1165 = private unnamed_addr constant [6 x i8] c" i32 \00"
|
|
@.str1166 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1167 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str1168 = private unnamed_addr constant [6 x i8] c" i32 \00"
|
|
@.str1169 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1170 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1171 = private unnamed_addr constant [59 x i8] c"named and positional arguments cannot be mixed in one call\00"
|
|
@.str1172 = private unnamed_addr constant [26 x i8] c"wrong number of arguments\00"
|
|
@.str1173 = private unnamed_addr constant [19 x i8] c"no argument named \00"
|
|
@.str1174 = private unnamed_addr constant [7 x i8] c"Screen\00"
|
|
@.str1175 = private unnamed_addr constant [6 x i8] c"clear\00"
|
|
@.str1176 = private unnamed_addr constant [6 x i8] c"clear\00"
|
|
@.str1177 = private unnamed_addr constant [6 x i8] c"color\00"
|
|
@.str1178 = private unnamed_addr constant [15 x i8] c"fill_rectangle\00"
|
|
@.str1179 = private unnamed_addr constant [10 x i8] c"fill_rect\00"
|
|
@.str1180 = private unnamed_addr constant [2 x i8] c"x\00"
|
|
@.str1181 = private unnamed_addr constant [2 x i8] c"y\00"
|
|
@.str1182 = private unnamed_addr constant [6 x i8] c"width\00"
|
|
@.str1183 = private unnamed_addr constant [7 x i8] c"height\00"
|
|
@.str1184 = private unnamed_addr constant [6 x i8] c"color\00"
|
|
@.str1185 = private unnamed_addr constant [15 x i8] c"draw_rectangle\00"
|
|
@.str1186 = private unnamed_addr constant [11 x i8] c"frame_rect\00"
|
|
@.str1187 = private unnamed_addr constant [2 x i8] c"x\00"
|
|
@.str1188 = private unnamed_addr constant [2 x i8] c"y\00"
|
|
@.str1189 = private unnamed_addr constant [6 x i8] c"width\00"
|
|
@.str1190 = private unnamed_addr constant [7 x i8] c"height\00"
|
|
@.str1191 = private unnamed_addr constant [6 x i8] c"color\00"
|
|
@.str1192 = private unnamed_addr constant [10 x i8] c"put_pixel\00"
|
|
@.str1193 = private unnamed_addr constant [7 x i8] c"put_px\00"
|
|
@.str1194 = private unnamed_addr constant [2 x i8] c"x\00"
|
|
@.str1195 = private unnamed_addr constant [2 x i8] c"y\00"
|
|
@.str1196 = private unnamed_addr constant [6 x i8] c"color\00"
|
|
@.str1197 = private unnamed_addr constant [10 x i8] c"draw_text\00"
|
|
@.str1198 = private unnamed_addr constant [5 x i8] c"text\00"
|
|
@.str1199 = private unnamed_addr constant [2 x i8] c"x\00"
|
|
@.str1200 = private unnamed_addr constant [2 x i8] c"y\00"
|
|
@.str1201 = private unnamed_addr constant [5 x i8] c"text\00"
|
|
@.str1202 = private unnamed_addr constant [6 x i8] c"color\00"
|
|
@.str1203 = private unnamed_addr constant [6 x i8] c"scale\00"
|
|
@.str1204 = private unnamed_addr constant [12 x i8] c"draw_number\00"
|
|
@.str1205 = private unnamed_addr constant [9 x i8] c"text_int\00"
|
|
@.str1206 = private unnamed_addr constant [2 x i8] c"x\00"
|
|
@.str1207 = private unnamed_addr constant [2 x i8] c"y\00"
|
|
@.str1208 = private unnamed_addr constant [6 x i8] c"value\00"
|
|
@.str1209 = private unnamed_addr constant [6 x i8] c"color\00"
|
|
@.str1210 = private unnamed_addr constant [6 x i8] c"scale\00"
|
|
@.str1211 = private unnamed_addr constant [5 x i8] c"show\00"
|
|
@.str1212 = private unnamed_addr constant [8 x i8] c"present\00"
|
|
@.str1213 = private unnamed_addr constant [6 x i8] c"width\00"
|
|
@.str1214 = private unnamed_addr constant [9 x i8] c"screen_w\00"
|
|
@.str1215 = private unnamed_addr constant [7 x i8] c"height\00"
|
|
@.str1216 = private unnamed_addr constant [9 x i8] c"screen_h\00"
|
|
@.str1217 = private unnamed_addr constant [7 x i8] c"status\00"
|
|
@.str1218 = private unnamed_addr constant [7 x i8] c"status\00"
|
|
@.str1219 = private unnamed_addr constant [5 x i8] c"text\00"
|
|
@.str1220 = private unnamed_addr constant [4 x i8] c"Map\00"
|
|
@.str1221 = private unnamed_addr constant [5 x i8] c"size\00"
|
|
@.str1222 = private unnamed_addr constant [9 x i8] c"map_size\00"
|
|
@.str1223 = private unnamed_addr constant [6 x i8] c"width\00"
|
|
@.str1224 = private unnamed_addr constant [7 x i8] c"height\00"
|
|
@.str1225 = private unnamed_addr constant [4 x i8] c"row\00"
|
|
@.str1226 = private unnamed_addr constant [8 x i8] c"map_row\00"
|
|
@.str1227 = private unnamed_addr constant [2 x i8] c"y\00"
|
|
@.str1228 = private unnamed_addr constant [6 x i8] c"cells\00"
|
|
@.str1229 = private unnamed_addr constant [5 x i8] c"tile\00"
|
|
@.str1230 = private unnamed_addr constant [5 x i8] c"tile\00"
|
|
@.str1231 = private unnamed_addr constant [2 x i8] c"x\00"
|
|
@.str1232 = private unnamed_addr constant [2 x i8] c"y\00"
|
|
@.str1233 = private unnamed_addr constant [7 x i8] c"Random\00"
|
|
@.str1234 = private unnamed_addr constant [6 x i8] c"range\00"
|
|
@.str1235 = private unnamed_addr constant [10 x i8] c"rng_range\00"
|
|
@.str1236 = private unnamed_addr constant [4 x i8] c"low\00"
|
|
@.str1237 = private unnamed_addr constant [5 x i8] c"high\00"
|
|
@.str1238 = private unnamed_addr constant [7 x i8] c"chance\00"
|
|
@.str1239 = private unnamed_addr constant [11 x i8] c"rng_chance\00"
|
|
@.str1240 = private unnamed_addr constant [8 x i8] c"percent\00"
|
|
@.str1241 = private unnamed_addr constant [5 x i8] c"seed\00"
|
|
@.str1242 = private unnamed_addr constant [5 x i8] c"seed\00"
|
|
@.str1243 = private unnamed_addr constant [6 x i8] c"value\00"
|
|
@.str1244 = private unnamed_addr constant [6 x i8] c"Input\00"
|
|
@.str1245 = private unnamed_addr constant [4 x i8] c"key\00"
|
|
@.str1246 = private unnamed_addr constant [4 x i8] c"key\00"
|
|
@.str1247 = private unnamed_addr constant [17 x i8] c"unknown builtin \00"
|
|
@.str1248 = private unnamed_addr constant [2 x i8] c".\00"
|
|
@.str1249 = private unnamed_addr constant [30 x i8] c"call target is not a function\00"
|
|
@.str1250 = private unnamed_addr constant [5 x i8] c"self\00"
|
|
@.str1251 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1252 = private unnamed_addr constant [7 x i8] c"entity\00"
|
|
@.str1253 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1254 = private unnamed_addr constant [7 x i8] c"entity\00"
|
|
@.str1255 = private unnamed_addr constant [4 x i8] c"key\00"
|
|
@.str1256 = private unnamed_addr constant [21 x i8] c"load i32, ptr @L_key\00"
|
|
@.str1257 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1258 = private unnamed_addr constant [5 x i8] c"save\00"
|
|
@.str1259 = private unnamed_addr constant [23 x i8] c" call void @L_save()\0A\00"
|
|
@.str1260 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1261 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1262 = private unnamed_addr constant [9 x i8] c"ui_build\00"
|
|
@.str1263 = private unnamed_addr constant [25 x i8] c" call void @ui_build()\0A\00"
|
|
@.str1264 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1265 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1266 = private unnamed_addr constant [5 x i8] c"load\00"
|
|
@.str1267 = private unnamed_addr constant [19 x i8] c"call i32 @L_load()\00"
|
|
@.str1268 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str1269 = private unnamed_addr constant [11 x i8] c"world_size\00"
|
|
@.str1270 = private unnamed_addr constant [25 x i8] c"call i32 @L_world_size()\00"
|
|
@.str1271 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1272 = private unnamed_addr constant [11 x i8] c"world_save\00"
|
|
@.str1273 = private unnamed_addr constant [28 x i8] c"call i32 @L_world_save(ptr \00"
|
|
@.str1274 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1275 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1276 = private unnamed_addr constant [11 x i8] c"world_load\00"
|
|
@.str1277 = private unnamed_addr constant [31 x i8] c" call void @L_world_load(ptr \00"
|
|
@.str1278 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1279 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1280 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1281 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1282 = private unnamed_addr constant [5 x i8] c"quit\00"
|
|
@.str1283 = private unnamed_addr constant [31 x i8] c" store i32 0, ptr @L_running\0A\00"
|
|
@.str1284 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1285 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1286 = private unnamed_addr constant [10 x i8] c"serialize\00"
|
|
@.str1287 = private unnamed_addr constant [31 x i8] c"call i32 @ludic_serialize(i32 \00"
|
|
@.str1288 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1289 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1290 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1291 = private unnamed_addr constant [6 x i8] c"apply\00"
|
|
@.str1292 = private unnamed_addr constant [30 x i8] c" call void @ludic_apply(i32 \00"
|
|
@.str1293 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1294 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1295 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1296 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1297 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1298 = private unnamed_addr constant [10 x i8] c"sync_size\00"
|
|
@.str1299 = private unnamed_addr constant [31 x i8] c"call i32 @ludic_sync_size(i32 \00"
|
|
@.str1300 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1301 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1302 = private unnamed_addr constant [6 x i8] c"owner\00"
|
|
@.str1303 = private unnamed_addr constant [23 x i8] c"call i32 @L_owner(i32 \00"
|
|
@.str1304 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1305 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1306 = private unnamed_addr constant [10 x i8] c"set_owner\00"
|
|
@.str1307 = private unnamed_addr constant [30 x i8] c" call void @L_set_owner(i32 \00"
|
|
@.str1308 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1309 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1310 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1311 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1312 = private unnamed_addr constant [9 x i8] c"is_owner\00"
|
|
@.str1313 = private unnamed_addr constant [26 x i8] c"call i32 @L_is_owner(i32 \00"
|
|
@.str1314 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1315 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str1316 = private unnamed_addr constant [10 x i8] c"is_server\00"
|
|
@.str1317 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_role\00"
|
|
@.str1318 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str1319 = private unnamed_addr constant [4 x i8] c", 1\00"
|
|
@.str1320 = private unnamed_addr constant [9 x i8] c"zext i1 \00"
|
|
@.str1321 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1322 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str1323 = private unnamed_addr constant [9 x i8] c"local_id\00"
|
|
@.str1324 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_localid\00"
|
|
@.str1325 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1326 = private unnamed_addr constant [9 x i8] c"net_pump\00"
|
|
@.str1327 = private unnamed_addr constant [27 x i8] c" call void @L_net_pump()\0A\00"
|
|
@.str1328 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1329 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1330 = private unnamed_addr constant [11 x i8] c"tick_fixed\00"
|
|
@.str1331 = private unnamed_addr constant [29 x i8] c" call void @L_tick_fixed()\0A\00"
|
|
@.str1332 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1333 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1334 = private unnamed_addr constant [12 x i8] c"tick_render\00"
|
|
@.str1335 = private unnamed_addr constant [30 x i8] c" call void @L_tick_render()\0A\00"
|
|
@.str1336 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1337 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1338 = private unnamed_addr constant [9 x i8] c"set_role\00"
|
|
@.str1339 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str1340 = private unnamed_addr constant [15 x i8] c", ptr @L_role\0A\00"
|
|
@.str1341 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1342 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1343 = private unnamed_addr constant [13 x i8] c"set_local_id\00"
|
|
@.str1344 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str1345 = private unnamed_addr constant [18 x i8] c", ptr @L_localid\0A\00"
|
|
@.str1346 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1347 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1348 = private unnamed_addr constant [9 x i8] c"net_send\00"
|
|
@.str1349 = private unnamed_addr constant [9 x i8] c"net_send\00"
|
|
@.str1350 = private unnamed_addr constant [29 x i8] c" call void @L_net_send(i32 \00"
|
|
@.str1351 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1352 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1353 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1354 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1355 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1356 = private unnamed_addr constant [9 x i8] c"net_poll\00"
|
|
@.str1357 = private unnamed_addr constant [9 x i8] c"net_poll\00"
|
|
@.str1358 = private unnamed_addr constant [26 x i8] c"call i32 @L_net_poll(ptr \00"
|
|
@.str1359 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1360 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1361 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1362 = private unnamed_addr constant [4 x i8] c"len\00"
|
|
@.str1363 = private unnamed_addr constant [5 x i8] c"push\00"
|
|
@.str1364 = private unnamed_addr constant [4 x i8] c"str\00"
|
|
@.str1365 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1366 = private unnamed_addr constant [26 x i8] c"call ptr @fn_int_str(i32 \00"
|
|
@.str1367 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1368 = private unnamed_addr constant [4 x i8] c"str\00"
|
|
@.str1369 = private unnamed_addr constant [6 x i8] c"print\00"
|
|
@.str1370 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1371 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00"
|
|
@.str1372 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1373 = private unnamed_addr constant [50 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_int, i32 \00"
|
|
@.str1374 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1375 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1376 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1377 = private unnamed_addr constant [6 x i8] c"bytes\00"
|
|
@.str1378 = private unnamed_addr constant [10 x i8] c"zext i32 \00"
|
|
@.str1379 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str1380 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00"
|
|
@.str1381 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1382 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1383 = private unnamed_addr constant [6 x i8] c"words\00"
|
|
@.str1384 = private unnamed_addr constant [9 x i8] c"mul i32 \00"
|
|
@.str1385 = private unnamed_addr constant [4 x i8] c", 4\00"
|
|
@.str1386 = private unnamed_addr constant [10 x i8] c"zext i32 \00"
|
|
@.str1387 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str1388 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00"
|
|
@.str1389 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1390 = private unnamed_addr constant [6 x i8] c"words\00"
|
|
@.str1391 = private unnamed_addr constant [3 x i8] c"fx\00"
|
|
@.str1392 = private unnamed_addr constant [9 x i8] c"shl i32 \00"
|
|
@.str1393 = private unnamed_addr constant [5 x i8] c", 16\00"
|
|
@.str1394 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str1395 = private unnamed_addr constant [4 x i8] c"flr\00"
|
|
@.str1396 = private unnamed_addr constant [10 x i8] c"ashr i32 \00"
|
|
@.str1397 = private unnamed_addr constant [5 x i8] c", 16\00"
|
|
@.str1398 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1399 = private unnamed_addr constant [14 x i8] c"world_prop_id\00"
|
|
@.str1400 = private unnamed_addr constant [29 x i8] c"call i32 @ludic_prop_id(ptr \00"
|
|
@.str1401 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1402 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1403 = private unnamed_addr constant [15 x i8] c"world_field_id\00"
|
|
@.str1404 = private unnamed_addr constant [30 x i8] c"call i32 @ludic_field_id(i32 \00"
|
|
@.str1405 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1406 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1407 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1408 = private unnamed_addr constant [10 x i8] c"world_get\00"
|
|
@.str1409 = private unnamed_addr constant [25 x i8] c"call i64 @ludic_get(i32 \00"
|
|
@.str1410 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1411 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1412 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1413 = private unnamed_addr constant [11 x i8] c"trunc i64 \00"
|
|
@.str1414 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1415 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1416 = private unnamed_addr constant [10 x i8] c"world_set\00"
|
|
@.str1417 = private unnamed_addr constant [10 x i8] c"sext i32 \00"
|
|
@.str1418 = private unnamed_addr constant [8 x i8] c" to i64\00"
|
|
@.str1419 = private unnamed_addr constant [28 x i8] c" call void @ludic_set(i32 \00"
|
|
@.str1420 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1421 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1422 = private unnamed_addr constant [7 x i8] c", i64 \00"
|
|
@.str1423 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1424 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1425 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1426 = private unnamed_addr constant [10 x i8] c"world_has\00"
|
|
@.str1427 = private unnamed_addr constant [25 x i8] c"call i32 @ludic_has(i32 \00"
|
|
@.str1428 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1429 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1430 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1431 = private unnamed_addr constant [12 x i8] c"world_count\00"
|
|
@.str1432 = private unnamed_addr constant [31 x i8] c"call i32 @ludic_entity_count()\00"
|
|
@.str1433 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1434 = private unnamed_addr constant [11 x i8] c"world_kind\00"
|
|
@.str1435 = private unnamed_addr constant [26 x i8] c"call i32 @ludic_kind(i32 \00"
|
|
@.str1436 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1437 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1438 = private unnamed_addr constant [15 x i8] c"world_model_id\00"
|
|
@.str1439 = private unnamed_addr constant [30 x i8] c"call i32 @ludic_model_id(ptr \00"
|
|
@.str1440 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1441 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1442 = private unnamed_addr constant [17 x i8] c"world_query_next\00"
|
|
@.str1443 = private unnamed_addr constant [32 x i8] c"call i32 @ludic_query_next(i32 \00"
|
|
@.str1444 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1445 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1446 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1447 = private unnamed_addr constant [20 x i8] c"world_register_prop\00"
|
|
@.str1448 = private unnamed_addr constant [35 x i8] c"call i32 @ludic_register_prop(ptr \00"
|
|
@.str1449 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1450 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1451 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1452 = private unnamed_addr constant [17 x i8] c"world_attach_dyn\00"
|
|
@.str1453 = private unnamed_addr constant [35 x i8] c" call void @ludic_attach_dyn(i32 \00"
|
|
@.str1454 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1455 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1456 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1457 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1458 = private unnamed_addr constant [17 x i8] c"world_detach_dyn\00"
|
|
@.str1459 = private unnamed_addr constant [35 x i8] c" call void @ludic_detach_dyn(i32 \00"
|
|
@.str1460 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1461 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1462 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1463 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1464 = private unnamed_addr constant [12 x i8] c"world_spawn\00"
|
|
@.str1465 = private unnamed_addr constant [27 x i8] c"call i32 @ludic_spawn(i32 \00"
|
|
@.str1466 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1467 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1468 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1469 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1470 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1471 = private unnamed_addr constant [4 x i8] c" = \00"
|
|
@.str1472 = private unnamed_addr constant [6 x i8] c"call \00"
|
|
@.str1473 = private unnamed_addr constant [3 x i8] c" @\00"
|
|
@.str1474 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str1475 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1476 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1477 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1478 = private unnamed_addr constant [4 x i8] c"rt_\00"
|
|
@.str1479 = private unnamed_addr constant [18 x i8] c"unknown function \00"
|
|
@.str1480 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1481 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1482 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str1483 = private unnamed_addr constant [4 x i8] c" = \00"
|
|
@.str1484 = private unnamed_addr constant [6 x i8] c"call \00"
|
|
@.str1485 = private unnamed_addr constant [6 x i8] c" @fn_\00"
|
|
@.str1486 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str1487 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1488 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1489 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1490 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1491 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1492 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1493 = private unnamed_addr constant [6 x i8] c"fixed\00"
|
|
@.str1494 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str1495 = private unnamed_addr constant [5 x i8] c"null\00"
|
|
@.str1496 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1497 = private unnamed_addr constant [28 x i8] c"call ptr @fn_str_slice(ptr \00"
|
|
@.str1498 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1499 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str1500 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str1501 = private unnamed_addr constant [4 x i8] c"str\00"
|
|
@.str1502 = private unnamed_addr constant [4 x i8] c"str\00"
|
|
@.str1503 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1504 = private unnamed_addr constant [6 x i8] c"load \00"
|
|
@.str1505 = private unnamed_addr constant [10 x i8] c", ptr @g_\00"
|
|
@.str1506 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1507 = private unnamed_addr constant [20 x i8] c"unknown identifier \00"
|
|
@.str1508 = private unnamed_addr constant [6 x i8] c"Color\00"
|
|
@.str1509 = private unnamed_addr constant [21 x i8] c"unknown color Color.\00"
|
|
@.str1510 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1511 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1512 = private unnamed_addr constant [5 x i8] c"byte\00"
|
|
@.str1513 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00"
|
|
@.str1514 = private unnamed_addr constant [9 x i8] c"zext i8 \00"
|
|
@.str1515 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1516 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1517 = private unnamed_addr constant [2 x i8] c"-\00"
|
|
@.str1518 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00"
|
|
@.str1519 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1520 = private unnamed_addr constant [2 x i8] c"~\00"
|
|
@.str1521 = private unnamed_addr constant [9 x i8] c"xor i32 \00"
|
|
@.str1522 = private unnamed_addr constant [5 x i8] c", -1\00"
|
|
@.str1523 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1524 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str1525 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1526 = private unnamed_addr constant [9 x i8] c"zext i1 \00"
|
|
@.str1527 = private unnamed_addr constant [8 x i8] c" to i32\00"
|
|
@.str1528 = private unnamed_addr constant [5 x i8] c"bool\00"
|
|
@.str1529 = private unnamed_addr constant [23 x i8] c"cannot emit expression\00"
|
|
@.str1530 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1531 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1532 = private unnamed_addr constant [9 x i8] c" store \00"
|
|
@.str1533 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1534 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1535 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1536 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1537 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1538 = private unnamed_addr constant [29 x i8] c"cannot assign to immutable '\00"
|
|
@.str1539 = private unnamed_addr constant [41 x i8] c"' (declared with let; use var) \E2\80\94 line \00"
|
|
@.str1540 = private unnamed_addr constant [19 x i8] c"assign to unknown \00"
|
|
@.str1541 = private unnamed_addr constant [4 x i8] c"@g_\00"
|
|
@.str1542 = private unnamed_addr constant [22 x i8] c"bad assignment target\00"
|
|
@.str1543 = private unnamed_addr constant [2 x i8] c"=\00"
|
|
@.str1544 = private unnamed_addr constant [6 x i8] c"load \00"
|
|
@.str1545 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1546 = private unnamed_addr constant [4 x i8] c"add\00"
|
|
@.str1547 = private unnamed_addr constant [3 x i8] c"-=\00"
|
|
@.str1548 = private unnamed_addr constant [4 x i8] c"sub\00"
|
|
@.str1549 = private unnamed_addr constant [3 x i8] c"*=\00"
|
|
@.str1550 = private unnamed_addr constant [4 x i8] c"mul\00"
|
|
@.str1551 = private unnamed_addr constant [3 x i8] c"/=\00"
|
|
@.str1552 = private unnamed_addr constant [5 x i8] c"sdiv\00"
|
|
@.str1553 = private unnamed_addr constant [6 x i8] c" i32 \00"
|
|
@.str1554 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1555 = private unnamed_addr constant [3 x i8] c"i8\00"
|
|
@.str1556 = private unnamed_addr constant [11 x i8] c"trunc i32 \00"
|
|
@.str1557 = private unnamed_addr constant [7 x i8] c" to i8\00"
|
|
@.str1558 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str1559 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1560 = private unnamed_addr constant [5 x i8] c"then\00"
|
|
@.str1561 = private unnamed_addr constant [5 x i8] c"else\00"
|
|
@.str1562 = private unnamed_addr constant [6 x i8] c"ifend\00"
|
|
@.str1563 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1564 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1565 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1566 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1567 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1568 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1569 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1570 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1571 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1572 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1573 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1574 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1575 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1576 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1577 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1578 = private unnamed_addr constant [6 x i8] c"wcond\00"
|
|
@.str1579 = private unnamed_addr constant [6 x i8] c"wbody\00"
|
|
@.str1580 = private unnamed_addr constant [5 x i8] c"wend\00"
|
|
@.str1581 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1582 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1583 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1584 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str1585 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1586 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1587 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1588 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1589 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1590 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1591 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1592 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1593 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1594 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str1595 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str1596 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1597 = private unnamed_addr constant [6 x i8] c"fcond\00"
|
|
@.str1598 = private unnamed_addr constant [6 x i8] c"fbody\00"
|
|
@.str1599 = private unnamed_addr constant [6 x i8] c"fcont\00"
|
|
@.str1600 = private unnamed_addr constant [5 x i8] c"fend\00"
|
|
@.str1601 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1602 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1603 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1604 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1605 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00"
|
|
@.str1606 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1607 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1608 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1609 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1610 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1611 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1612 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1613 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1614 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1615 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1616 = private unnamed_addr constant [9 x i8] c"add i32 \00"
|
|
@.str1617 = private unnamed_addr constant [4 x i8] c", 1\00"
|
|
@.str1618 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str1619 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1620 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1621 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1622 = private unnamed_addr constant [8 x i8] c"%retval\00"
|
|
@.str1623 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00"
|
|
@.str1624 = private unnamed_addr constant [2 x i8] c"_\00"
|
|
@.str1625 = private unnamed_addr constant [5 x i8] c"mend\00"
|
|
@.str1626 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1627 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str1628 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1629 = private unnamed_addr constant [7 x i8] c"or i1 \00"
|
|
@.str1630 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1631 = private unnamed_addr constant [6 x i8] c"mbody\00"
|
|
@.str1632 = private unnamed_addr constant [5 x i8] c"marm\00"
|
|
@.str1633 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1634 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1635 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1636 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1637 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1638 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1639 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1640 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1641 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1642 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1643 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1644 = private unnamed_addr constant [21 x i8] c"emit: unknown event \00"
|
|
@.str1645 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1646 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1647 = private unnamed_addr constant [5 x i8] c"null\00"
|
|
@.str1648 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1649 = private unnamed_addr constant [53 x i8] c" = getelementptr inbounds i8, ptr @L_sendbuf, i32 0\0A\00"
|
|
@.str1650 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str1651 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1652 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1653 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1654 = private unnamed_addr constant [51 x i8] c" = getelementptr inbounds i8, ptr @L_sendbuf, i32 \00"
|
|
@.str1655 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1656 = private unnamed_addr constant [9 x i8] c" store \00"
|
|
@.str1657 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1658 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1659 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1660 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1661 = private unnamed_addr constant [10 x i8] c"toclients\00"
|
|
@.str1662 = private unnamed_addr constant [3 x i8] c"-1\00"
|
|
@.str1663 = private unnamed_addr constant [9 x i8] c"net_send\00"
|
|
@.str1664 = private unnamed_addr constant [14 x i8] c" call void @\00"
|
|
@.str1665 = private unnamed_addr constant [6 x i8] c"(i32 \00"
|
|
@.str1666 = private unnamed_addr constant [23 x i8] c", ptr @L_sendbuf, i32 \00"
|
|
@.str1667 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1668 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1669 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1670 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1671 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1672 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1673 = private unnamed_addr constant [17 x i8] c" = call i32 @ev_\00"
|
|
@.str1674 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str1675 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1676 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1677 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str1678 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str1679 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1680 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1681 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str1682 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1683 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1684 = private unnamed_addr constant [5 x i8] c"null\00"
|
|
@.str1685 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1686 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1687 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1688 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1689 = private unnamed_addr constant [44 x i8] c"cancel outside a cancellable event listener\00"
|
|
@.str1690 = private unnamed_addr constant [20 x i8] c" store i32 1, ptr \00"
|
|
@.str1691 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1692 = private unnamed_addr constant [22 x i8] c"cannot emit statement\00"
|
|
@.str1693 = private unnamed_addr constant [36 x i8] c"@L_running = internal global i32 1\0A\00"
|
|
@.str1694 = private unnamed_addr constant [32 x i8] c"@L_key = internal global i32 0\0A\00"
|
|
@.str1695 = private unnamed_addr constant [34 x i8] c"@L_scene = internal global i32 0\0A\00"
|
|
@.str1696 = private unnamed_addr constant [33 x i8] c"@L_entc = internal global i32 0\0A\00"
|
|
@.str1697 = private unnamed_addr constant [29 x i8] c"@L_alive = internal global [\00"
|
|
@.str1698 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00"
|
|
@.str1699 = private unnamed_addr constant [28 x i8] c"@L_kind = internal global [\00"
|
|
@.str1700 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00"
|
|
@.str1701 = private unnamed_addr constant [32 x i8] c"@L_freelist = internal global [\00"
|
|
@.str1702 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00"
|
|
@.str1703 = private unnamed_addr constant [34 x i8] c"@L_freen = internal global i32 0\0A\00"
|
|
@.str1704 = private unnamed_addr constant [33 x i8] c"@L_role = internal global i32 1\0A\00"
|
|
@.str1705 = private unnamed_addr constant [36 x i8] c"@L_localid = internal global i32 0\0A\00"
|
|
@.str1706 = private unnamed_addr constant [33 x i8] c"@L_owner_arr = internal global [\00"
|
|
@.str1707 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00"
|
|
@.str1708 = private unnamed_addr constant [4 x i8] c"@S_\00"
|
|
@.str1709 = private unnamed_addr constant [21 x i8] c" = internal global [\00"
|
|
@.str1710 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str1711 = private unnamed_addr constant [19 x i8] c"] zeroinitializer\0A\00"
|
|
@.str1712 = private unnamed_addr constant [4 x i8] c"@H_\00"
|
|
@.str1713 = private unnamed_addr constant [21 x i8] c" = internal global [\00"
|
|
@.str1714 = private unnamed_addr constant [24 x i8] c" x i8] zeroinitializer\0A\00"
|
|
@.str1715 = private unnamed_addr constant [5 x i8] c"@ME_\00"
|
|
@.str1716 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00"
|
|
@.str1717 = private unnamed_addr constant [5 x i8] c"@HE_\00"
|
|
@.str1718 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00"
|
|
@.str1719 = private unnamed_addr constant [5 x i8] c"@LE_\00"
|
|
@.str1720 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00"
|
|
@.str1721 = private unnamed_addr constant [39 x i8] c"define void @L_reset(i32 %e) {\0Aentry:\0A\00"
|
|
@.str1722 = private unnamed_addr constant [3 x i8] c"%h\00"
|
|
@.str1723 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1724 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1725 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00"
|
|
@.str1726 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00"
|
|
@.str1727 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00"
|
|
@.str1728 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1729 = private unnamed_addr constant [32 x i8] c" %k = getelementptr inbounds [\00"
|
|
@.str1730 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00"
|
|
@.str1731 = private unnamed_addr constant [23 x i8] c" store i32 0, ptr %k\0A\00"
|
|
@.str1732 = private unnamed_addr constant [33 x i8] c" %ow = getelementptr inbounds [\00"
|
|
@.str1733 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_owner_arr, i32 0, i32 %e\0A\00"
|
|
@.str1734 = private unnamed_addr constant [25 x i8] c" store i32 -1, ptr %ow\0A\00"
|
|
@.str1735 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00"
|
|
@.str1736 = private unnamed_addr constant [32 x i8] c"define i32 @L_alloc() {\0Aentry:\0A\00"
|
|
@.str1737 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00"
|
|
@.str1738 = private unnamed_addr constant [30 x i8] c" %has = icmp sgt i32 %fn, 0\0A\00"
|
|
@.str1739 = private unnamed_addr constant [42 x i8] c" br i1 %has, label %reuse, label %fresh\0A\00"
|
|
@.str1740 = private unnamed_addr constant [8 x i8] c"reuse:\0A\00"
|
|
@.str1741 = private unnamed_addr constant [25 x i8] c" %fn1 = sub i32 %fn, 1\0A\00"
|
|
@.str1742 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00"
|
|
@.str1743 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00"
|
|
@.str1744 = private unnamed_addr constant [43 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn1\0A\00"
|
|
@.str1745 = private unnamed_addr constant [27 x i8] c" %re = load i32, ptr %fp\0A\00"
|
|
@.str1746 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00"
|
|
@.str1747 = private unnamed_addr constant [8 x i8] c"fresh:\0A\00"
|
|
@.str1748 = private unnamed_addr constant [31 x i8] c" %ec = load i32, ptr @L_entc\0A\00"
|
|
@.str1749 = private unnamed_addr constant [25 x i8] c" %ec1 = add i32 %ec, 1\0A\00"
|
|
@.str1750 = private unnamed_addr constant [31 x i8] c" store i32 %ec1, ptr @L_entc\0A\00"
|
|
@.str1751 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00"
|
|
@.str1752 = private unnamed_addr constant [7 x i8] c"done:\0A\00"
|
|
@.str1753 = private unnamed_addr constant [49 x i8] c" %e = phi i32 [ %re, %reuse ], [ %ec, %fresh ]\0A\00"
|
|
@.str1754 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00"
|
|
@.str1755 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00"
|
|
@.str1756 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00"
|
|
@.str1757 = private unnamed_addr constant [24 x i8] c" store i32 1, ptr %ap\0A\00"
|
|
@.str1758 = private unnamed_addr constant [17 x i8] c" ret i32 %e\0A}\0A\0A\00"
|
|
@.str1759 = private unnamed_addr constant [45 x i8] c"define void @L_free_entity(i32 %e) {\0Aentry:\0A\00"
|
|
@.str1760 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00"
|
|
@.str1761 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00"
|
|
@.str1762 = private unnamed_addr constant [24 x i8] c" store i32 0, ptr %ap\0A\00"
|
|
@.str1763 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00"
|
|
@.str1764 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00"
|
|
@.str1765 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00"
|
|
@.str1766 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn\0A\00"
|
|
@.str1767 = private unnamed_addr constant [25 x i8] c" store i32 %e, ptr %fp\0A\00"
|
|
@.str1768 = private unnamed_addr constant [25 x i8] c" %fn1 = add i32 %fn, 1\0A\00"
|
|
@.str1769 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00"
|
|
@.str1770 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00"
|
|
@.str1771 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str1772 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str1773 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1774 = private unnamed_addr constant [6 x i8] c"qcond\00"
|
|
@.str1775 = private unnamed_addr constant [6 x i8] c"qbody\00"
|
|
@.str1776 = private unnamed_addr constant [6 x i8] c"qnext\00"
|
|
@.str1777 = private unnamed_addr constant [5 x i8] c"qend\00"
|
|
@.str1778 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1779 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1780 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1781 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1782 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00"
|
|
@.str1783 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00"
|
|
@.str1784 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1785 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1786 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1787 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1788 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1789 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1790 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1791 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1792 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1793 = private unnamed_addr constant [35 x i8] c" x i32], ptr @L_alive, i32 0, i32 \00"
|
|
@.str1794 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1795 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1796 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str1797 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1798 = private unnamed_addr constant [3 x i8] c"qa\00"
|
|
@.str1799 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1800 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1801 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1802 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1803 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1804 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1805 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1806 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1807 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00"
|
|
@.str1808 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1809 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1810 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str1811 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1812 = private unnamed_addr constant [19 x i8] c"load i32, ptr @ME_\00"
|
|
@.str1813 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str1814 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1815 = private unnamed_addr constant [8 x i8] c"and i1 \00"
|
|
@.str1816 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1817 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1818 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1819 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00"
|
|
@.str1820 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1821 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1822 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00"
|
|
@.str1823 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00"
|
|
@.str1824 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1825 = private unnamed_addr constant [3 x i8] c"qt\00"
|
|
@.str1826 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1827 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1828 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1829 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1830 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1831 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1832 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1833 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str1834 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00"
|
|
@.str1835 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1836 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1837 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1838 = private unnamed_addr constant [13 x i8] c" store ptr \00"
|
|
@.str1839 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1840 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1841 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str1842 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1843 = private unnamed_addr constant [3 x i8] c"qw\00"
|
|
@.str1844 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1845 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1846 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1847 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1848 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1849 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1850 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1851 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1852 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1853 = private unnamed_addr constant [9 x i8] c"add i32 \00"
|
|
@.str1854 = private unnamed_addr constant [4 x i8] c", 1\00"
|
|
@.str1855 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str1856 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1857 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1858 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1859 = private unnamed_addr constant [25 x i8] c"spawn: unknown property \00"
|
|
@.str1860 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1861 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1862 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00"
|
|
@.str1863 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1864 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1865 = private unnamed_addr constant [19 x i8] c" store i8 1, ptr \00"
|
|
@.str1866 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1867 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1868 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1869 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str1870 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00"
|
|
@.str1871 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1872 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1873 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1874 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00"
|
|
@.str1875 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1876 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1877 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1878 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str1879 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1880 = private unnamed_addr constant [5 x i8] c"null\00"
|
|
@.str1881 = private unnamed_addr constant [9 x i8] c" store \00"
|
|
@.str1882 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1883 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1884 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1885 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1886 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00"
|
|
@.str1887 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1888 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1889 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1890 = private unnamed_addr constant [9 x i8] c" store \00"
|
|
@.str1891 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str1892 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1893 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1894 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1895 = private unnamed_addr constant [13 x i8] c" store ptr \00"
|
|
@.str1896 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1897 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1898 = private unnamed_addr constant [6 x i8] c"prop_\00"
|
|
@.str1899 = private unnamed_addr constant [8 x i8] c"_attach\00"
|
|
@.str1900 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str1901 = private unnamed_addr constant [6 x i8] c"(i32 \00"
|
|
@.str1902 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1903 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1904 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1905 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str1906 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00"
|
|
@.str1907 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1908 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1909 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1910 = private unnamed_addr constant [13 x i8] c" store ptr \00"
|
|
@.str1911 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1912 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1913 = private unnamed_addr constant [20 x i8] c"call i32 @L_alloc()\00"
|
|
@.str1914 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1915 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1916 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00"
|
|
@.str1917 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1918 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str1919 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1920 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1921 = private unnamed_addr constant [7 x i8] c"model_\00"
|
|
@.str1922 = private unnamed_addr constant [7 x i8] c"_spawn\00"
|
|
@.str1923 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str1924 = private unnamed_addr constant [6 x i8] c"(i32 \00"
|
|
@.str1925 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1926 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1927 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1928 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00"
|
|
@.str1929 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1930 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str1931 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str1932 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str1933 = private unnamed_addr constant [3 x i8] c"dh\00"
|
|
@.str1934 = private unnamed_addr constant [4 x i8] c"dhn\00"
|
|
@.str1935 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1936 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1937 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1938 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1939 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00"
|
|
@.str1940 = private unnamed_addr constant [6 x i8] c"(i32 \00"
|
|
@.str1941 = private unnamed_addr constant [10 x i8] c", i32 0)\0A\00"
|
|
@.str1942 = private unnamed_addr constant [7 x i8] c"model_\00"
|
|
@.str1943 = private unnamed_addr constant [9 x i8] c"_despawn\00"
|
|
@.str1944 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str1945 = private unnamed_addr constant [6 x i8] c"(i32 \00"
|
|
@.str1946 = private unnamed_addr constant [10 x i8] c", i32 0)\0A\00"
|
|
@.str1947 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1948 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1949 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1950 = private unnamed_addr constant [37 x i8] c" call void @ludic_sweep_entity(i32 \00"
|
|
@.str1951 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1952 = private unnamed_addr constant [32 x i8] c" call void @L_free_entity(i32 \00"
|
|
@.str1953 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str1954 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1955 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1956 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00"
|
|
@.str1957 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1958 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1959 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00"
|
|
@.str1960 = private unnamed_addr constant [12 x i8] c"icmp eq i8 \00"
|
|
@.str1961 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1962 = private unnamed_addr constant [7 x i8] c"attach\00"
|
|
@.str1963 = private unnamed_addr constant [8 x i8] c"attdone\00"
|
|
@.str1964 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1965 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1966 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1967 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1968 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1969 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str1970 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1971 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1972 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1973 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1974 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00"
|
|
@.str1975 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1976 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1977 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00"
|
|
@.str1978 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00"
|
|
@.str1979 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str1980 = private unnamed_addr constant [7 x i8] c"detach\00"
|
|
@.str1981 = private unnamed_addr constant [8 x i8] c"detdone\00"
|
|
@.str1982 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str1983 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1984 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str1985 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1986 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str1987 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00"
|
|
@.str1988 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1989 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str1990 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str1991 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str1992 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00"
|
|
@.str1993 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str1994 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1995 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str1996 = private unnamed_addr constant [13 x i8] c" store ptr \00"
|
|
@.str1997 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str1998 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str1999 = private unnamed_addr constant [6 x i8] c"prop_\00"
|
|
@.str2000 = private unnamed_addr constant [8 x i8] c"_detach\00"
|
|
@.str2001 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str2002 = private unnamed_addr constant [6 x i8] c"(i32 \00"
|
|
@.str2003 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2004 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str2005 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2006 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2007 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str2008 = private unnamed_addr constant [2 x i8] c"1\00"
|
|
@.str2009 = private unnamed_addr constant [6 x i8] c"layer\00"
|
|
@.str2010 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str2011 = private unnamed_addr constant [11 x i8] c", ptr @LE_\00"
|
|
@.str2012 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2013 = private unnamed_addr constant [7 x i8] c"layer_\00"
|
|
@.str2014 = private unnamed_addr constant [6 x i8] c"_hide\00"
|
|
@.str2015 = private unnamed_addr constant [7 x i8] c"layer_\00"
|
|
@.str2016 = private unnamed_addr constant [6 x i8] c"_show\00"
|
|
@.str2017 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str2018 = private unnamed_addr constant [4 x i8] c"()\0A\00"
|
|
@.str2019 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2020 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2021 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00"
|
|
@.str2022 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str2023 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2024 = private unnamed_addr constant [12 x i8] c" store i8 \00"
|
|
@.str2025 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2026 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2027 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2028 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2029 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str2030 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00"
|
|
@.str2031 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str2032 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2033 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str2034 = private unnamed_addr constant [13 x i8] c" store ptr \00"
|
|
@.str2035 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2036 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2037 = private unnamed_addr constant [6 x i8] c"prop_\00"
|
|
@.str2038 = private unnamed_addr constant [9 x i8] c"_disable\00"
|
|
@.str2039 = private unnamed_addr constant [6 x i8] c"prop_\00"
|
|
@.str2040 = private unnamed_addr constant [8 x i8] c"_enable\00"
|
|
@.str2041 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str2042 = private unnamed_addr constant [6 x i8] c"(i32 \00"
|
|
@.str2043 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2044 = private unnamed_addr constant [5 x i8] c"@HE_\00"
|
|
@.str2045 = private unnamed_addr constant [5 x i8] c"@ME_\00"
|
|
@.str2046 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str2047 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2048 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2049 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str2050 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00"
|
|
@.str2051 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00"
|
|
@.str2052 = private unnamed_addr constant [18 x i8] c"define void @sys_\00"
|
|
@.str2053 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00"
|
|
@.str2054 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00"
|
|
@.str2055 = private unnamed_addr constant [19 x i8] c"load i32, ptr @HE_\00"
|
|
@.str2056 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str2057 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str2058 = private unnamed_addr constant [19 x i8] c"load i32, ptr @LE_\00"
|
|
@.str2059 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str2060 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str2061 = private unnamed_addr constant [8 x i8] c"and i1 \00"
|
|
@.str2062 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2063 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_role\00"
|
|
@.str2064 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str2065 = private unnamed_addr constant [4 x i8] c", 1\00"
|
|
@.str2066 = private unnamed_addr constant [8 x i8] c"and i1 \00"
|
|
@.str2067 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2068 = private unnamed_addr constant [5 x i8] c"hrun\00"
|
|
@.str2069 = private unnamed_addr constant [6 x i8] c"hskip\00"
|
|
@.str2070 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str2071 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2072 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2073 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2074 = private unnamed_addr constant [20 x i8] c":\0A call void @sys_\00"
|
|
@.str2075 = private unnamed_addr constant [4 x i8] c"()\0A\00"
|
|
@.str2076 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str2077 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2078 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2079 = private unnamed_addr constant [23 x i8] c"load i32, ptr @L_scene\00"
|
|
@.str2080 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str2081 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2082 = private unnamed_addr constant [6 x i8] c"scrun\00"
|
|
@.str2083 = private unnamed_addr constant [7 x i8] c"scskip\00"
|
|
@.str2084 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str2085 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2086 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2087 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2088 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2089 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str2090 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2091 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2092 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str2093 = private unnamed_addr constant [7 x i8] c"scene_\00"
|
|
@.str2094 = private unnamed_addr constant [2 x i8] c"_\00"
|
|
@.str2095 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str2096 = private unnamed_addr constant [4 x i8] c"()\0A\00"
|
|
@.str2097 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00"
|
|
@.str2098 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00"
|
|
@.str2099 = private unnamed_addr constant [20 x i8] c"define void @scene_\00"
|
|
@.str2100 = private unnamed_addr constant [2 x i8] c"_\00"
|
|
@.str2101 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00"
|
|
@.str2102 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00"
|
|
@.str2103 = private unnamed_addr constant [6 x i8] c"enter\00"
|
|
@.str2104 = private unnamed_addr constant [5 x i8] c"exit\00"
|
|
@.str2105 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str2106 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str2107 = private unnamed_addr constant [26 x i8] c" store i32 %reason, ptr \00"
|
|
@.str2108 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2109 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str2110 = private unnamed_addr constant [3 x i8] c"%e\00"
|
|
@.str2111 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00"
|
|
@.str2112 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00"
|
|
@.str2113 = private unnamed_addr constant [25 x i8] c"define void @on_despawn_\00"
|
|
@.str2114 = private unnamed_addr constant [32 x i8] c"(i32 %e, i32 %reason) {\0Aentry:\0A\00"
|
|
@.str2115 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00"
|
|
@.str2116 = private unnamed_addr constant [67 x i8] c"define void @L_despawn_all(i32 %reason) {\0Aentry:\0A br label %loop\0A\00"
|
|
@.str2117 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %cont ]\0A\00"
|
|
@.str2118 = private unnamed_addr constant [58 x i8] c" %n = load i32, ptr @L_entc\0A %go = icmp slt i32 %i, %n\0A\00"
|
|
@.str2119 = private unnamed_addr constant [38 x i8] c" br i1 %go, label %body, label %fin\0A\00"
|
|
@.str2120 = private unnamed_addr constant [39 x i8] c"body:\0A %ap = getelementptr inbounds [\00"
|
|
@.str2121 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %i\0A\00"
|
|
@.str2122 = private unnamed_addr constant [55 x i8] c" %al = load i32, ptr %ap\0A %isa = icmp ne i32 %al, 0\0A\00"
|
|
@.str2123 = private unnamed_addr constant [38 x i8] c" br i1 %isa, label %do, label %cont\0A\00"
|
|
@.str2124 = private unnamed_addr constant [37 x i8] c"do:\0A %kp = getelementptr inbounds [\00"
|
|
@.str2125 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %i\0A\00"
|
|
@.str2126 = private unnamed_addr constant [26 x i8] c" %k = load i32, ptr %kp\0A\00"
|
|
@.str2127 = private unnamed_addr constant [5 x i8] c" %c\00"
|
|
@.str2128 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00"
|
|
@.str2129 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2130 = private unnamed_addr constant [11 x i8] c" br i1 %c\00"
|
|
@.str2131 = private unnamed_addr constant [13 x i8] c", label %hit\00"
|
|
@.str2132 = private unnamed_addr constant [14 x i8] c", label %next\00"
|
|
@.str2133 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2134 = private unnamed_addr constant [4 x i8] c"hit\00"
|
|
@.str2135 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00"
|
|
@.str2136 = private unnamed_addr constant [23 x i8] c"(i32 %i, i32 %reason)\0A\00"
|
|
@.str2137 = private unnamed_addr constant [7 x i8] c"model_\00"
|
|
@.str2138 = private unnamed_addr constant [9 x i8] c"_despawn\00"
|
|
@.str2139 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str2140 = private unnamed_addr constant [23 x i8] c"(i32 %i, i32 %reason)\0A\00"
|
|
@.str2141 = private unnamed_addr constant [17 x i8] c" br label %next\00"
|
|
@.str2142 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2143 = private unnamed_addr constant [5 x i8] c"next\00"
|
|
@.str2144 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2145 = private unnamed_addr constant [18 x i8] c" br label %cont\0A\00"
|
|
@.str2146 = private unnamed_addr constant [46 x i8] c"cont:\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00"
|
|
@.str2147 = private unnamed_addr constant [20 x i8] c"fin:\0A ret void\0A}\0A\0A\00"
|
|
@.str2148 = private unnamed_addr constant [26 x i8] c"@ev_depth = global i32 0\0A\00"
|
|
@.str2149 = private unnamed_addr constant [5 x i8] c"%Ev_\00"
|
|
@.str2150 = private unnamed_addr constant [11 x i8] c" = type { \00"
|
|
@.str2151 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2152 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2153 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str2154 = private unnamed_addr constant [4 x i8] c" }\0A\00"
|
|
@.str2155 = private unnamed_addr constant [6 x i8] c"@evL_\00"
|
|
@.str2156 = private unnamed_addr constant [12 x i8] c" = global [\00"
|
|
@.str2157 = private unnamed_addr constant [25 x i8] c" x ptr] zeroinitializer\0A\00"
|
|
@.str2158 = private unnamed_addr constant [6 x i8] c"@evN_\00"
|
|
@.str2159 = private unnamed_addr constant [17 x i8] c" = global i32 0\0A\00"
|
|
@.str2160 = private unnamed_addr constant [6 x i8] c"@evO_\00"
|
|
@.str2161 = private unnamed_addr constant [12 x i8] c" = global [\00"
|
|
@.str2162 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00"
|
|
@.str2163 = private unnamed_addr constant [22 x i8] c"define i32 @ludic_on_\00"
|
|
@.str2164 = private unnamed_addr constant [20 x i8] c"(ptr %cb) {\0Aentry:\0A\00"
|
|
@.str2165 = private unnamed_addr constant [27 x i8] c" %n = load i32, ptr @evN_\00"
|
|
@.str2166 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2167 = private unnamed_addr constant [28 x i8] c" %full = icmp slt i32 %n, \00"
|
|
@.str2168 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2169 = private unnamed_addr constant [40 x i8] c" br i1 %full, label %add, label %drop\0A\00"
|
|
@.str2170 = private unnamed_addr constant [40 x i8] c"add:\0A %slot = getelementptr inbounds [\00"
|
|
@.str2171 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00"
|
|
@.str2172 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00"
|
|
@.str2173 = private unnamed_addr constant [28 x i8] c" store ptr %cb, ptr %slot\0A\00"
|
|
@.str2174 = private unnamed_addr constant [36 x i8] c" %oslot = getelementptr inbounds [\00"
|
|
@.str2175 = private unnamed_addr constant [19 x i8] c" x i32], ptr @evO_\00"
|
|
@.str2176 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00"
|
|
@.str2177 = private unnamed_addr constant [28 x i8] c" store i32 -1, ptr %oslot\0A\00"
|
|
@.str2178 = private unnamed_addr constant [49 x i8] c" %n1 = add i32 %n, 1\0A store i32 %n1, ptr @evN_\00"
|
|
@.str2179 = private unnamed_addr constant [15 x i8] c"\0A ret i32 %n\0A\00"
|
|
@.str2180 = private unnamed_addr constant [23 x i8] c"drop:\0A ret i32 -1\0A}\0A\0A\00"
|
|
@.str2181 = private unnamed_addr constant [29 x i8] c"define i32 @ludic_on_entity_\00"
|
|
@.str2182 = private unnamed_addr constant [32 x i8] c"(i32 %owner, ptr %cb) {\0Aentry:\0A\00"
|
|
@.str2183 = private unnamed_addr constant [27 x i8] c" %n = load i32, ptr @evN_\00"
|
|
@.str2184 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2185 = private unnamed_addr constant [28 x i8] c" %full = icmp slt i32 %n, \00"
|
|
@.str2186 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2187 = private unnamed_addr constant [40 x i8] c" br i1 %full, label %add, label %drop\0A\00"
|
|
@.str2188 = private unnamed_addr constant [40 x i8] c"add:\0A %slot = getelementptr inbounds [\00"
|
|
@.str2189 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00"
|
|
@.str2190 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00"
|
|
@.str2191 = private unnamed_addr constant [28 x i8] c" store ptr %cb, ptr %slot\0A\00"
|
|
@.str2192 = private unnamed_addr constant [36 x i8] c" %oslot = getelementptr inbounds [\00"
|
|
@.str2193 = private unnamed_addr constant [19 x i8] c" x i32], ptr @evO_\00"
|
|
@.str2194 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %n\0A\00"
|
|
@.str2195 = private unnamed_addr constant [32 x i8] c" store i32 %owner, ptr %oslot\0A\00"
|
|
@.str2196 = private unnamed_addr constant [49 x i8] c" %n1 = add i32 %n, 1\0A store i32 %n1, ptr @evN_\00"
|
|
@.str2197 = private unnamed_addr constant [15 x i8] c"\0A ret i32 %n\0A\00"
|
|
@.str2198 = private unnamed_addr constant [23 x i8] c"drop:\0A ret i32 -1\0A}\0A\0A\00"
|
|
@.str2199 = private unnamed_addr constant [24 x i8] c"define void @ludic_off_\00"
|
|
@.str2200 = private unnamed_addr constant [21 x i8] c"(i32 %tok) {\0Aentry:\0A\00"
|
|
@.str2201 = private unnamed_addr constant [27 x i8] c" %n = load i32, ptr @evN_\00"
|
|
@.str2202 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2203 = private unnamed_addr constant [84 x i8] c" %lo = icmp sge i32 %tok, 0\0A %hi = icmp slt i32 %tok, %n\0A %ok = and i1 %lo, %hi\0A\00"
|
|
@.str2204 = private unnamed_addr constant [37 x i8] c" br i1 %ok, label %do, label %skip\0A\00"
|
|
@.str2205 = private unnamed_addr constant [39 x i8] c"do:\0A %slot = getelementptr inbounds [\00"
|
|
@.str2206 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00"
|
|
@.str2207 = private unnamed_addr constant [19 x i8] c", i32 0, i32 %tok\0A\00"
|
|
@.str2208 = private unnamed_addr constant [46 x i8] c" store ptr null, ptr %slot\0A br label %skip\0A\00"
|
|
@.str2209 = private unnamed_addr constant [21 x i8] c"skip:\0A ret void\0A}\0A\0A\00"
|
|
@.str2210 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str2211 = private unnamed_addr constant [34 x i8] c" %evd = load i32, ptr @ev_depth\0A\00"
|
|
@.str2212 = private unnamed_addr constant [32 x i8] c" %evover = icmp sge i32 %evd, \00"
|
|
@.str2213 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2214 = private unnamed_addr constant [44 x i8] c" br i1 %evover, label %evcap, label %evgo\0A\00"
|
|
@.str2215 = private unnamed_addr constant [8 x i8] c"evcap:\0A\00"
|
|
@.str2216 = private unnamed_addr constant [13 x i8] c" ret i32 0\0A\00"
|
|
@.str2217 = private unnamed_addr constant [12 x i8] c" ret void\0A\00"
|
|
@.str2218 = private unnamed_addr constant [7 x i8] c"evgo:\0A\00"
|
|
@.str2219 = private unnamed_addr constant [60 x i8] c" %evd1 = add i32 %evd, 1\0A store i32 %evd1, ptr @ev_depth\0A\00"
|
|
@.str2220 = private unnamed_addr constant [5 x i8] c"%Ev_\00"
|
|
@.str2221 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2222 = private unnamed_addr constant [31 x i8] c" = getelementptr inbounds %Ev_\00"
|
|
@.str2223 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2224 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str2225 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2226 = private unnamed_addr constant [9 x i8] c" store \00"
|
|
@.str2227 = private unnamed_addr constant [4 x i8] c" %p\00"
|
|
@.str2228 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2229 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2230 = private unnamed_addr constant [9 x i8] c" store \00"
|
|
@.str2231 = private unnamed_addr constant [4 x i8] c" %p\00"
|
|
@.str2232 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2233 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2234 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2235 = private unnamed_addr constant [31 x i8] c" = getelementptr inbounds %Ev_\00"
|
|
@.str2236 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2237 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str2238 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2239 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00"
|
|
@.str2240 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2241 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str2242 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00"
|
|
@.str2243 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2244 = private unnamed_addr constant [4 x i8] c"evl\00"
|
|
@.str2245 = private unnamed_addr constant [4 x i8] c"evb\00"
|
|
@.str2246 = private unnamed_addr constant [4 x i8] c"evd\00"
|
|
@.str2247 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str2248 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2249 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2250 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str2251 = private unnamed_addr constant [20 x i8] c"load i32, ptr @evN_\00"
|
|
@.str2252 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00"
|
|
@.str2253 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2254 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str2255 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2256 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2257 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2258 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2259 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2260 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2261 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00"
|
|
@.str2262 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str2263 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2264 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00"
|
|
@.str2265 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00"
|
|
@.str2266 = private unnamed_addr constant [7 x i8] c", null\00"
|
|
@.str2267 = private unnamed_addr constant [5 x i8] c"evdo\00"
|
|
@.str2268 = private unnamed_addr constant [5 x i8] c"evsk\00"
|
|
@.str2269 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str2270 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2271 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2272 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2273 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2274 = private unnamed_addr constant [13 x i8] c" call void \00"
|
|
@.str2275 = private unnamed_addr constant [6 x i8] c"(ptr \00"
|
|
@.str2276 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2277 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str2278 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2279 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2280 = private unnamed_addr constant [9 x i8] c"add i32 \00"
|
|
@.str2281 = private unnamed_addr constant [4 x i8] c", 1\00"
|
|
@.str2282 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str2283 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2284 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2285 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str2286 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2287 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2288 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00"
|
|
@.str2289 = private unnamed_addr constant [6 x i8] c"ret:\0A\00"
|
|
@.str2290 = private unnamed_addr constant [97 x i8] c" %evdd = load i32, ptr @ev_depth\0A %evdd1 = sub i32 %evdd, 1\0A store i32 %evdd1, ptr @ev_depth\0A\00"
|
|
@.str2291 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00"
|
|
@.str2292 = private unnamed_addr constant [11 x i8] c" ret i32 \00"
|
|
@.str2293 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2294 = private unnamed_addr constant [12 x i8] c" ret void\0A\00"
|
|
@.str2295 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str2296 = private unnamed_addr constant [4 x i8] c"i32\00"
|
|
@.str2297 = private unnamed_addr constant [8 x i8] c"define \00"
|
|
@.str2298 = private unnamed_addr constant [6 x i8] c" @ev_\00"
|
|
@.str2299 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str2300 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2301 = private unnamed_addr constant [4 x i8] c" %p\00"
|
|
@.str2302 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00"
|
|
@.str2303 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00"
|
|
@.str2304 = private unnamed_addr constant [112 x i8] c"define void @ludic_sweep_entity(i32 %owner) {\0Aentry:\0A %ci = alloca i32\0A store i32 0, ptr %ci\0A br label %sw0\0A\00"
|
|
@.str2305 = private unnamed_addr constant [3 x i8] c"sw\00"
|
|
@.str2306 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2307 = private unnamed_addr constant [7 x i8] c" %swi\00"
|
|
@.str2308 = private unnamed_addr constant [22 x i8] c" = load i32, ptr %ci\0A\00"
|
|
@.str2309 = private unnamed_addr constant [7 x i8] c" %swn\00"
|
|
@.str2310 = private unnamed_addr constant [23 x i8] c" = load i32, ptr @evN_\00"
|
|
@.str2311 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2312 = private unnamed_addr constant [7 x i8] c" %swg\00"
|
|
@.str2313 = private unnamed_addr constant [21 x i8] c" = icmp slt i32 %swi\00"
|
|
@.str2314 = private unnamed_addr constant [7 x i8] c", %swn\00"
|
|
@.str2315 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2316 = private unnamed_addr constant [13 x i8] c" br i1 %swg\00"
|
|
@.str2317 = private unnamed_addr constant [13 x i8] c", label %swb\00"
|
|
@.str2318 = private unnamed_addr constant [13 x i8] c", label %swd\00"
|
|
@.str2319 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2320 = private unnamed_addr constant [4 x i8] c"swb\00"
|
|
@.str2321 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2322 = private unnamed_addr constant [8 x i8] c" %swop\00"
|
|
@.str2323 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2324 = private unnamed_addr constant [19 x i8] c" x i32], ptr @evO_\00"
|
|
@.str2325 = private unnamed_addr constant [18 x i8] c", i32 0, i32 %swi\00"
|
|
@.str2326 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2327 = private unnamed_addr constant [8 x i8] c" %swov\00"
|
|
@.str2328 = private unnamed_addr constant [23 x i8] c" = load i32, ptr %swop\00"
|
|
@.str2329 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2330 = private unnamed_addr constant [7 x i8] c" %swm\00"
|
|
@.str2331 = private unnamed_addr constant [21 x i8] c" = icmp eq i32 %swov\00"
|
|
@.str2332 = private unnamed_addr constant [10 x i8] c", %owner\0A\00"
|
|
@.str2333 = private unnamed_addr constant [13 x i8] c" br i1 %swm\00"
|
|
@.str2334 = private unnamed_addr constant [13 x i8] c", label %swh\00"
|
|
@.str2335 = private unnamed_addr constant [13 x i8] c", label %swx\00"
|
|
@.str2336 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2337 = private unnamed_addr constant [4 x i8] c"swh\00"
|
|
@.str2338 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2339 = private unnamed_addr constant [8 x i8] c" %swlp\00"
|
|
@.str2340 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2341 = private unnamed_addr constant [19 x i8] c" x ptr], ptr @evL_\00"
|
|
@.str2342 = private unnamed_addr constant [18 x i8] c", i32 0, i32 %swi\00"
|
|
@.str2343 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2344 = private unnamed_addr constant [28 x i8] c" store ptr null, ptr %swlp\00"
|
|
@.str2345 = private unnamed_addr constant [17 x i8] c"\0A br label %swx\00"
|
|
@.str2346 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2347 = private unnamed_addr constant [4 x i8] c"swx\00"
|
|
@.str2348 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2349 = private unnamed_addr constant [8 x i8] c" %swi1\00"
|
|
@.str2350 = private unnamed_addr constant [16 x i8] c" = add i32 %swi\00"
|
|
@.str2351 = private unnamed_addr constant [22 x i8] c", 1\0A store i32 %swi1\00"
|
|
@.str2352 = private unnamed_addr constant [25 x i8] c", ptr %ci\0A br label %sw\00"
|
|
@.str2353 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2354 = private unnamed_addr constant [4 x i8] c"swd\00"
|
|
@.str2355 = private unnamed_addr constant [26 x i8] c":\0A store i32 0, ptr %ci\0A\00"
|
|
@.str2356 = private unnamed_addr constant [15 x i8] c" br label %sw\00"
|
|
@.str2357 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2358 = private unnamed_addr constant [12 x i8] c" ret void\0A\00"
|
|
@.str2359 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00"
|
|
@.str2360 = private unnamed_addr constant [31 x i8] c"declare i32 @strcmp(ptr, ptr)\0A\00"
|
|
@.str2361 = private unnamed_addr constant [27 x i8] c"@dyn_count = global i32 0\0A\00"
|
|
@.str2362 = private unnamed_addr constant [43 x i8] c"@dynS = global [32 x ptr] zeroinitializer\0A\00"
|
|
@.str2363 = private unnamed_addr constant [43 x i8] c"@dynH = global [32 x ptr] zeroinitializer\0A\00"
|
|
@.str2364 = private unnamed_addr constant [43 x i8] c"@dynF = global [32 x i32] zeroinitializer\0A\00"
|
|
@.str2365 = private unnamed_addr constant [46 x i8] c"@dynName = global [32 x ptr] zeroinitializer\0A\00"
|
|
@.str2366 = private unnamed_addr constant [47 x i8] c"define i32 @ludic_prop_id(ptr %name) {\0Aentry:\0A\00"
|
|
@.str2367 = private unnamed_addr constant [5 x i8] c" %c\00"
|
|
@.str2368 = private unnamed_addr constant [36 x i8] c" = call i32 @strcmp(ptr %name, ptr \00"
|
|
@.str2369 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2370 = private unnamed_addr constant [5 x i8] c" %e\00"
|
|
@.str2371 = private unnamed_addr constant [18 x i8] c" = icmp eq i32 %c\00"
|
|
@.str2372 = private unnamed_addr constant [5 x i8] c", 0\0A\00"
|
|
@.str2373 = private unnamed_addr constant [11 x i8] c" br i1 %e\00"
|
|
@.str2374 = private unnamed_addr constant [11 x i8] c", label %h\00"
|
|
@.str2375 = private unnamed_addr constant [11 x i8] c", label %n\00"
|
|
@.str2376 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2377 = private unnamed_addr constant [2 x i8] c"h\00"
|
|
@.str2378 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00"
|
|
@.str2379 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2380 = private unnamed_addr constant [2 x i8] c"n\00"
|
|
@.str2381 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2382 = private unnamed_addr constant [61 x i8] c" %dpi = alloca i32\0A store i32 0, ptr %dpi\0A br label %dpl\0A\00"
|
|
@.str2383 = private unnamed_addr constant [135 x i8] c"dpl:\0A %di = load i32, ptr %dpi\0A %dn = load i32, ptr @dyn_count\0A %dg = icmp slt i32 %di, %dn\0A br i1 %dg, label %dpb, label %dpnone\0A\00"
|
|
@.str2384 = private unnamed_addr constant [231 x i8] c"dpb:\0A %dnp = getelementptr inbounds [32 x ptr], ptr @dynName, i32 0, i32 %di\0A %dname = load ptr, ptr %dnp\0A %dcmp = call i32 @strcmp(ptr %name, ptr %dname)\0A %deq = icmp eq i32 %dcmp, 0\0A br i1 %deq, label %dphit, label %dpnext\0A\00"
|
|
@.str2385 = private unnamed_addr constant [31 x i8] c"dphit:\0A %drid = add i32 %di, \00"
|
|
@.str2386 = private unnamed_addr constant [18 x i8] c"\0A ret i32 %drid\0A\00"
|
|
@.str2387 = private unnamed_addr constant [76 x i8] c"dpnext:\0A %di1 = add i32 %di, 1\0A store i32 %di1, ptr %dpi\0A br label %dpl\0A\00"
|
|
@.str2388 = private unnamed_addr constant [25 x i8] c"dpnone:\0A ret i32 -1\0A}\0A\0A\00"
|
|
@.str2389 = private unnamed_addr constant [56 x i8] c"define i32 @ludic_field_id(i32 %p, ptr %name) {\0Aentry:\0A\00"
|
|
@.str2390 = private unnamed_addr constant [6 x i8] c" %pm\00"
|
|
@.str2391 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00"
|
|
@.str2392 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2393 = private unnamed_addr constant [12 x i8] c" br i1 %pm\00"
|
|
@.str2394 = private unnamed_addr constant [12 x i8] c", label %pk\00"
|
|
@.str2395 = private unnamed_addr constant [12 x i8] c", label %pn\00"
|
|
@.str2396 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2397 = private unnamed_addr constant [3 x i8] c"pk\00"
|
|
@.str2398 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2399 = private unnamed_addr constant [2 x i8] c"_\00"
|
|
@.str2400 = private unnamed_addr constant [6 x i8] c" %fc\00"
|
|
@.str2401 = private unnamed_addr constant [36 x i8] c" = call i32 @strcmp(ptr %name, ptr \00"
|
|
@.str2402 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2403 = private unnamed_addr constant [6 x i8] c" %fe\00"
|
|
@.str2404 = private unnamed_addr constant [19 x i8] c" = icmp eq i32 %fc\00"
|
|
@.str2405 = private unnamed_addr constant [5 x i8] c", 0\0A\00"
|
|
@.str2406 = private unnamed_addr constant [12 x i8] c" br i1 %fe\00"
|
|
@.str2407 = private unnamed_addr constant [12 x i8] c", label %fh\00"
|
|
@.str2408 = private unnamed_addr constant [12 x i8] c", label %fn\00"
|
|
@.str2409 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2410 = private unnamed_addr constant [3 x i8] c"fh\00"
|
|
@.str2411 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00"
|
|
@.str2412 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2413 = private unnamed_addr constant [3 x i8] c"fn\00"
|
|
@.str2414 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2415 = private unnamed_addr constant [14 x i8] c" ret i32 -1\0A\00"
|
|
@.str2416 = private unnamed_addr constant [3 x i8] c"pn\00"
|
|
@.str2417 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2418 = private unnamed_addr constant [17 x i8] c" ret i32 -1\0A}\0A\0A\00"
|
|
@.str2419 = private unnamed_addr constant [56 x i8] c"define i64 @ludic_get(i32 %e, i32 %p, i32 %f) {\0Aentry:\0A\00"
|
|
@.str2420 = private unnamed_addr constant [5 x i8] c" %m\00"
|
|
@.str2421 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00"
|
|
@.str2422 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2423 = private unnamed_addr constant [11 x i8] c" br i1 %m\00"
|
|
@.str2424 = private unnamed_addr constant [11 x i8] c", label %g\00"
|
|
@.str2425 = private unnamed_addr constant [12 x i8] c", label %gn\00"
|
|
@.str2426 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2427 = private unnamed_addr constant [2 x i8] c"g\00"
|
|
@.str2428 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2429 = private unnamed_addr constant [5 x i8] c" %s\00"
|
|
@.str2430 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2431 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str2432 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00"
|
|
@.str2433 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00"
|
|
@.str2434 = private unnamed_addr constant [2 x i8] c"_\00"
|
|
@.str2435 = private unnamed_addr constant [6 x i8] c" %gm\00"
|
|
@.str2436 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00"
|
|
@.str2437 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2438 = private unnamed_addr constant [12 x i8] c" br i1 %gm\00"
|
|
@.str2439 = private unnamed_addr constant [12 x i8] c", label %gf\00"
|
|
@.str2440 = private unnamed_addr constant [12 x i8] c", label %gk\00"
|
|
@.str2441 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2442 = private unnamed_addr constant [3 x i8] c"gf\00"
|
|
@.str2443 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2444 = private unnamed_addr constant [6 x i8] c" %ga\00"
|
|
@.str2445 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00"
|
|
@.str2446 = private unnamed_addr constant [9 x i8] c", ptr %s\00"
|
|
@.str2447 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str2448 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2449 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str2450 = private unnamed_addr constant [6 x i8] c" %gl\00"
|
|
@.str2451 = private unnamed_addr constant [21 x i8] c" = load ptr, ptr %ga\00"
|
|
@.str2452 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2453 = private unnamed_addr constant [6 x i8] c" %gr\00"
|
|
@.str2454 = private unnamed_addr constant [20 x i8] c" = ptrtoint ptr %gl\00"
|
|
@.str2455 = private unnamed_addr constant [22 x i8] c" to i64\0A ret i64 %gr\00"
|
|
@.str2456 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2457 = private unnamed_addr constant [3 x i8] c"i8\00"
|
|
@.str2458 = private unnamed_addr constant [6 x i8] c" %gl\00"
|
|
@.str2459 = private unnamed_addr constant [20 x i8] c" = load i8, ptr %ga\00"
|
|
@.str2460 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2461 = private unnamed_addr constant [6 x i8] c" %gr\00"
|
|
@.str2462 = private unnamed_addr constant [15 x i8] c" = zext i8 %gl\00"
|
|
@.str2463 = private unnamed_addr constant [22 x i8] c" to i64\0A ret i64 %gr\00"
|
|
@.str2464 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2465 = private unnamed_addr constant [6 x i8] c" %gl\00"
|
|
@.str2466 = private unnamed_addr constant [21 x i8] c" = load i32, ptr %ga\00"
|
|
@.str2467 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2468 = private unnamed_addr constant [6 x i8] c" %gr\00"
|
|
@.str2469 = private unnamed_addr constant [16 x i8] c" = sext i32 %gl\00"
|
|
@.str2470 = private unnamed_addr constant [22 x i8] c" to i64\0A ret i64 %gr\00"
|
|
@.str2471 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2472 = private unnamed_addr constant [3 x i8] c"gk\00"
|
|
@.str2473 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2474 = private unnamed_addr constant [13 x i8] c" ret i64 0\0A\00"
|
|
@.str2475 = private unnamed_addr constant [3 x i8] c"gn\00"
|
|
@.str2476 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2477 = private unnamed_addr constant [23 x i8] c" %gdyn = sub i32 %p, \00"
|
|
@.str2478 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2479 = private unnamed_addr constant [175 x i8] c" %gdlo = icmp sge i32 %gdyn, 0\0A %gdc = load i32, ptr @dyn_count\0A %gdhi = icmp slt i32 %gdyn, %gdc\0A %gdok = and i1 %gdlo, %gdhi\0A br i1 %gdok, label %gdyng, label %gdnone\0A\00"
|
|
@.str2480 = private unnamed_addr constant [110 x i8] c"gdyng:\0A %gsp = getelementptr inbounds [32 x ptr], ptr @dynS, i32 0, i32 %gdyn\0A %gbase = load ptr, ptr %gsp\0A\00"
|
|
@.str2481 = private unnamed_addr constant [156 x i8] c" %gfp = getelementptr inbounds [32 x i32], ptr @dynF, i32 0, i32 %gdyn\0A %gnf = load i32, ptr %gfp\0A %grow = mul i32 %e, %gnf\0A %gidx = add i32 %grow, %f\0A\00"
|
|
@.str2482 = private unnamed_addr constant [133 x i8] c" %gaddr = getelementptr inbounds i32, ptr %gbase, i32 %gidx\0A %gv = load i32, ptr %gaddr\0A %gr = sext i32 %gv to i64\0A ret i64 %gr\0A\00"
|
|
@.str2483 = private unnamed_addr constant [24 x i8] c"gdnone:\0A ret i64 0\0A}\0A\0A\00"
|
|
@.str2484 = private unnamed_addr constant [67 x i8] c"define void @ludic_set(i32 %e, i32 %p, i32 %f, i64 %val) {\0Aentry:\0A\00"
|
|
@.str2485 = private unnamed_addr constant [5 x i8] c" %m\00"
|
|
@.str2486 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00"
|
|
@.str2487 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2488 = private unnamed_addr constant [11 x i8] c" br i1 %m\00"
|
|
@.str2489 = private unnamed_addr constant [11 x i8] c", label %g\00"
|
|
@.str2490 = private unnamed_addr constant [12 x i8] c", label %gn\00"
|
|
@.str2491 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2492 = private unnamed_addr constant [2 x i8] c"g\00"
|
|
@.str2493 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2494 = private unnamed_addr constant [5 x i8] c" %s\00"
|
|
@.str2495 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2496 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str2497 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00"
|
|
@.str2498 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00"
|
|
@.str2499 = private unnamed_addr constant [2 x i8] c"_\00"
|
|
@.str2500 = private unnamed_addr constant [6 x i8] c" %sm\00"
|
|
@.str2501 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %f, \00"
|
|
@.str2502 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2503 = private unnamed_addr constant [12 x i8] c" br i1 %sm\00"
|
|
@.str2504 = private unnamed_addr constant [12 x i8] c", label %sf\00"
|
|
@.str2505 = private unnamed_addr constant [12 x i8] c", label %sk\00"
|
|
@.str2506 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2507 = private unnamed_addr constant [3 x i8] c"sf\00"
|
|
@.str2508 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2509 = private unnamed_addr constant [6 x i8] c" %sa\00"
|
|
@.str2510 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00"
|
|
@.str2511 = private unnamed_addr constant [9 x i8] c", ptr %s\00"
|
|
@.str2512 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str2513 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2514 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str2515 = private unnamed_addr constant [6 x i8] c" %sp\00"
|
|
@.str2516 = private unnamed_addr constant [29 x i8] c" = inttoptr i64 %val to ptr\0A\00"
|
|
@.str2517 = private unnamed_addr constant [16 x i8] c" store ptr %sp\00"
|
|
@.str2518 = private unnamed_addr constant [10 x i8] c", ptr %sa\00"
|
|
@.str2519 = private unnamed_addr constant [13 x i8] c"\0A ret void\0A\00"
|
|
@.str2520 = private unnamed_addr constant [3 x i8] c"i8\00"
|
|
@.str2521 = private unnamed_addr constant [6 x i8] c" %sb\00"
|
|
@.str2522 = private unnamed_addr constant [25 x i8] c" = trunc i64 %val to i8\0A\00"
|
|
@.str2523 = private unnamed_addr constant [15 x i8] c" store i8 %sb\00"
|
|
@.str2524 = private unnamed_addr constant [10 x i8] c", ptr %sa\00"
|
|
@.str2525 = private unnamed_addr constant [13 x i8] c"\0A ret void\0A\00"
|
|
@.str2526 = private unnamed_addr constant [6 x i8] c" %sw\00"
|
|
@.str2527 = private unnamed_addr constant [26 x i8] c" = trunc i64 %val to i32\0A\00"
|
|
@.str2528 = private unnamed_addr constant [16 x i8] c" store i32 %sw\00"
|
|
@.str2529 = private unnamed_addr constant [10 x i8] c", ptr %sa\00"
|
|
@.str2530 = private unnamed_addr constant [13 x i8] c"\0A ret void\0A\00"
|
|
@.str2531 = private unnamed_addr constant [3 x i8] c"sk\00"
|
|
@.str2532 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2533 = private unnamed_addr constant [12 x i8] c" ret void\0A\00"
|
|
@.str2534 = private unnamed_addr constant [3 x i8] c"gn\00"
|
|
@.str2535 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2536 = private unnamed_addr constant [23 x i8] c" %sdyn = sub i32 %p, \00"
|
|
@.str2537 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2538 = private unnamed_addr constant [175 x i8] c" %sdlo = icmp sge i32 %sdyn, 0\0A %sdc = load i32, ptr @dyn_count\0A %sdhi = icmp slt i32 %sdyn, %sdc\0A %sdok = and i1 %sdlo, %sdhi\0A br i1 %sdok, label %sdyng, label %sdnone\0A\00"
|
|
@.str2539 = private unnamed_addr constant [110 x i8] c"sdyng:\0A %ssp = getelementptr inbounds [32 x ptr], ptr @dynS, i32 0, i32 %sdyn\0A %sbase = load ptr, ptr %ssp\0A\00"
|
|
@.str2540 = private unnamed_addr constant [156 x i8] c" %sfp = getelementptr inbounds [32 x i32], ptr @dynF, i32 0, i32 %sdyn\0A %snf = load i32, ptr %sfp\0A %srow = mul i32 %e, %snf\0A %sidx = add i32 %srow, %f\0A\00"
|
|
@.str2541 = private unnamed_addr constant [131 x i8] c" %saddr = getelementptr inbounds i32, ptr %sbase, i32 %sidx\0A %sv = trunc i64 %val to i32\0A store i32 %sv, ptr %saddr\0A ret void\0A\00"
|
|
@.str2542 = private unnamed_addr constant [23 x i8] c"sdnone:\0A ret void\0A}\0A\0A\00"
|
|
@.str2543 = private unnamed_addr constant [48 x i8] c"define i32 @ludic_has(i32 %e, i32 %p) {\0Aentry:\0A\00"
|
|
@.str2544 = private unnamed_addr constant [5 x i8] c" %m\00"
|
|
@.str2545 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %p, \00"
|
|
@.str2546 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2547 = private unnamed_addr constant [11 x i8] c" br i1 %m\00"
|
|
@.str2548 = private unnamed_addr constant [11 x i8] c", label %g\00"
|
|
@.str2549 = private unnamed_addr constant [12 x i8] c", label %gn\00"
|
|
@.str2550 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2551 = private unnamed_addr constant [2 x i8] c"g\00"
|
|
@.str2552 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2553 = private unnamed_addr constant [6 x i8] c" %hp\00"
|
|
@.str2554 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2555 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00"
|
|
@.str2556 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00"
|
|
@.str2557 = private unnamed_addr constant [6 x i8] c" %hv\00"
|
|
@.str2558 = private unnamed_addr constant [20 x i8] c" = load i8, ptr %hp\00"
|
|
@.str2559 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2560 = private unnamed_addr constant [6 x i8] c" %hr\00"
|
|
@.str2561 = private unnamed_addr constant [15 x i8] c" = zext i8 %hv\00"
|
|
@.str2562 = private unnamed_addr constant [22 x i8] c" to i32\0A ret i32 %hr\00"
|
|
@.str2563 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2564 = private unnamed_addr constant [3 x i8] c"gn\00"
|
|
@.str2565 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2566 = private unnamed_addr constant [23 x i8] c" %hdyn = sub i32 %p, \00"
|
|
@.str2567 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2568 = private unnamed_addr constant [175 x i8] c" %hdlo = icmp sge i32 %hdyn, 0\0A %hdc = load i32, ptr @dyn_count\0A %hdhi = icmp slt i32 %hdyn, %hdc\0A %hdok = and i1 %hdlo, %hdhi\0A br i1 %hdok, label %hdyng, label %hdnone\0A\00"
|
|
@.str2569 = private unnamed_addr constant [238 x i8] c"hdyng:\0A %hhp = getelementptr inbounds [32 x ptr], ptr @dynH, i32 0, i32 %hdyn\0A %hh = load ptr, ptr %hhp\0A %hslot = getelementptr inbounds i8, ptr %hh, i32 %e\0A %hval = load i8, ptr %hslot\0A %hres = zext i8 %hval to i32\0A ret i32 %hres\0A\00"
|
|
@.str2570 = private unnamed_addr constant [24 x i8] c"hdnone:\0A ret i32 0\0A}\0A\0A\00"
|
|
@.str2571 = private unnamed_addr constant [67 x i8] c"define i32 @ludic_register_prop(ptr %name, i32 %nfields) {\0Aentry:\0A\00"
|
|
@.str2572 = private unnamed_addr constant [102 x i8] c" %dc = load i32, ptr @dyn_count\0A %full = icmp slt i32 %dc, 32\0A br i1 %full, label %do, label %rej\0A\00"
|
|
@.str2573 = private unnamed_addr constant [56 x i8] c"do:\0A %nf4 = mul i32 %nfields, 4\0A %sz = mul i32 %nf4, \00"
|
|
@.str2574 = private unnamed_addr constant [31 x i8] c"\0A %szl = sext i32 %sz to i64\0A\00"
|
|
@.str2575 = private unnamed_addr constant [83 x i8] c" %buf = call ptr @malloc(i64 %szl)\0A call ptr @memset(ptr %buf, i32 0, i64 %szl)\0A\00"
|
|
@.str2576 = private unnamed_addr constant [96 x i8] c" %sp = getelementptr inbounds [32 x ptr], ptr @dynS, i32 0, i32 %dc\0A store ptr %buf, ptr %sp\0A\00"
|
|
@.str2577 = private unnamed_addr constant [32 x i8] c" %hbuf = call ptr @malloc(i64 \00"
|
|
@.str2578 = private unnamed_addr constant [44 x i8] c")\0A call ptr @memset(ptr %hbuf, i32 0, i64 \00"
|
|
@.str2579 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2580 = private unnamed_addr constant [97 x i8] c" %hp = getelementptr inbounds [32 x ptr], ptr @dynH, i32 0, i32 %dc\0A store ptr %hbuf, ptr %hp\0A\00"
|
|
@.str2581 = private unnamed_addr constant [100 x i8] c" %fp = getelementptr inbounds [32 x i32], ptr @dynF, i32 0, i32 %dc\0A store i32 %nfields, ptr %fp\0A\00"
|
|
@.str2582 = private unnamed_addr constant [100 x i8] c" %np = getelementptr inbounds [32 x ptr], ptr @dynName, i32 0, i32 %dc\0A store ptr %name, ptr %np\0A\00"
|
|
@.str2583 = private unnamed_addr constant [22 x i8] c" %id = add i32 %dc, \00"
|
|
@.str2584 = private unnamed_addr constant [73 x i8] c"\0A %dc1 = add i32 %dc, 1\0A store i32 %dc1, ptr @dyn_count\0A ret i32 %id\0A\00"
|
|
@.str2585 = private unnamed_addr constant [22 x i8] c"rej:\0A ret i32 -1\0A}\0A\0A\00"
|
|
@.str2586 = private unnamed_addr constant [56 x i8] c"define void @ludic_attach_dyn(i32 %e, i32 %p) {\0Aentry:\0A\00"
|
|
@.str2587 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %p, \00"
|
|
@.str2588 = private unnamed_addr constant [187 x i8] c"\0A %hp = getelementptr inbounds [32 x ptr], ptr @dynH, i32 0, i32 %dyn\0A %h = load ptr, ptr %hp\0A %slot = getelementptr inbounds i8, ptr %h, i32 %e\0A store i8 1, ptr %slot\0A ret void\0A}\0A\0A\00"
|
|
@.str2589 = private unnamed_addr constant [56 x i8] c"define void @ludic_detach_dyn(i32 %e, i32 %p) {\0Aentry:\0A\00"
|
|
@.str2590 = private unnamed_addr constant [22 x i8] c" %dyn = sub i32 %p, \00"
|
|
@.str2591 = private unnamed_addr constant [187 x i8] c"\0A %hp = getelementptr inbounds [32 x ptr], ptr @dynH, i32 0, i32 %dyn\0A %h = load ptr, ptr %hp\0A %slot = getelementptr inbounds i8, ptr %h, i32 %e\0A store i8 0, ptr %slot\0A ret void\0A}\0A\0A\00"
|
|
@.str2592 = private unnamed_addr constant [88 x i8] c"define i32 @ludic_entity_count() {\0Aentry:\0A %n = load i32, ptr @L_entc\0A ret i32 %n\0A}\0A\0A\00"
|
|
@.str2593 = private unnamed_addr constant [41 x i8] c"define i32 @ludic_kind(i32 %e) {\0Aentry:\0A\00"
|
|
@.str2594 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00"
|
|
@.str2595 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00"
|
|
@.str2596 = private unnamed_addr constant [42 x i8] c" %k = load i32, ptr %kp\0A ret i32 %k\0A}\0A\0A\00"
|
|
@.str2597 = private unnamed_addr constant [48 x i8] c"define i32 @ludic_model_id(ptr %name) {\0Aentry:\0A\00"
|
|
@.str2598 = private unnamed_addr constant [7 x i8] c" %mdc\00"
|
|
@.str2599 = private unnamed_addr constant [36 x i8] c" = call i32 @strcmp(ptr %name, ptr \00"
|
|
@.str2600 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2601 = private unnamed_addr constant [7 x i8] c" %mde\00"
|
|
@.str2602 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %mdc\00"
|
|
@.str2603 = private unnamed_addr constant [5 x i8] c", 0\0A\00"
|
|
@.str2604 = private unnamed_addr constant [13 x i8] c" br i1 %mde\00"
|
|
@.str2605 = private unnamed_addr constant [13 x i8] c", label %mdh\00"
|
|
@.str2606 = private unnamed_addr constant [13 x i8] c", label %mdn\00"
|
|
@.str2607 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2608 = private unnamed_addr constant [4 x i8] c"mdh\00"
|
|
@.str2609 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00"
|
|
@.str2610 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2611 = private unnamed_addr constant [4 x i8] c"mdn\00"
|
|
@.str2612 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2613 = private unnamed_addr constant [17 x i8] c" ret i32 -1\0A}\0A\0A\00"
|
|
@.str2614 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str2615 = private unnamed_addr constant [11 x i8] c" ret i32 \00"
|
|
@.str2616 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2617 = private unnamed_addr constant [25 x i8] c"define i32 @ludic_spawn_\00"
|
|
@.str2618 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00"
|
|
@.str2619 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00"
|
|
@.str2620 = private unnamed_addr constant [42 x i8] c"define i32 @ludic_spawn(i32 %m) {\0Aentry:\0A\00"
|
|
@.str2621 = private unnamed_addr constant [6 x i8] c" %sm\00"
|
|
@.str2622 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %m, \00"
|
|
@.str2623 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2624 = private unnamed_addr constant [12 x i8] c" br i1 %sm\00"
|
|
@.str2625 = private unnamed_addr constant [12 x i8] c", label %sh\00"
|
|
@.str2626 = private unnamed_addr constant [12 x i8] c", label %sn\00"
|
|
@.str2627 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2628 = private unnamed_addr constant [3 x i8] c"sh\00"
|
|
@.str2629 = private unnamed_addr constant [8 x i8] c":\0A %sr\00"
|
|
@.str2630 = private unnamed_addr constant [26 x i8] c" = call i32 @ludic_spawn_\00"
|
|
@.str2631 = private unnamed_addr constant [17 x i8] c"()\0A ret i32 %sr\00"
|
|
@.str2632 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2633 = private unnamed_addr constant [3 x i8] c"sn\00"
|
|
@.str2634 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2635 = private unnamed_addr constant [17 x i8] c" ret i32 -1\0A}\0A\0A\00"
|
|
@.str2636 = private unnamed_addr constant [58 x i8] c"define i32 @ludic_query_next(i32 %p, i32 %from) {\0Aentry:\0A\00"
|
|
@.str2637 = private unnamed_addr constant [47 x i8] c" %n = load i32, ptr @L_entc\0A br label %loop\0A\00"
|
|
@.str2638 = private unnamed_addr constant [56 x i8] c"loop:\0A %e = phi i32 [ %from, %entry ], [ %e1, %cont ]\0A\00"
|
|
@.str2639 = private unnamed_addr constant [67 x i8] c" %go = icmp slt i32 %e, %n\0A br i1 %go, label %body, label %none\0A\00"
|
|
@.str2640 = private unnamed_addr constant [39 x i8] c"body:\0A %ap = getelementptr inbounds [\00"
|
|
@.str2641 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00"
|
|
@.str2642 = private unnamed_addr constant [93 x i8] c" %al = load i32, ptr %ap\0A %isa = icmp ne i32 %al, 0\0A br i1 %isa, label %chk, label %cont\0A\00"
|
|
@.str2643 = private unnamed_addr constant [115 x i8] c"chk:\0A %h = call i32 @ludic_has(i32 %e, i32 %p)\0A %hit = icmp ne i32 %h, 0\0A br i1 %hit, label %hitb, label %cont\0A\00"
|
|
@.str2644 = private unnamed_addr constant [20 x i8] c"hitb:\0A ret i32 %e\0A\00"
|
|
@.str2645 = private unnamed_addr constant [46 x i8] c"cont:\0A %e1 = add i32 %e, 1\0A br label %loop\0A\00"
|
|
@.str2646 = private unnamed_addr constant [23 x i8] c"none:\0A ret i32 -1\0A}\0A\0A\00"
|
|
@.str2647 = private unnamed_addr constant [38 x i8] c"define void @L_tick_fixed() {\0Aentry:\0A\00"
|
|
@.str2648 = private unnamed_addr constant [6 x i8] c"Input\00"
|
|
@.str2649 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00"
|
|
@.str2650 = private unnamed_addr constant [7 x i8] c"Update\00"
|
|
@.str2651 = private unnamed_addr constant [11 x i8] c"LateUpdate\00"
|
|
@.str2652 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00"
|
|
@.str2653 = private unnamed_addr constant [39 x i8] c"define void @L_tick_render() {\0Aentry:\0A\00"
|
|
@.str2654 = private unnamed_addr constant [7 x i8] c"Render\00"
|
|
@.str2655 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00"
|
|
@.str2656 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00"
|
|
@.str2657 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00"
|
|
@.str2658 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00"
|
|
@.str2659 = private unnamed_addr constant [8 x i8] c"rt_init\00"
|
|
@.str2660 = private unnamed_addr constant [27 x i8] c" call void @fn_rt_init()\0A\00"
|
|
@.str2661 = private unnamed_addr constant [6 x i8] c"Start\00"
|
|
@.str2662 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str2663 = private unnamed_addr constant [16 x i8] c", ptr @L_scene\0A\00"
|
|
@.str2664 = private unnamed_addr constant [26 x i8] c" call void @scene_enter_\00"
|
|
@.str2665 = private unnamed_addr constant [4 x i8] c"()\0A\00"
|
|
@.str2666 = private unnamed_addr constant [14 x i8] c"program_start\00"
|
|
@.str2667 = private unnamed_addr constant [33 x i8] c" call void @ev_program_start()\0A\00"
|
|
@.str2668 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00"
|
|
@.str2669 = private unnamed_addr constant [7 x i8] c"loop:\0A\00"
|
|
@.str2670 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_running\00"
|
|
@.str2671 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str2672 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str2673 = private unnamed_addr constant [11 x i8] c"rt_running\00"
|
|
@.str2674 = private unnamed_addr constant [26 x i8] c"call i32 @fn_rt_running()\00"
|
|
@.str2675 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00"
|
|
@.str2676 = private unnamed_addr constant [4 x i8] c", 0\00"
|
|
@.str2677 = private unnamed_addr constant [8 x i8] c"and i1 \00"
|
|
@.str2678 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2679 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str2680 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00"
|
|
@.str2681 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str2682 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00"
|
|
@.str2683 = private unnamed_addr constant [7 x i8] c"body:\0A\00"
|
|
@.str2684 = private unnamed_addr constant [8 x i8] c"rt_poll\00"
|
|
@.str2685 = private unnamed_addr constant [23 x i8] c"call i32 @fn_rt_poll()\00"
|
|
@.str2686 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str2687 = private unnamed_addr constant [14 x i8] c", ptr @L_key\0A\00"
|
|
@.str2688 = private unnamed_addr constant [6 x i8] c"Input\00"
|
|
@.str2689 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00"
|
|
@.str2690 = private unnamed_addr constant [7 x i8] c"Update\00"
|
|
@.str2691 = private unnamed_addr constant [11 x i8] c"LateUpdate\00"
|
|
@.str2692 = private unnamed_addr constant [7 x i8] c"Render\00"
|
|
@.str2693 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00"
|
|
@.str2694 = private unnamed_addr constant [7 x i8] c"done:\0A\00"
|
|
@.str2695 = private unnamed_addr constant [35 x i8] c" call void @L_despawn_all(i32 2)\0A\00"
|
|
@.str2696 = private unnamed_addr constant [7 x i8] c"OnQuit\00"
|
|
@.str2697 = private unnamed_addr constant [13 x i8] c"program_quit\00"
|
|
@.str2698 = private unnamed_addr constant [32 x i8] c" call void @ev_program_quit()\0A\00"
|
|
@.str2699 = private unnamed_addr constant [12 x i8] c"rt_shutdown\00"
|
|
@.str2700 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_shutdown()\0A\00"
|
|
@.str2701 = private unnamed_addr constant [15 x i8] c" ret i32 0\0A}\0A\00"
|
|
@.str2702 = private unnamed_addr constant [1 x i8] c"\00"
|
|
@.str2703 = private unnamed_addr constant [18 x i8] c"load i32, ptr @g_\00"
|
|
@.str2704 = private unnamed_addr constant [25 x i8] c"call i32 @fn_rt_reg(i32 \00"
|
|
@.str2705 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str2706 = private unnamed_addr constant [6 x i8] c"smend\00"
|
|
@.str2707 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00"
|
|
@.str2708 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2709 = private unnamed_addr constant [6 x i8] c"sbody\00"
|
|
@.str2710 = private unnamed_addr constant [5 x i8] c"sarm\00"
|
|
@.str2711 = private unnamed_addr constant [9 x i8] c" br i1 \00"
|
|
@.str2712 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2713 = private unnamed_addr constant [10 x i8] c", label %\00"
|
|
@.str2714 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2715 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2716 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str2717 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2718 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2719 = private unnamed_addr constant [13 x i8] c" br label %\00"
|
|
@.str2720 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2721 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2722 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str2723 = private unnamed_addr constant [10 x i8] c", ptr @g_\00"
|
|
@.str2724 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2725 = private unnamed_addr constant [32 x i8] c" call void @fn_rt_set_reg(i32 \00"
|
|
@.str2726 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str2727 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2728 = private unnamed_addr constant [27 x i8] c"become: no state or scene \00"
|
|
@.str2729 = private unnamed_addr constant [25 x i8] c" call void @scene_exit_\00"
|
|
@.str2730 = private unnamed_addr constant [4 x i8] c"()\0A\00"
|
|
@.str2731 = private unnamed_addr constant [13 x i8] c" store i32 \00"
|
|
@.str2732 = private unnamed_addr constant [16 x i8] c", ptr @L_scene\0A\00"
|
|
@.str2733 = private unnamed_addr constant [26 x i8] c" call void @scene_enter_\00"
|
|
@.str2734 = private unnamed_addr constant [4 x i8] c"()\0A\00"
|
|
@.str2735 = private unnamed_addr constant [5 x i8] c"file\00"
|
|
@.str2736 = private unnamed_addr constant [4 x i8] c"%io\00"
|
|
@.str2737 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2738 = private unnamed_addr constant [14 x i8] c" = call i64 @\00"
|
|
@.str2739 = private unnamed_addr constant [6 x i8] c"(ptr \00"
|
|
@.str2740 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00"
|
|
@.str2741 = private unnamed_addr constant [11 x i8] c", ptr %f)\0A\00"
|
|
@.str2742 = private unnamed_addr constant [5 x i8] c"size\00"
|
|
@.str2743 = private unnamed_addr constant [6 x i8] c"%ioff\00"
|
|
@.str2744 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2745 = private unnamed_addr constant [12 x i8] c" = add i64 \00"
|
|
@.str2746 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2747 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2748 = private unnamed_addr constant [5 x i8] c"%ioa\00"
|
|
@.str2749 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2750 = private unnamed_addr constant [45 x i8] c" = getelementptr inbounds i8, ptr %buf, i64 \00"
|
|
@.str2751 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2752 = private unnamed_addr constant [5 x i8] c"save\00"
|
|
@.str2753 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00"
|
|
@.str2754 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2755 = private unnamed_addr constant [7 x i8] c", i64 \00"
|
|
@.str2756 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2757 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00"
|
|
@.str2758 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2759 = private unnamed_addr constant [7 x i8] c", i64 \00"
|
|
@.str2760 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2761 = private unnamed_addr constant [6 x i8] c"%ioff\00"
|
|
@.str2762 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2763 = private unnamed_addr constant [12 x i8] c" = add i64 \00"
|
|
@.str2764 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str2765 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2766 = private unnamed_addr constant [2 x i8] c"0\00"
|
|
@.str2767 = private unnamed_addr constant [8 x i8] c"@L_entc\00"
|
|
@.str2768 = private unnamed_addr constant [2 x i8] c"4\00"
|
|
@.str2769 = private unnamed_addr constant [9 x i8] c"@L_freen\00"
|
|
@.str2770 = private unnamed_addr constant [2 x i8] c"4\00"
|
|
@.str2771 = private unnamed_addr constant [21 x i8] c" %nalive = mul i64 \00"
|
|
@.str2772 = private unnamed_addr constant [5 x i8] c", 4\0A\00"
|
|
@.str2773 = private unnamed_addr constant [9 x i8] c"@L_alive\00"
|
|
@.str2774 = private unnamed_addr constant [8 x i8] c"%nalive\00"
|
|
@.str2775 = private unnamed_addr constant [12 x i8] c"@L_freelist\00"
|
|
@.str2776 = private unnamed_addr constant [8 x i8] c"%nalive\00"
|
|
@.str2777 = private unnamed_addr constant [8 x i8] c"@L_kind\00"
|
|
@.str2778 = private unnamed_addr constant [8 x i8] c"%nalive\00"
|
|
@.str2779 = private unnamed_addr constant [13 x i8] c"@L_owner_arr\00"
|
|
@.str2780 = private unnamed_addr constant [8 x i8] c"%nalive\00"
|
|
@.str2781 = private unnamed_addr constant [4 x i8] c"@g_\00"
|
|
@.str2782 = private unnamed_addr constant [2 x i8] c"4\00"
|
|
@.str2783 = private unnamed_addr constant [5 x i8] c"%csz\00"
|
|
@.str2784 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2785 = private unnamed_addr constant [37 x i8] c" = ptrtoint ptr getelementptr (%Cmp_\00"
|
|
@.str2786 = private unnamed_addr constant [17 x i8] c", ptr null, i32 \00"
|
|
@.str2787 = private unnamed_addr constant [10 x i8] c") to i64\0A\00"
|
|
@.str2788 = private unnamed_addr constant [4 x i8] c"@S_\00"
|
|
@.str2789 = private unnamed_addr constant [4 x i8] c"@H_\00"
|
|
@.str2790 = private unnamed_addr constant [5 x i8] c"file\00"
|
|
@.str2791 = private unnamed_addr constant [70 x i8] c"@.sav_path = private unnamed_addr constant [10 x i8] c\22ludic.sav\5C00\22\0A\00"
|
|
@.str2792 = private unnamed_addr constant [60 x i8] c"@.sav_wb = private unnamed_addr constant [3 x i8] c\22wb\5C00\22\0A\00"
|
|
@.str2793 = private unnamed_addr constant [60 x i8] c"@.sav_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00"
|
|
@.str2794 = private unnamed_addr constant [14 x i8] c"rt_save_state\00"
|
|
@.str2795 = private unnamed_addr constant [14 x i8] c"rt_load_state\00"
|
|
@.str2796 = private unnamed_addr constant [32 x i8] c"define void @L_save() {\0Aentry:\0A\00"
|
|
@.str2797 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_wb)\0A\00"
|
|
@.str2798 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00"
|
|
@.str2799 = private unnamed_addr constant [41 x i8] c" br i1 %bad, label %out, label %go\0Ago:\0A\00"
|
|
@.str2800 = private unnamed_addr constant [7 x i8] c"fwrite\00"
|
|
@.str2801 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_save_state(ptr %f)\0A\00"
|
|
@.str2802 = private unnamed_addr constant [68 x i8] c" %c = call i32 @fclose(ptr %f)\0A br label %out\0Aout:\0A ret void\0A}\0A\0A\00"
|
|
@.str2803 = private unnamed_addr constant [31 x i8] c"define i32 @L_load() {\0Aentry:\0A\00"
|
|
@.str2804 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_rb)\0A\00"
|
|
@.str2805 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00"
|
|
@.str2806 = private unnamed_addr constant [60 x i8] c" br i1 %bad, label %miss, label %go\0Amiss:\0A ret i32 0\0Ago:\0A\00"
|
|
@.str2807 = private unnamed_addr constant [6 x i8] c"fread\00"
|
|
@.str2808 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_load_state(ptr %f)\0A\00"
|
|
@.str2809 = private unnamed_addr constant [48 x i8] c" %c = call i32 @fclose(ptr %f)\0A ret i32 1\0A}\0A\0A\00"
|
|
@.str2810 = private unnamed_addr constant [45 x i8] c"define i32 @L_world_save(ptr %buf) {\0Aentry:\0A\00"
|
|
@.str2811 = private unnamed_addr constant [5 x i8] c"save\00"
|
|
@.str2812 = private unnamed_addr constant [1 x i8] c"\00"
|
|
@.str2813 = private unnamed_addr constant [5 x i8] c"%wsn\00"
|
|
@.str2814 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2815 = private unnamed_addr constant [14 x i8] c" = trunc i64 \00"
|
|
@.str2816 = private unnamed_addr constant [9 x i8] c" to i32\0A\00"
|
|
@.str2817 = private unnamed_addr constant [11 x i8] c" ret i32 \00"
|
|
@.str2818 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00"
|
|
@.str2819 = private unnamed_addr constant [56 x i8] c"define void @L_world_load(ptr %buf, i32 %len) {\0Aentry:\0A\00"
|
|
@.str2820 = private unnamed_addr constant [5 x i8] c"load\00"
|
|
@.str2821 = private unnamed_addr constant [1 x i8] c"\00"
|
|
@.str2822 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00"
|
|
@.str2823 = private unnamed_addr constant [37 x i8] c"define i32 @L_world_size() {\0Aentry:\0A\00"
|
|
@.str2824 = private unnamed_addr constant [5 x i8] c"size\00"
|
|
@.str2825 = private unnamed_addr constant [1 x i8] c"\00"
|
|
@.str2826 = private unnamed_addr constant [5 x i8] c"%wzn\00"
|
|
@.str2827 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2828 = private unnamed_addr constant [14 x i8] c" = trunc i64 \00"
|
|
@.str2829 = private unnamed_addr constant [9 x i8] c" to i32\0A\00"
|
|
@.str2830 = private unnamed_addr constant [11 x i8] c" ret i32 \00"
|
|
@.str2831 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00"
|
|
@.str2832 = private unnamed_addr constant [5 x i8] c"file\00"
|
|
@.str2833 = private unnamed_addr constant [3 x i8] c"i8\00"
|
|
@.str2834 = private unnamed_addr constant [3 x i8] c"i8\00"
|
|
@.str2835 = private unnamed_addr constant [2 x i8] c"1\00"
|
|
@.str2836 = private unnamed_addr constant [2 x i8] c"4\00"
|
|
@.str2837 = private unnamed_addr constant [24 x i8] c"ludicc(self): warning: \00"
|
|
@.str2838 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2839 = private unnamed_addr constant [4 x i8] c"ptr\00"
|
|
@.str2840 = private unnamed_addr constant [13 x i8] c"@Sync field \00"
|
|
@.str2841 = private unnamed_addr constant [2 x i8] c".\00"
|
|
@.str2842 = private unnamed_addr constant [68 x i8] c" is not a POD scalar (networked fields must be int/bool/fixed/byte)\00"
|
|
@.str2843 = private unnamed_addr constant [7 x i8] c"model \00"
|
|
@.str2844 = private unnamed_addr constant [9 x i8] c" @Syncs \00"
|
|
@.str2845 = private unnamed_addr constant [51 x i8] c" but it has no @Sync fields \E2\80\94 nothing replicates\00"
|
|
@.str2846 = private unnamed_addr constant [25 x i8] c"define i32 @L_serialize_\00"
|
|
@.str2847 = private unnamed_addr constant [29 x i8] c"(i32 %e, ptr %buf) {\0Aentry:\0A\00"
|
|
@.str2848 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2849 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2850 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str2851 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00"
|
|
@.str2852 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00"
|
|
@.str2853 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2854 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00"
|
|
@.str2855 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2856 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str2857 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2858 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2859 = private unnamed_addr constant [45 x i8] c" = getelementptr inbounds i8, ptr %buf, i32 \00"
|
|
@.str2860 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2861 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00"
|
|
@.str2862 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2863 = private unnamed_addr constant [7 x i8] c", i64 \00"
|
|
@.str2864 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2865 = private unnamed_addr constant [11 x i8] c" ret i32 \00"
|
|
@.str2866 = private unnamed_addr constant [5 x i8] c"\0A}\0A\0A\00"
|
|
@.str2867 = private unnamed_addr constant [22 x i8] c"define void @L_apply_\00"
|
|
@.str2868 = private unnamed_addr constant [39 x i8] c"(i32 %e, ptr %buf, i32 %len) {\0Aentry:\0A\00"
|
|
@.str2869 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2870 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00"
|
|
@.str2871 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00"
|
|
@.str2872 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00"
|
|
@.str2873 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00"
|
|
@.str2874 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2875 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00"
|
|
@.str2876 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2877 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00"
|
|
@.str2878 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2879 = private unnamed_addr constant [3 x i8] c" \00"
|
|
@.str2880 = private unnamed_addr constant [45 x i8] c" = getelementptr inbounds i8, ptr %buf, i32 \00"
|
|
@.str2881 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2882 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00"
|
|
@.str2883 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str2884 = private unnamed_addr constant [7 x i8] c", i64 \00"
|
|
@.str2885 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str2886 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00"
|
|
@.str2887 = private unnamed_addr constant [56 x i8] c"define i32 @ludic_serialize(i32 %e, ptr %buf) {\0Aentry:\0A\00"
|
|
@.str2888 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00"
|
|
@.str2889 = private unnamed_addr constant [62 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A %k = load i32, ptr %kp\0A\00"
|
|
@.str2890 = private unnamed_addr constant [5 x i8] c" %c\00"
|
|
@.str2891 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00"
|
|
@.str2892 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2893 = private unnamed_addr constant [11 x i8] c" br i1 %c\00"
|
|
@.str2894 = private unnamed_addr constant [11 x i8] c", label %h\00"
|
|
@.str2895 = private unnamed_addr constant [11 x i8] c", label %n\00"
|
|
@.str2896 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2897 = private unnamed_addr constant [2 x i8] c"h\00"
|
|
@.str2898 = private unnamed_addr constant [7 x i8] c":\0A %r\00"
|
|
@.str2899 = private unnamed_addr constant [26 x i8] c" = call i32 @L_serialize_\00"
|
|
@.str2900 = private unnamed_addr constant [32 x i8] c"(i32 %e, ptr %buf)\0A ret i32 %r\00"
|
|
@.str2901 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2902 = private unnamed_addr constant [2 x i8] c"n\00"
|
|
@.str2903 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2904 = private unnamed_addr constant [16 x i8] c" ret i32 0\0A}\0A\0A\00"
|
|
@.str2905 = private unnamed_addr constant [63 x i8] c"define void @ludic_apply(i32 %e, ptr %buf, i32 %len) {\0Aentry:\0A\00"
|
|
@.str2906 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00"
|
|
@.str2907 = private unnamed_addr constant [62 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A %k = load i32, ptr %kp\0A\00"
|
|
@.str2908 = private unnamed_addr constant [5 x i8] c" %c\00"
|
|
@.str2909 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00"
|
|
@.str2910 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2911 = private unnamed_addr constant [11 x i8] c" br i1 %c\00"
|
|
@.str2912 = private unnamed_addr constant [11 x i8] c", label %h\00"
|
|
@.str2913 = private unnamed_addr constant [11 x i8] c", label %n\00"
|
|
@.str2914 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2915 = private unnamed_addr constant [2 x i8] c"h\00"
|
|
@.str2916 = private unnamed_addr constant [24 x i8] c":\0A call void @L_apply_\00"
|
|
@.str2917 = private unnamed_addr constant [41 x i8] c"(i32 %e, ptr %buf, i32 %len)\0A ret void\0A\00"
|
|
@.str2918 = private unnamed_addr constant [2 x i8] c"n\00"
|
|
@.str2919 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2920 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00"
|
|
@.str2921 = private unnamed_addr constant [46 x i8] c"define i32 @ludic_sync_size(i32 %e) {\0Aentry:\0A\00"
|
|
@.str2922 = private unnamed_addr constant [33 x i8] c" %kp = getelementptr inbounds [\00"
|
|
@.str2923 = private unnamed_addr constant [62 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A %k = load i32, ptr %kp\0A\00"
|
|
@.str2924 = private unnamed_addr constant [5 x i8] c" %c\00"
|
|
@.str2925 = private unnamed_addr constant [20 x i8] c" = icmp eq i32 %k, \00"
|
|
@.str2926 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2927 = private unnamed_addr constant [11 x i8] c" br i1 %c\00"
|
|
@.str2928 = private unnamed_addr constant [11 x i8] c", label %h\00"
|
|
@.str2929 = private unnamed_addr constant [11 x i8] c", label %n\00"
|
|
@.str2930 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2931 = private unnamed_addr constant [2 x i8] c"h\00"
|
|
@.str2932 = private unnamed_addr constant [13 x i8] c":\0A ret i32 \00"
|
|
@.str2933 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2934 = private unnamed_addr constant [2 x i8] c"n\00"
|
|
@.str2935 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2936 = private unnamed_addr constant [16 x i8] c" ret i32 0\0A}\0A\0A\00"
|
|
@.str2937 = private unnamed_addr constant [38 x i8] c"define i32 @L_owner(i32 %e) {\0Aentry:\0A\00"
|
|
@.str2938 = private unnamed_addr constant [32 x i8] c" %p = getelementptr inbounds [\00"
|
|
@.str2939 = private unnamed_addr constant [82 x i8] c" x i32], ptr @L_owner_arr, i32 0, i32 %e\0A %v = load i32, ptr %p\0A ret i32 %v\0A}\0A\0A\00"
|
|
@.str2940 = private unnamed_addr constant [52 x i8] c"define void @L_set_owner(i32 %e, i32 %id) {\0Aentry:\0A\00"
|
|
@.str2941 = private unnamed_addr constant [32 x i8] c" %p = getelementptr inbounds [\00"
|
|
@.str2942 = private unnamed_addr constant [80 x i8] c" x i32], ptr @L_owner_arr, i32 0, i32 %e\0A store i32 %id, ptr %p\0A ret void\0A}\0A\0A\00"
|
|
@.str2943 = private unnamed_addr constant [41 x i8] c"define i32 @L_is_owner(i32 %e) {\0Aentry:\0A\00"
|
|
@.str2944 = private unnamed_addr constant [32 x i8] c" %p = getelementptr inbounds [\00"
|
|
@.str2945 = private unnamed_addr constant [66 x i8] c" x i32], ptr @L_owner_arr, i32 0, i32 %e\0A %o = load i32, ptr %p\0A\00"
|
|
@.str2946 = private unnamed_addr constant [106 x i8] c" %lid = load i32, ptr @L_localid\0A %eq = icmp eq i32 %o, %lid\0A %r = zext i1 %eq to i32\0A ret i32 %r\0A}\0A\0A\00"
|
|
@.str2947 = private unnamed_addr constant [62 x i8] c"@L_netq = internal global [64 x [2048 x i8]] zeroinitializer\0A\00"
|
|
@.str2948 = private unnamed_addr constant [56 x i8] c"@L_netlen = internal global [64 x i32] zeroinitializer\0A\00"
|
|
@.str2949 = private unnamed_addr constant [36 x i8] c"@L_nethead = internal global i32 0\0A\00"
|
|
@.str2950 = private unnamed_addr constant [36 x i8] c"@L_nettail = internal global i32 0\0A\00"
|
|
@.str2951 = private unnamed_addr constant [65 x i8] c"define void @L_net_send(i32 %peer, ptr %buf, i32 %len) {\0Aentry:\0A\00"
|
|
@.str2952 = private unnamed_addr constant [71 x i8] c" %l0 = icmp slt i32 %len, 0\0A %len1 = select i1 %l0, i32 0, i32 %len\0A\00"
|
|
@.str2953 = private unnamed_addr constant [76 x i8] c" %l1 = icmp sgt i32 %len1, 2048\0A %n = select i1 %l1, i32 2048, i32 %len1\0A\00"
|
|
@.str2954 = private unnamed_addr constant [65 x i8] c" %t = load i32, ptr @L_nettail\0A %h = load i32, ptr @L_nethead\0A\00"
|
|
@.str2955 = private unnamed_addr constant [78 x i8] c" %t1 = add i32 %t, 1\0A %tn = srem i32 %t1, 64\0A %full = icmp eq i32 %tn, %h\0A\00"
|
|
@.str2956 = private unnamed_addr constant [39 x i8] c" br i1 %full, label %drop, label %go\0A\00"
|
|
@.str2957 = private unnamed_addr constant [5 x i8] c"go:\0A\00"
|
|
@.str2958 = private unnamed_addr constant [80 x i8] c" %row = getelementptr inbounds [64 x [2048 x i8]], ptr @L_netq, i32 0, i32 %t\0A\00"
|
|
@.str2959 = private unnamed_addr constant [76 x i8] c" %nz = zext i32 %n to i64\0A call ptr @memcpy(ptr %row, ptr %buf, i64 %nz)\0A\00"
|
|
@.str2960 = private unnamed_addr constant [97 x i8] c" %lp = getelementptr inbounds [64 x i32], ptr @L_netlen, i32 0, i32 %t\0A store i32 %n, ptr %lp\0A\00"
|
|
@.str2961 = private unnamed_addr constant [50 x i8] c" store i32 %tn, ptr @L_nettail\0A br label %drop\0A\00"
|
|
@.str2962 = private unnamed_addr constant [21 x i8] c"drop:\0A ret void\0A}\0A\0A\00"
|
|
@.str2963 = private unnamed_addr constant [53 x i8] c"define i32 @L_net_poll(ptr %buf, i32 %cap) {\0Aentry:\0A\00"
|
|
@.str2964 = private unnamed_addr constant [95 x i8] c" %h = load i32, ptr @L_nethead\0A %t = load i32, ptr @L_nettail\0A %empty = icmp eq i32 %h, %t\0A\00"
|
|
@.str2965 = private unnamed_addr constant [40 x i8] c" br i1 %empty, label %none, label %go\0A\00"
|
|
@.str2966 = private unnamed_addr constant [5 x i8] c"go:\0A\00"
|
|
@.str2967 = private unnamed_addr constant [99 x i8] c" %lp = getelementptr inbounds [64 x i32], ptr @L_netlen, i32 0, i32 %h\0A %ln = load i32, ptr %lp\0A\00"
|
|
@.str2968 = private unnamed_addr constant [74 x i8] c" %big = icmp sgt i32 %ln, %cap\0A %n = select i1 %big, i32 %cap, i32 %ln\0A\00"
|
|
@.str2969 = private unnamed_addr constant [80 x i8] c" %row = getelementptr inbounds [64 x [2048 x i8]], ptr @L_netq, i32 0, i32 %h\0A\00"
|
|
@.str2970 = private unnamed_addr constant [76 x i8] c" %nz = zext i32 %n to i64\0A call ptr @memcpy(ptr %buf, ptr %row, i64 %nz)\0A\00"
|
|
@.str2971 = private unnamed_addr constant [93 x i8] c" %h1 = add i32 %h, 1\0A %hn = srem i32 %h1, 64\0A store i32 %hn, ptr @L_nethead\0A ret i32 %n\0A\00"
|
|
@.str2972 = private unnamed_addr constant [22 x i8] c"none:\0A ret i32 0\0A}\0A\0A\00"
|
|
@.str2973 = private unnamed_addr constant [9 x i8] c"net_send\00"
|
|
@.str2974 = private unnamed_addr constant [11 x i8] c"L_net_send\00"
|
|
@.str2975 = private unnamed_addr constant [9 x i8] c"net_poll\00"
|
|
@.str2976 = private unnamed_addr constant [11 x i8] c"L_net_poll\00"
|
|
@.str2977 = private unnamed_addr constant [58 x i8] c"@L_recvbuf = internal global [2048 x i8] zeroinitializer\0A\00"
|
|
@.str2978 = private unnamed_addr constant [9 x i8] c"net_poll\00"
|
|
@.str2979 = private unnamed_addr constant [53 x i8] c"define void @L_net_pump() {\0Aentry:\0A br label %loop\0A\00"
|
|
@.str2980 = private unnamed_addr constant [24 x i8] c"loop:\0A %n = call i32 @\00"
|
|
@.str2981 = private unnamed_addr constant [28 x i8] c"(ptr @L_recvbuf, i32 2048)\0A\00"
|
|
@.str2982 = private unnamed_addr constant [68 x i8] c" %done = icmp eq i32 %n, 0\0A br i1 %done, label %fin, label %body\0A\00"
|
|
@.str2983 = private unnamed_addr constant [41 x i8] c"body:\0A %eid = load i32, ptr @L_recvbuf\0A\00"
|
|
@.str2984 = private unnamed_addr constant [5 x i8] c" %c\00"
|
|
@.str2985 = private unnamed_addr constant [22 x i8] c" = icmp eq i32 %eid, \00"
|
|
@.str2986 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2987 = private unnamed_addr constant [11 x i8] c" br i1 %c\00"
|
|
@.str2988 = private unnamed_addr constant [11 x i8] c", label %h\00"
|
|
@.str2989 = private unnamed_addr constant [11 x i8] c", label %x\00"
|
|
@.str2990 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2991 = private unnamed_addr constant [2 x i8] c"h\00"
|
|
@.str2992 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str2993 = private unnamed_addr constant [2 x i8] c"_\00"
|
|
@.str2994 = private unnamed_addr constant [6 x i8] c" %fa\00"
|
|
@.str2995 = private unnamed_addr constant [51 x i8] c" = getelementptr inbounds i8, ptr @L_recvbuf, i32 \00"
|
|
@.str2996 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str2997 = private unnamed_addr constant [6 x i8] c" %fv\00"
|
|
@.str2998 = private unnamed_addr constant [9 x i8] c" = load \00"
|
|
@.str2999 = private unnamed_addr constant [10 x i8] c", ptr %fa\00"
|
|
@.str3000 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str3001 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str3002 = private unnamed_addr constant [5 x i8] c" %fv\00"
|
|
@.str3003 = private unnamed_addr constant [17 x i8] c" call void @ev_\00"
|
|
@.str3004 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str3005 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str3006 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00"
|
|
@.str3007 = private unnamed_addr constant [2 x i8] c"x\00"
|
|
@.str3008 = private unnamed_addr constant [3 x i8] c":\0A\00"
|
|
@.str3009 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00"
|
|
@.str3010 = private unnamed_addr constant [20 x i8] c"fin:\0A ret void\0A}\0A\0A\00"
|
|
@.str3011 = private unnamed_addr constant [58 x i8] c"@L_sendbuf = internal global [2048 x i8] zeroinitializer\0A\00"
|
|
@.str3012 = private unnamed_addr constant [6 x i8] c"panel\00"
|
|
@.str3013 = private unnamed_addr constant [4 x i8] c"col\00"
|
|
@.str3014 = private unnamed_addr constant [4 x i8] c"row\00"
|
|
@.str3015 = private unnamed_addr constant [6 x i8] c"label\00"
|
|
@.str3016 = private unnamed_addr constant [7 x i8] c"button\00"
|
|
@.str3017 = private unnamed_addr constant [6 x i8] c"image\00"
|
|
@.str3018 = private unnamed_addr constant [7 x i8] c"spacer\00"
|
|
@.str3019 = private unnamed_addr constant [3 x i8] c"id\00"
|
|
@.str3020 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_ui_set(i32 \00"
|
|
@.str3021 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str3022 = private unnamed_addr constant [7 x i8] c", i32 \00"
|
|
@.str3023 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str3024 = private unnamed_addr constant [2 x i8] c"w\00"
|
|
@.str3025 = private unnamed_addr constant [2 x i8] c"h\00"
|
|
@.str3026 = private unnamed_addr constant [2 x i8] c"x\00"
|
|
@.str3027 = private unnamed_addr constant [2 x i8] c"y\00"
|
|
@.str3028 = private unnamed_addr constant [4 x i8] c"pad\00"
|
|
@.str3029 = private unnamed_addr constant [4 x i8] c"gap\00"
|
|
@.str3030 = private unnamed_addr constant [3 x i8] c"bg\00"
|
|
@.str3031 = private unnamed_addr constant [3 x i8] c"fg\00"
|
|
@.str3032 = private unnamed_addr constant [7 x i8] c"border\00"
|
|
@.str3033 = private unnamed_addr constant [5 x i8] c"grow\00"
|
|
@.str3034 = private unnamed_addr constant [5 x i8] c"font\00"
|
|
@.str3035 = private unnamed_addr constant [5 x i8] c"size\00"
|
|
@.str3036 = private unnamed_addr constant [6 x i8] c"inset\00"
|
|
@.str3037 = private unnamed_addr constant [6 x i8] c"focus\00"
|
|
@.str3038 = private unnamed_addr constant [33 x i8] c" call void @fn_rt_ui_reset(i32 \00"
|
|
@.str3039 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str3040 = private unnamed_addr constant [2 x i8] c"1\00"
|
|
@.str3041 = private unnamed_addr constant [3 x i8] c"id\00"
|
|
@.str3042 = private unnamed_addr constant [5 x i8] c"text\00"
|
|
@.str3043 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_ui_static_text(i32 \00"
|
|
@.str3044 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str3045 = private unnamed_addr constant [3 x i8] c")\0A\00"
|
|
@.str3046 = private unnamed_addr constant [5 x i8] c"skin\00"
|
|
@.str3047 = private unnamed_addr constant [6 x i8] c"image\00"
|
|
@.str3048 = private unnamed_addr constant [32 x i8] c"call i32 @fn_rt_image_load(ptr \00"
|
|
@.str3049 = private unnamed_addr constant [2 x i8] c")\00"
|
|
@.str3050 = private unnamed_addr constant [5 x i8] c"skin\00"
|
|
@.str3051 = private unnamed_addr constant [6 x i8] c"align\00"
|
|
@.str3052 = private unnamed_addr constant [7 x i8] c"center\00"
|
|
@.str3053 = private unnamed_addr constant [4 x i8] c"end\00"
|
|
@.str3054 = private unnamed_addr constant [2 x i8] c"1\00"
|
|
@.str3055 = private unnamed_addr constant [34 x i8] c"define void @ui_build() {\0Aentry:\0A\00"
|
|
@.str3056 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00"
|
|
@.str3057 = private unnamed_addr constant [3 x i8] c", \00"
|
|
@.str3058 = private unnamed_addr constant [7 x i8] c" %arg_\00"
|
|
@.str3059 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str3060 = private unnamed_addr constant [20 x i8] c" %retval = alloca \00"
|
|
@.str3061 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str3062 = private unnamed_addr constant [9 x i8] c" store \00"
|
|
@.str3063 = private unnamed_addr constant [7 x i8] c" %arg_\00"
|
|
@.str3064 = private unnamed_addr constant [7 x i8] c", ptr \00"
|
|
@.str3065 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str3066 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00"
|
|
@.str3067 = private unnamed_addr constant [6 x i8] c"ret:\0A\00"
|
|
@.str3068 = private unnamed_addr constant [5 x i8] c"void\00"
|
|
@.str3069 = private unnamed_addr constant [12 x i8] c" ret void\0A\00"
|
|
@.str3070 = private unnamed_addr constant [6 x i8] c"load \00"
|
|
@.str3071 = private unnamed_addr constant [14 x i8] c", ptr %retval\00"
|
|
@.str3072 = private unnamed_addr constant [7 x i8] c" ret \00"
|
|
@.str3073 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str3074 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str3075 = private unnamed_addr constant [8 x i8] c"define \00"
|
|
@.str3076 = private unnamed_addr constant [6 x i8] c" @fn_\00"
|
|
@.str3077 = private unnamed_addr constant [2 x i8] c"(\00"
|
|
@.str3078 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00"
|
|
@.str3079 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00"
|
|
@.str3080 = private unnamed_addr constant [4 x i8] c"int\00"
|
|
@.str3081 = private unnamed_addr constant [24 x i8] c" %retval = alloca i32\0A\00"
|
|
@.str3082 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00"
|
|
@.str3083 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00"
|
|
@.str3084 = private unnamed_addr constant [28 x i8] c" store i32 0, ptr %retval\0A\00"
|
|
@.str3085 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00"
|
|
@.str3086 = private unnamed_addr constant [6 x i8] c"ret:\0A\00"
|
|
@.str3087 = private unnamed_addr constant [22 x i8] c"load i32, ptr %retval\00"
|
|
@.str3088 = private unnamed_addr constant [11 x i8] c" ret i32 \00"
|
|
@.str3089 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str3090 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00"
|
|
@.str3091 = private unnamed_addr constant [3 x i8] c"}\0A\00"
|
|
@.str3092 = private unnamed_addr constant [3 x i8] c"wb\00"
|
|
@.str3093 = private unnamed_addr constant [7 x i8] c".ludic\00"
|
|
@.str3094 = private unnamed_addr constant [2 x i8] c"/\00"
|
|
@.str3095 = private unnamed_addr constant [6 x i8] c"ludic\00"
|
|
@.str3096 = private unnamed_addr constant [11 x i8] c"--windowed\00"
|
|
@.str3097 = private unnamed_addr constant [11 x i8] c"--headless\00"
|
|
@.str3098 = private unnamed_addr constant [12 x i8] c"--emit-llvm\00"
|
|
@.str3099 = private unnamed_addr constant [6 x i8] c"--fmt\00"
|
|
@.str3100 = private unnamed_addr constant [13 x i8] c"--save-temps\00"
|
|
@.str3101 = private unnamed_addr constant [6 x i8] c"--run\00"
|
|
@.str3102 = private unnamed_addr constant [3 x i8] c"-o\00"
|
|
@.str3103 = private unnamed_addr constant [31 x i8] c"ludicc: ignoring unknown flag \00"
|
|
@.str3104 = private unnamed_addr constant [2 x i8] c"\0A\00"
|
|
@.str3105 = private unnamed_addr constant [90 x i8] c"usage: ludicc <file.ludic> [-o out] [--windowed|--headless] [--emit-llvm] [--save-temps]\0A\00"
|
|
@.str3106 = private unnamed_addr constant [27 x i8] c"ludicc: cannot open input\0A\00"
|
|
@.str3107 = private unnamed_addr constant [16 x i8] c"/tmp/ludic-run-\00"
|
|
@.str3108 = private unnamed_addr constant [10 x i8] c"mkdir -p \00"
|
|
@.str3109 = private unnamed_addr constant [4 x i8] c".ll\00"
|
|
@.str3110 = private unnamed_addr constant [25 x i8] c"ludicc: cannot write IR\0A\00"
|
|
@.str3111 = private unnamed_addr constant [9 x i8] c"LUDIC_CC\00"
|
|
@.str3112 = private unnamed_addr constant [6 x i8] c"clang\00"
|
|
@.str3113 = private unnamed_addr constant [11 x i8] c"LUDIC_HOME\00"
|
|
@.str3114 = private unnamed_addr constant [27 x i8] c" -O2 -Wno-override-module \00"
|
|
@.str3115 = private unnamed_addr constant [24 x i8] c"runtime/native/cocoa.ll\00"
|
|
@.str3116 = private unnamed_addr constant [2 x i8] c" \00"
|
|
@.str3117 = private unnamed_addr constant [42 x i8] c" -framework Cocoa -Wl,-rpath,@loader_path\00"
|
|
@.str3118 = private unnamed_addr constant [5 x i8] c" -o \00"
|
|
@.str3119 = private unnamed_addr constant [7 x i8] c"rm -f \00"
|
|
@.str3120 = private unnamed_addr constant [21 x i8] c"ludicc: link failed\0A\00"
|
|
define i32 @fn_str_eq(ptr %a, ptr %b) {
|
|
entry:
|
|
br label %loop
|
|
loop:
|
|
%i = phi i32 [ 0, %entry ], [ %i1, %cont ]
|
|
%pa = getelementptr inbounds i8, ptr %a, i32 %i
|
|
%pb = getelementptr inbounds i8, ptr %b, i32 %i
|
|
%ca = load i8, ptr %pa
|
|
%cb = load i8, ptr %pb
|
|
%df = icmp ne i8 %ca, %cb
|
|
br i1 %df, label %ret0, label %chk
|
|
chk:
|
|
%zt = icmp eq i8 %ca, 0
|
|
br i1 %zt, label %ret1, label %cont
|
|
cont:
|
|
%i1 = add i32 %i, 1
|
|
br label %loop
|
|
ret1:
|
|
ret i32 1
|
|
ret0:
|
|
ret i32 0
|
|
}
|
|
define ptr @fn_str_concat(ptr %a, ptr %b) {
|
|
entry:
|
|
br label %al
|
|
al:
|
|
%ia = phi i32 [ 0, %entry ], [ %ia1, %alb ]
|
|
%pa = getelementptr inbounds i8, ptr %a, i32 %ia
|
|
%cca = load i8, ptr %pa
|
|
%za = icmp eq i8 %cca, 0
|
|
br i1 %za, label %bl0, label %alb
|
|
alb:
|
|
%ia1 = add i32 %ia, 1
|
|
br label %al
|
|
bl0:
|
|
br label %bl
|
|
bl:
|
|
%ib = phi i32 [ 0, %bl0 ], [ %ib1, %blb ]
|
|
%pb = getelementptr inbounds i8, ptr %b, i32 %ib
|
|
%ccb = load i8, ptr %pb
|
|
%zb = icmp eq i8 %ccb, 0
|
|
br i1 %zb, label %alloc, label %blb
|
|
blb:
|
|
%ib1 = add i32 %ib, 1
|
|
br label %bl
|
|
alloc:
|
|
%sum = add i32 %ia, %ib
|
|
%sz = add i32 %sum, 1
|
|
%sz64 = sext i32 %sz to i64
|
|
%out = call ptr @malloc(i64 %sz64)
|
|
br label %c1
|
|
c1:
|
|
%i = phi i32 [ 0, %alloc ], [ %i1, %c1b ]
|
|
%d1 = icmp slt i32 %i, %ia
|
|
br i1 %d1, label %c1b, label %c2i
|
|
c1b:
|
|
%s1 = getelementptr inbounds i8, ptr %a, i32 %i
|
|
%v1 = load i8, ptr %s1
|
|
%o1 = getelementptr inbounds i8, ptr %out, i32 %i
|
|
store i8 %v1, ptr %o1
|
|
%i1 = add i32 %i, 1
|
|
br label %c1
|
|
c2i:
|
|
br label %c2
|
|
c2:
|
|
%j = phi i32 [ 0, %c2i ], [ %j1, %c2b ]
|
|
%d2 = icmp slt i32 %j, %ib
|
|
br i1 %d2, label %c2b, label %fin
|
|
c2b:
|
|
%s2 = getelementptr inbounds i8, ptr %b, i32 %j
|
|
%v2 = load i8, ptr %s2
|
|
%oj = add i32 %ia, %j
|
|
%o2 = getelementptr inbounds i8, ptr %out, i32 %oj
|
|
store i8 %v2, ptr %o2
|
|
%j1 = add i32 %j, 1
|
|
br label %c2
|
|
fin:
|
|
%pe = getelementptr inbounds i8, ptr %out, i32 %sum
|
|
store i8 0, ptr %pe
|
|
ret ptr %out
|
|
}
|
|
define ptr @fn_str_slice(ptr %s, i32 %start, i32 %end) {
|
|
entry:
|
|
%len = sub i32 %end, %start
|
|
%sz = add i32 %len, 1
|
|
%sz64 = sext i32 %sz to i64
|
|
%out = call ptr @malloc(i64 %sz64)
|
|
br label %loop
|
|
loop:
|
|
%i = phi i32 [ 0, %entry ], [ %i1, %body ]
|
|
%d = icmp slt i32 %i, %len
|
|
br i1 %d, label %body, label %fin
|
|
body:
|
|
%si = add i32 %start, %i
|
|
%sp = getelementptr inbounds i8, ptr %s, i32 %si
|
|
%c = load i8, ptr %sp
|
|
%op = getelementptr inbounds i8, ptr %out, i32 %i
|
|
store i8 %c, ptr %op
|
|
%i1 = add i32 %i, 1
|
|
br label %loop
|
|
fin:
|
|
%tp = getelementptr inbounds i8, ptr %out, i32 %len
|
|
store i8 0, ptr %tp
|
|
ret ptr %out
|
|
}
|
|
define i32 @fn_char_is_digit(i32 %arg_c) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
%t1 = alloca i32
|
|
store i32 %arg_c, ptr %t0
|
|
%t2 = load i32, ptr %t0
|
|
%t3 = icmp sge i32 %t2, 48
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
%t6 = zext i1 %t5 to i32
|
|
store i32 %t6, ptr %t1
|
|
br i1 %t5, label %sc0, label %scend1
|
|
sc0:
|
|
%t7 = load i32, ptr %t0
|
|
%t8 = icmp sle i32 %t7, 57
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
%t11 = zext i1 %t10 to i32
|
|
store i32 %t11, ptr %t1
|
|
br label %scend1
|
|
scend1:
|
|
%t12 = load i32, ptr %t1
|
|
store i32 %t12, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t13 = load i32, ptr %retval
|
|
ret i32 %t13
|
|
}
|
|
|
|
define i32 @fn_char_is_alpha(i32 %arg_c) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
%t1 = alloca i32
|
|
%t14 = alloca i32
|
|
store i32 %arg_c, ptr %t0
|
|
%t2 = load i32, ptr %t0
|
|
%t3 = icmp sge i32 %t2, 65
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
%t6 = zext i1 %t5 to i32
|
|
store i32 %t6, ptr %t1
|
|
br i1 %t5, label %sc0, label %scend1
|
|
sc0:
|
|
%t7 = load i32, ptr %t0
|
|
%t8 = icmp sle i32 %t7, 90
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
%t11 = zext i1 %t10 to i32
|
|
store i32 %t11, ptr %t1
|
|
br label %scend1
|
|
scend1:
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %then2, label %ifend4
|
|
then2:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend4:
|
|
%t15 = load i32, ptr %t0
|
|
%t16 = icmp sge i32 %t15, 97
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
%t19 = zext i1 %t18 to i32
|
|
store i32 %t19, ptr %t14
|
|
br i1 %t18, label %sc5, label %scend6
|
|
sc5:
|
|
%t20 = load i32, ptr %t0
|
|
%t21 = icmp sle i32 %t20, 122
|
|
%t22 = zext i1 %t21 to i32
|
|
%t23 = icmp ne i32 %t22, 0
|
|
%t24 = zext i1 %t23 to i32
|
|
store i32 %t24, ptr %t14
|
|
br label %scend6
|
|
scend6:
|
|
%t25 = load i32, ptr %t14
|
|
%t26 = icmp ne i32 %t25, 0
|
|
br i1 %t26, label %then7, label %ifend9
|
|
then7:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend9:
|
|
%t27 = load i32, ptr %t0
|
|
%t28 = icmp eq i32 %t27, 95
|
|
%t29 = zext i1 %t28 to i32
|
|
store i32 %t29, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t30 = load i32, ptr %retval
|
|
ret i32 %t30
|
|
}
|
|
|
|
define i32 @fn_char_is_alnum(i32 %arg_c) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
%t1 = alloca i32
|
|
store i32 %arg_c, ptr %t0
|
|
%t2 = load i32, ptr %t0
|
|
%t3 = call i32 @fn_char_is_alpha(i32 %t2)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
%t5 = zext i1 %t4 to i32
|
|
store i32 %t5, ptr %t1
|
|
br i1 %t4, label %scend1, label %sc0
|
|
sc0:
|
|
%t6 = load i32, ptr %t0
|
|
%t7 = call i32 @fn_char_is_digit(i32 %t6)
|
|
%t8 = icmp ne i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
store i32 %t9, ptr %t1
|
|
br label %scend1
|
|
scend1:
|
|
%t10 = load i32, ptr %t1
|
|
store i32 %t10, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t11 = load i32, ptr %retval
|
|
ret i32 %t11
|
|
}
|
|
|
|
define ptr @fn_itoa(i32 %arg_v) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca i32
|
|
%t7 = alloca ptr
|
|
%t15 = alloca i32
|
|
%t17 = alloca i32
|
|
%t26 = alloca ptr
|
|
%t27 = alloca i32
|
|
%t44 = alloca i32
|
|
%t53 = alloca ptr
|
|
%t54 = alloca i32
|
|
%t60 = alloca i32
|
|
store i32 %arg_v, ptr %t0
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = icmp eq i32 %t1, 0
|
|
%t3 = zext i1 %t2 to i32
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
%t5 = zext i32 2 to i64
|
|
%t6 = call ptr @malloc(i64 %t5)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds i8, ptr %t8, i32 0
|
|
%t10 = trunc i32 48 to i8
|
|
store i8 %t10, ptr %t9
|
|
%t11 = load ptr, ptr %t7
|
|
%t12 = getelementptr inbounds i8, ptr %t11, i32 1
|
|
%t13 = trunc i32 0 to i8
|
|
store i8 %t13, ptr %t12
|
|
%t14 = load ptr, ptr %t7
|
|
store ptr %t14, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
store i32 0, ptr %t15
|
|
%t16 = load i32, ptr %t0
|
|
store i32 %t16, ptr %t17
|
|
%t18 = load i32, ptr %t17
|
|
%t19 = icmp slt i32 %t18, 0
|
|
%t20 = zext i1 %t19 to i32
|
|
%t21 = icmp ne i32 %t20, 0
|
|
br i1 %t21, label %then3, label %ifend5
|
|
then3:
|
|
store i32 1, ptr %t15
|
|
%t22 = load i32, ptr %t17
|
|
%t23 = sub i32 0, %t22
|
|
store i32 %t23, ptr %t17
|
|
br label %ifend5
|
|
ifend5:
|
|
%t24 = zext i32 16 to i64
|
|
%t25 = call ptr @malloc(i64 %t24)
|
|
store ptr %t25, ptr %t26
|
|
store i32 0, ptr %t27
|
|
br label %wcond6
|
|
wcond6:
|
|
%t28 = load i32, ptr %t17
|
|
%t29 = icmp sgt i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
br i1 %t31, label %wbody7, label %wend8
|
|
wbody7:
|
|
%t32 = load ptr, ptr %t26
|
|
%t33 = load i32, ptr %t27
|
|
%t34 = getelementptr inbounds i8, ptr %t32, i32 %t33
|
|
%t35 = load i32, ptr %t17
|
|
%t36 = srem i32 %t35, 10
|
|
%t37 = add i32 48, %t36
|
|
%t38 = trunc i32 %t37 to i8
|
|
store i8 %t38, ptr %t34
|
|
%t39 = load i32, ptr %t17
|
|
%t40 = sdiv i32 %t39, 10
|
|
store i32 %t40, ptr %t17
|
|
%t41 = load i32, ptr %t27
|
|
%t42 = add i32 %t41, 1
|
|
store i32 %t42, ptr %t27
|
|
br label %wcond6
|
|
wend8:
|
|
%t43 = load i32, ptr %t27
|
|
store i32 %t43, ptr %t44
|
|
%t45 = load i32, ptr %t15
|
|
%t46 = icmp ne i32 %t45, 0
|
|
br i1 %t46, label %then9, label %ifend11
|
|
then9:
|
|
%t47 = load i32, ptr %t44
|
|
%t48 = add i32 %t47, 1
|
|
store i32 %t48, ptr %t44
|
|
br label %ifend11
|
|
ifend11:
|
|
%t49 = load i32, ptr %t44
|
|
%t50 = add i32 %t49, 1
|
|
%t51 = zext i32 %t50 to i64
|
|
%t52 = call ptr @malloc(i64 %t51)
|
|
store ptr %t52, ptr %t53
|
|
store i32 0, ptr %t54
|
|
%t55 = load i32, ptr %t15
|
|
%t56 = icmp ne i32 %t55, 0
|
|
br i1 %t56, label %then12, label %ifend14
|
|
then12:
|
|
%t57 = load ptr, ptr %t53
|
|
%t58 = getelementptr inbounds i8, ptr %t57, i32 0
|
|
%t59 = trunc i32 45 to i8
|
|
store i8 %t59, ptr %t58
|
|
store i32 1, ptr %t54
|
|
br label %ifend14
|
|
ifend14:
|
|
store i32 0, ptr %t60
|
|
br label %wcond15
|
|
wcond15:
|
|
%t61 = load i32, ptr %t60
|
|
%t62 = load i32, ptr %t27
|
|
%t63 = icmp slt i32 %t61, %t62
|
|
%t64 = zext i1 %t63 to i32
|
|
%t65 = icmp ne i32 %t64, 0
|
|
br i1 %t65, label %wbody16, label %wend17
|
|
wbody16:
|
|
%t66 = load ptr, ptr %t53
|
|
%t67 = load i32, ptr %t54
|
|
%t68 = load i32, ptr %t60
|
|
%t69 = add i32 %t67, %t68
|
|
%t70 = getelementptr inbounds i8, ptr %t66, i32 %t69
|
|
%t71 = load ptr, ptr %t26
|
|
%t72 = load i32, ptr %t27
|
|
%t73 = sub i32 %t72, 1
|
|
%t74 = load i32, ptr %t60
|
|
%t75 = sub i32 %t73, %t74
|
|
%t76 = getelementptr inbounds i8, ptr %t71, i32 %t75
|
|
%t77 = load i8, ptr %t76
|
|
%t78 = zext i8 %t77 to i32
|
|
%t79 = trunc i32 %t78 to i8
|
|
store i8 %t79, ptr %t70
|
|
%t80 = load i32, ptr %t60
|
|
%t81 = add i32 %t80, 1
|
|
store i32 %t81, ptr %t60
|
|
br label %wcond15
|
|
wend17:
|
|
%t82 = load ptr, ptr %t53
|
|
%t83 = load i32, ptr %t44
|
|
%t84 = getelementptr inbounds i8, ptr %t82, i32 %t83
|
|
%t85 = trunc i32 0 to i8
|
|
store i8 %t85, ptr %t84
|
|
%t86 = load ptr, ptr %t53
|
|
store ptr %t86, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t87 = load ptr, ptr %retval
|
|
ret ptr %t87
|
|
}
|
|
|
|
define ptr @fn_buf_new() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t0 = getelementptr %Cmp_Buf, ptr null, i32 1
|
|
%t1 = ptrtoint ptr %t0 to i64
|
|
%t2 = call ptr @malloc(i64 %t1)
|
|
%t3 = getelementptr inbounds %Cmp_Buf, ptr %t2, i32 0, i32 0
|
|
store ptr null, ptr %t3
|
|
%t4 = getelementptr inbounds %Cmp_Buf, ptr %t2, i32 0, i32 1
|
|
store i32 0, ptr %t4
|
|
%t5 = getelementptr inbounds %Cmp_Buf, ptr %t2, i32 0, i32 2
|
|
store i32 0, ptr %t5
|
|
store ptr %t2, ptr %t6
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = getelementptr inbounds %Cmp_Buf, ptr %t7, i32 0, i32 2
|
|
store i32 256, ptr %t8
|
|
%t9 = load ptr, ptr %t6
|
|
%t10 = getelementptr inbounds %Cmp_Buf, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t6
|
|
%t12 = getelementptr inbounds %Cmp_Buf, ptr %t11, i32 0, i32 2
|
|
%t13 = load i32, ptr %t12
|
|
%t14 = zext i32 %t13 to i64
|
|
%t15 = call ptr @malloc(i64 %t14)
|
|
store ptr %t15, ptr %t10
|
|
%t16 = load ptr, ptr %t6
|
|
%t17 = getelementptr inbounds %Cmp_Buf, ptr %t16, i32 0, i32 1
|
|
store i32 0, ptr %t17
|
|
%t18 = load ptr, ptr %t6
|
|
store ptr %t18, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t19 = load ptr, ptr %retval
|
|
ret ptr %t19
|
|
}
|
|
|
|
define void @fn_buf_ensure(ptr %arg_b, i32 %arg_extra) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_b, ptr %t0
|
|
store i32 %arg_extra, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = getelementptr inbounds %Cmp_Buf, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = load i32, ptr %t1
|
|
%t6 = add i32 %t4, %t5
|
|
%t7 = add i32 %t6, 1
|
|
%t8 = load ptr, ptr %t0
|
|
%t9 = getelementptr inbounds %Cmp_Buf, ptr %t8, i32 0, i32 2
|
|
%t10 = load i32, ptr %t9
|
|
%t11 = icmp sle i32 %t7, %t10
|
|
%t12 = zext i1 %t11 to i32
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %then0, label %ifend2
|
|
then0:
|
|
br label %ret
|
|
ifend2:
|
|
br label %wcond3
|
|
wcond3:
|
|
%t14 = load ptr, ptr %t0
|
|
%t15 = getelementptr inbounds %Cmp_Buf, ptr %t14, i32 0, i32 1
|
|
%t16 = load i32, ptr %t15
|
|
%t17 = load i32, ptr %t1
|
|
%t18 = add i32 %t16, %t17
|
|
%t19 = add i32 %t18, 1
|
|
%t20 = load ptr, ptr %t0
|
|
%t21 = getelementptr inbounds %Cmp_Buf, ptr %t20, i32 0, i32 2
|
|
%t22 = load i32, ptr %t21
|
|
%t23 = icmp sgt i32 %t19, %t22
|
|
%t24 = zext i1 %t23 to i32
|
|
%t25 = icmp ne i32 %t24, 0
|
|
br i1 %t25, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t26 = load ptr, ptr %t0
|
|
%t27 = getelementptr inbounds %Cmp_Buf, ptr %t26, i32 0, i32 2
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = getelementptr inbounds %Cmp_Buf, ptr %t28, i32 0, i32 2
|
|
%t30 = load i32, ptr %t29
|
|
%t31 = mul i32 %t30, 2
|
|
store i32 %t31, ptr %t27
|
|
br label %wcond3
|
|
wend5:
|
|
%t32 = load ptr, ptr %t0
|
|
%t33 = getelementptr inbounds %Cmp_Buf, ptr %t32, i32 0, i32 0
|
|
%t34 = load ptr, ptr %t0
|
|
%t35 = getelementptr inbounds %Cmp_Buf, ptr %t34, i32 0, i32 0
|
|
%t36 = load ptr, ptr %t35
|
|
%t37 = load ptr, ptr %t0
|
|
%t38 = getelementptr inbounds %Cmp_Buf, ptr %t37, i32 0, i32 2
|
|
%t39 = load i32, ptr %t38
|
|
%t40 = zext i32 %t39 to i64
|
|
%t41 = call ptr @realloc(ptr %t36, i64 %t40)
|
|
store ptr %t41, ptr %t33
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_buf_putc(ptr %arg_b, i32 %arg_c) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_b, ptr %t0
|
|
store i32 %arg_c, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
call void @fn_buf_ensure(ptr %t2, i32 1)
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Buf, ptr %t3, i32 0, i32 0
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = getelementptr inbounds %Cmp_Buf, ptr %t6, i32 0, i32 1
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = getelementptr inbounds i8, ptr %t5, i32 %t8
|
|
%t10 = load i32, ptr %t1
|
|
%t11 = trunc i32 %t10 to i8
|
|
store i8 %t11, ptr %t9
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = getelementptr inbounds %Cmp_Buf, ptr %t12, i32 0, i32 1
|
|
%t14 = load ptr, ptr %t0
|
|
%t15 = getelementptr inbounds %Cmp_Buf, ptr %t14, i32 0, i32 1
|
|
%t16 = load i32, ptr %t15
|
|
%t17 = add i32 %t16, 1
|
|
store i32 %t17, ptr %t13
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_buf_puts(ptr %arg_b, ptr %arg_s) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
store ptr %arg_b, ptr %t0
|
|
store ptr %arg_s, ptr %t1
|
|
store i32 0, ptr %t2
|
|
br label %wcond0
|
|
wcond0:
|
|
%t3 = load ptr, ptr %t1
|
|
%t4 = load i32, ptr %t2
|
|
%t5 = getelementptr inbounds i8, ptr %t3, i32 %t4
|
|
%t6 = load i8, ptr %t5
|
|
%t7 = zext i8 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t11 = load ptr, ptr %t0
|
|
%t12 = load ptr, ptr %t1
|
|
%t13 = load i32, ptr %t2
|
|
%t14 = getelementptr inbounds i8, ptr %t12, i32 %t13
|
|
%t15 = load i8, ptr %t14
|
|
%t16 = zext i8 %t15 to i32
|
|
call void @fn_buf_putc(ptr %t11, i32 %t16)
|
|
%t17 = load i32, ptr %t2
|
|
%t18 = add i32 %t17, 1
|
|
store i32 %t18, ptr %t2
|
|
br label %wcond0
|
|
wend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_buf_puti(ptr %arg_b, i32 %arg_n) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_b, ptr %t0
|
|
store i32 %arg_n, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = load i32, ptr %t1
|
|
%t4 = call ptr @fn_itoa(i32 %t3)
|
|
call void @fn_buf_puts(ptr %t2, ptr %t4)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_buf_str(ptr %arg_b) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
store ptr %arg_b, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Buf, ptr %t1, i32 0, i32 0
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = getelementptr inbounds %Cmp_Buf, ptr %t4, i32 0, i32 1
|
|
%t6 = load i32, ptr %t5
|
|
%t7 = getelementptr inbounds i8, ptr %t3, i32 %t6
|
|
%t8 = trunc i32 0 to i8
|
|
store i8 %t8, ptr %t7
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = getelementptr inbounds %Cmp_Buf, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
store ptr %t11, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t12 = load ptr, ptr %retval
|
|
ret ptr %t12
|
|
}
|
|
|
|
define ptr @fn_read_file(ptr %arg_path) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t14 = alloca i32
|
|
%t22 = alloca ptr
|
|
store ptr %arg_path, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call ptr @fopen(ptr %t1, ptr @.str0)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = icmp eq ptr %t4, null
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %then0, label %ifend2
|
|
then0:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t8 = load ptr, ptr %t3
|
|
%t9 = sext i32 0 to i64
|
|
%t10 = call i32 @fseek(ptr %t8, i64 %t9, i32 2)
|
|
%t11 = load ptr, ptr %t3
|
|
%t12 = call i64 @ftell(ptr %t11)
|
|
%t13 = trunc i64 %t12 to i32
|
|
store i32 %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t3
|
|
%t16 = sext i32 0 to i64
|
|
%t17 = call i32 @fseek(ptr %t15, i64 %t16, i32 0)
|
|
%t18 = load i32, ptr %t14
|
|
%t19 = add i32 %t18, 1
|
|
%t20 = zext i32 %t19 to i64
|
|
%t21 = call ptr @malloc(i64 %t20)
|
|
store ptr %t21, ptr %t22
|
|
%t23 = load ptr, ptr %t3
|
|
%t24 = load ptr, ptr %t22
|
|
%t25 = load i32, ptr %t14
|
|
%t26 = zext i32 %t25 to i64
|
|
%t27 = call i64 @fread(ptr %t24, i64 1, i64 %t26, ptr %t23)
|
|
%t28 = trunc i64 %t27 to i32
|
|
%t29 = load ptr, ptr %t22
|
|
%t30 = load i32, ptr %t14
|
|
%t31 = getelementptr inbounds i8, ptr %t29, i32 %t30
|
|
%t32 = trunc i32 0 to i8
|
|
store i8 %t32, ptr %t31
|
|
%t33 = load ptr, ptr %t3
|
|
call i32 @fclose(ptr %t33)
|
|
%t34 = load ptr, ptr %t22
|
|
store ptr %t34, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t35 = load ptr, ptr %retval
|
|
ret ptr %t35
|
|
}
|
|
|
|
define i32 @fn_cstr_len(ptr %arg_s) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_s, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = load i32, ptr %t1
|
|
%t4 = getelementptr inbounds i8, ptr %t2, i32 %t3
|
|
%t5 = load i8, ptr %t4
|
|
%t6 = zext i8 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
%t8 = zext i1 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t10 = load i32, ptr %t1
|
|
%t11 = add i32 %t10, 1
|
|
store i32 %t11, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
%t12 = load i32, ptr %t1
|
|
store i32 %t12, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t13 = load i32, ptr %retval
|
|
ret i32 %t13
|
|
}
|
|
|
|
define ptr @fn_node(i32 %arg_kind) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca i32
|
|
%t13 = alloca ptr
|
|
store i32 %arg_kind, ptr %t0
|
|
%t1 = getelementptr %Cmp_Node, ptr null, i32 1
|
|
%t2 = ptrtoint ptr %t1 to i64
|
|
%t3 = call ptr @malloc(i64 %t2)
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 0
|
|
store i32 0, ptr %t4
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1
|
|
store ptr null, ptr %t5
|
|
%t6 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 2
|
|
store i32 0, ptr %t6
|
|
%t7 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 3
|
|
store ptr null, ptr %t7
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4
|
|
store ptr null, ptr %t8
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 5
|
|
store ptr null, ptr %t9
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 6
|
|
store ptr null, ptr %t10
|
|
%t11 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7
|
|
store ptr null, ptr %t11
|
|
%t12 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 8
|
|
store i32 0, ptr %t12
|
|
store ptr %t3, ptr %t13
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 0
|
|
%t16 = load i32, ptr %t0
|
|
store i32 %t16, ptr %t15
|
|
%t17 = load ptr, ptr %t13
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7
|
|
%t19 = getelementptr %LSlice, ptr null, i32 1
|
|
%t20 = ptrtoint ptr %t19 to i64
|
|
%t21 = call ptr @malloc(i64 %t20)
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0
|
|
store ptr null, ptr %t22
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1
|
|
store i32 0, ptr %t23
|
|
%t24 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 2
|
|
store i32 0, ptr %t24
|
|
store ptr %t21, ptr %t18
|
|
%t25 = load ptr, ptr %t13
|
|
store ptr %t25, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t26 = load ptr, ptr %retval
|
|
ret ptr %t26
|
|
}
|
|
|
|
define void @fn_tok_push(i32 %arg_kind, ptr %arg_text, i32 %arg_ival, i32 %arg_line) {
|
|
entry:
|
|
%t0 = alloca i32
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t11 = alloca ptr
|
|
store i32 %arg_kind, ptr %t0
|
|
store ptr %arg_text, ptr %t1
|
|
store i32 %arg_ival, ptr %t2
|
|
store i32 %arg_line, ptr %t3
|
|
%t4 = getelementptr %Cmp_Tok, ptr null, i32 1
|
|
%t5 = ptrtoint ptr %t4 to i64
|
|
%t6 = call ptr @malloc(i64 %t5)
|
|
%t7 = getelementptr inbounds %Cmp_Tok, ptr %t6, i32 0, i32 0
|
|
store i32 0, ptr %t7
|
|
%t8 = getelementptr inbounds %Cmp_Tok, ptr %t6, i32 0, i32 1
|
|
store ptr null, ptr %t8
|
|
%t9 = getelementptr inbounds %Cmp_Tok, ptr %t6, i32 0, i32 2
|
|
store i32 0, ptr %t9
|
|
%t10 = getelementptr inbounds %Cmp_Tok, ptr %t6, i32 0, i32 3
|
|
store i32 0, ptr %t10
|
|
store ptr %t6, ptr %t11
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = getelementptr inbounds %Cmp_Tok, ptr %t12, i32 0, i32 0
|
|
%t14 = load i32, ptr %t0
|
|
store i32 %t14, ptr %t13
|
|
%t15 = load ptr, ptr %t11
|
|
%t16 = getelementptr inbounds %Cmp_Tok, ptr %t15, i32 0, i32 1
|
|
%t17 = load ptr, ptr %t1
|
|
store ptr %t17, ptr %t16
|
|
%t18 = load ptr, ptr %t11
|
|
%t19 = getelementptr inbounds %Cmp_Tok, ptr %t18, i32 0, i32 2
|
|
%t20 = load i32, ptr %t2
|
|
store i32 %t20, ptr %t19
|
|
%t21 = load ptr, ptr %t11
|
|
%t22 = getelementptr inbounds %Cmp_Tok, ptr %t21, i32 0, i32 3
|
|
%t23 = load i32, ptr %t3
|
|
store i32 %t23, ptr %t22
|
|
%t24 = load ptr, ptr @g_toks
|
|
%t25 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 1
|
|
%t26 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 2
|
|
%t27 = getelementptr inbounds %LSlice, ptr %t24, i32 0, i32 0
|
|
%t28 = load i32, ptr %t25
|
|
%t29 = load i32, ptr %t26
|
|
%t30 = icmp sge i32 %t28, %t29
|
|
br i1 %t30, label %grow0, label %put1
|
|
grow0:
|
|
%t31 = mul i32 %t29, 2
|
|
%t32 = icmp eq i32 %t29, 0
|
|
%t33 = select i1 %t32, i32 8, i32 %t31
|
|
%t34 = getelementptr ptr, ptr null, i32 1
|
|
%t35 = ptrtoint ptr %t34 to i64
|
|
%t36 = zext i32 %t33 to i64
|
|
%t37 = mul i64 %t36, %t35
|
|
%t38 = load ptr, ptr %t27
|
|
%t39 = call ptr @realloc(ptr %t38, i64 %t37)
|
|
store ptr %t39, ptr %t27
|
|
store i32 %t33, ptr %t26
|
|
br label %put1
|
|
put1:
|
|
%t40 = load ptr, ptr %t11
|
|
%t41 = load ptr, ptr %t27
|
|
%t42 = getelementptr inbounds ptr, ptr %t41, i32 %t28
|
|
store ptr %t40, ptr %t42
|
|
%t43 = add i32 %t28, 1
|
|
store i32 %t43, ptr %t25
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_two_at(ptr %arg_src, i32 %arg_i, i32 %arg_a, i32 %arg_b) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t4 = alloca i32
|
|
store ptr %arg_src, ptr %t0
|
|
store i32 %arg_i, ptr %t1
|
|
store i32 %arg_a, ptr %t2
|
|
store i32 %arg_b, ptr %t3
|
|
%t5 = load ptr, ptr %t0
|
|
%t6 = load i32, ptr %t1
|
|
%t7 = getelementptr inbounds i8, ptr %t5, i32 %t6
|
|
%t8 = load i8, ptr %t7
|
|
%t9 = zext i8 %t8 to i32
|
|
%t10 = load i32, ptr %t2
|
|
%t11 = icmp eq i32 %t9, %t10
|
|
%t12 = zext i1 %t11 to i32
|
|
%t13 = icmp ne i32 %t12, 0
|
|
%t14 = zext i1 %t13 to i32
|
|
store i32 %t14, ptr %t4
|
|
br i1 %t13, label %sc0, label %scend1
|
|
sc0:
|
|
%t15 = load ptr, ptr %t0
|
|
%t16 = load i32, ptr %t1
|
|
%t17 = add i32 %t16, 1
|
|
%t18 = getelementptr inbounds i8, ptr %t15, i32 %t17
|
|
%t19 = load i8, ptr %t18
|
|
%t20 = zext i8 %t19 to i32
|
|
%t21 = load i32, ptr %t3
|
|
%t22 = icmp eq i32 %t20, %t21
|
|
%t23 = zext i1 %t22 to i32
|
|
%t24 = icmp ne i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
store i32 %t25, ptr %t4
|
|
br label %scend1
|
|
scend1:
|
|
%t26 = load i32, ptr %t4
|
|
store i32 %t26, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t27 = load i32, ptr %retval
|
|
ret i32 %t27
|
|
}
|
|
|
|
define i32 @fn_is_op1(i32 %arg_c) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
%t1 = alloca i32
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t4 = alloca i32
|
|
%t41 = alloca i32
|
|
%t42 = alloca i32
|
|
%t63 = alloca i32
|
|
%t64 = alloca i32
|
|
%t65 = alloca i32
|
|
%t94 = alloca i32
|
|
%t95 = alloca i32
|
|
%t96 = alloca i32
|
|
%t97 = alloca i32
|
|
%t134 = alloca i32
|
|
%t147 = alloca i32
|
|
%t148 = alloca i32
|
|
%t149 = alloca i32
|
|
store i32 %arg_c, ptr %t0
|
|
%t5 = load i32, ptr %t0
|
|
%t6 = icmp eq i32 %t5, 43
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
store i32 %t9, ptr %t4
|
|
br i1 %t8, label %scend1, label %sc0
|
|
sc0:
|
|
%t10 = load i32, ptr %t0
|
|
%t11 = icmp eq i32 %t10, 45
|
|
%t12 = zext i1 %t11 to i32
|
|
%t13 = icmp ne i32 %t12, 0
|
|
%t14 = zext i1 %t13 to i32
|
|
store i32 %t14, ptr %t4
|
|
br label %scend1
|
|
scend1:
|
|
%t15 = load i32, ptr %t4
|
|
%t16 = icmp ne i32 %t15, 0
|
|
%t17 = zext i1 %t16 to i32
|
|
store i32 %t17, ptr %t3
|
|
br i1 %t16, label %scend3, label %sc2
|
|
sc2:
|
|
%t18 = load i32, ptr %t0
|
|
%t19 = icmp eq i32 %t18, 42
|
|
%t20 = zext i1 %t19 to i32
|
|
%t21 = icmp ne i32 %t20, 0
|
|
%t22 = zext i1 %t21 to i32
|
|
store i32 %t22, ptr %t3
|
|
br label %scend3
|
|
scend3:
|
|
%t23 = load i32, ptr %t3
|
|
%t24 = icmp ne i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
store i32 %t25, ptr %t2
|
|
br i1 %t24, label %scend5, label %sc4
|
|
sc4:
|
|
%t26 = load i32, ptr %t0
|
|
%t27 = icmp eq i32 %t26, 47
|
|
%t28 = zext i1 %t27 to i32
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
store i32 %t30, ptr %t2
|
|
br label %scend5
|
|
scend5:
|
|
%t31 = load i32, ptr %t2
|
|
%t32 = icmp ne i32 %t31, 0
|
|
%t33 = zext i1 %t32 to i32
|
|
store i32 %t33, ptr %t1
|
|
br i1 %t32, label %scend7, label %sc6
|
|
sc6:
|
|
%t34 = load i32, ptr %t0
|
|
%t35 = icmp eq i32 %t34, 37
|
|
%t36 = zext i1 %t35 to i32
|
|
%t37 = icmp ne i32 %t36, 0
|
|
%t38 = zext i1 %t37 to i32
|
|
store i32 %t38, ptr %t1
|
|
br label %scend7
|
|
scend7:
|
|
%t39 = load i32, ptr %t1
|
|
%t40 = icmp ne i32 %t39, 0
|
|
br i1 %t40, label %then8, label %ifend10
|
|
then8:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend10:
|
|
%t43 = load i32, ptr %t0
|
|
%t44 = icmp eq i32 %t43, 60
|
|
%t45 = zext i1 %t44 to i32
|
|
%t46 = icmp ne i32 %t45, 0
|
|
%t47 = zext i1 %t46 to i32
|
|
store i32 %t47, ptr %t42
|
|
br i1 %t46, label %scend12, label %sc11
|
|
sc11:
|
|
%t48 = load i32, ptr %t0
|
|
%t49 = icmp eq i32 %t48, 62
|
|
%t50 = zext i1 %t49 to i32
|
|
%t51 = icmp ne i32 %t50, 0
|
|
%t52 = zext i1 %t51 to i32
|
|
store i32 %t52, ptr %t42
|
|
br label %scend12
|
|
scend12:
|
|
%t53 = load i32, ptr %t42
|
|
%t54 = icmp ne i32 %t53, 0
|
|
%t55 = zext i1 %t54 to i32
|
|
store i32 %t55, ptr %t41
|
|
br i1 %t54, label %scend14, label %sc13
|
|
sc13:
|
|
%t56 = load i32, ptr %t0
|
|
%t57 = icmp eq i32 %t56, 61
|
|
%t58 = zext i1 %t57 to i32
|
|
%t59 = icmp ne i32 %t58, 0
|
|
%t60 = zext i1 %t59 to i32
|
|
store i32 %t60, ptr %t41
|
|
br label %scend14
|
|
scend14:
|
|
%t61 = load i32, ptr %t41
|
|
%t62 = icmp ne i32 %t61, 0
|
|
br i1 %t62, label %then15, label %ifend17
|
|
then15:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend17:
|
|
%t66 = load i32, ptr %t0
|
|
%t67 = icmp eq i32 %t66, 40
|
|
%t68 = zext i1 %t67 to i32
|
|
%t69 = icmp ne i32 %t68, 0
|
|
%t70 = zext i1 %t69 to i32
|
|
store i32 %t70, ptr %t65
|
|
br i1 %t69, label %scend19, label %sc18
|
|
sc18:
|
|
%t71 = load i32, ptr %t0
|
|
%t72 = icmp eq i32 %t71, 41
|
|
%t73 = zext i1 %t72 to i32
|
|
%t74 = icmp ne i32 %t73, 0
|
|
%t75 = zext i1 %t74 to i32
|
|
store i32 %t75, ptr %t65
|
|
br label %scend19
|
|
scend19:
|
|
%t76 = load i32, ptr %t65
|
|
%t77 = icmp ne i32 %t76, 0
|
|
%t78 = zext i1 %t77 to i32
|
|
store i32 %t78, ptr %t64
|
|
br i1 %t77, label %scend21, label %sc20
|
|
sc20:
|
|
%t79 = load i32, ptr %t0
|
|
%t80 = icmp eq i32 %t79, 123
|
|
%t81 = zext i1 %t80 to i32
|
|
%t82 = icmp ne i32 %t81, 0
|
|
%t83 = zext i1 %t82 to i32
|
|
store i32 %t83, ptr %t64
|
|
br label %scend21
|
|
scend21:
|
|
%t84 = load i32, ptr %t64
|
|
%t85 = icmp ne i32 %t84, 0
|
|
%t86 = zext i1 %t85 to i32
|
|
store i32 %t86, ptr %t63
|
|
br i1 %t85, label %scend23, label %sc22
|
|
sc22:
|
|
%t87 = load i32, ptr %t0
|
|
%t88 = icmp eq i32 %t87, 125
|
|
%t89 = zext i1 %t88 to i32
|
|
%t90 = icmp ne i32 %t89, 0
|
|
%t91 = zext i1 %t90 to i32
|
|
store i32 %t91, ptr %t63
|
|
br label %scend23
|
|
scend23:
|
|
%t92 = load i32, ptr %t63
|
|
%t93 = icmp ne i32 %t92, 0
|
|
br i1 %t93, label %then24, label %ifend26
|
|
then24:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend26:
|
|
%t98 = load i32, ptr %t0
|
|
%t99 = icmp eq i32 %t98, 91
|
|
%t100 = zext i1 %t99 to i32
|
|
%t101 = icmp ne i32 %t100, 0
|
|
%t102 = zext i1 %t101 to i32
|
|
store i32 %t102, ptr %t97
|
|
br i1 %t101, label %scend28, label %sc27
|
|
sc27:
|
|
%t103 = load i32, ptr %t0
|
|
%t104 = icmp eq i32 %t103, 93
|
|
%t105 = zext i1 %t104 to i32
|
|
%t106 = icmp ne i32 %t105, 0
|
|
%t107 = zext i1 %t106 to i32
|
|
store i32 %t107, ptr %t97
|
|
br label %scend28
|
|
scend28:
|
|
%t108 = load i32, ptr %t97
|
|
%t109 = icmp ne i32 %t108, 0
|
|
%t110 = zext i1 %t109 to i32
|
|
store i32 %t110, ptr %t96
|
|
br i1 %t109, label %scend30, label %sc29
|
|
sc29:
|
|
%t111 = load i32, ptr %t0
|
|
%t112 = icmp eq i32 %t111, 44
|
|
%t113 = zext i1 %t112 to i32
|
|
%t114 = icmp ne i32 %t113, 0
|
|
%t115 = zext i1 %t114 to i32
|
|
store i32 %t115, ptr %t96
|
|
br label %scend30
|
|
scend30:
|
|
%t116 = load i32, ptr %t96
|
|
%t117 = icmp ne i32 %t116, 0
|
|
%t118 = zext i1 %t117 to i32
|
|
store i32 %t118, ptr %t95
|
|
br i1 %t117, label %scend32, label %sc31
|
|
sc31:
|
|
%t119 = load i32, ptr %t0
|
|
%t120 = icmp eq i32 %t119, 58
|
|
%t121 = zext i1 %t120 to i32
|
|
%t122 = icmp ne i32 %t121, 0
|
|
%t123 = zext i1 %t122 to i32
|
|
store i32 %t123, ptr %t95
|
|
br label %scend32
|
|
scend32:
|
|
%t124 = load i32, ptr %t95
|
|
%t125 = icmp ne i32 %t124, 0
|
|
%t126 = zext i1 %t125 to i32
|
|
store i32 %t126, ptr %t94
|
|
br i1 %t125, label %scend34, label %sc33
|
|
sc33:
|
|
%t127 = load i32, ptr %t0
|
|
%t128 = icmp eq i32 %t127, 46
|
|
%t129 = zext i1 %t128 to i32
|
|
%t130 = icmp ne i32 %t129, 0
|
|
%t131 = zext i1 %t130 to i32
|
|
store i32 %t131, ptr %t94
|
|
br label %scend34
|
|
scend34:
|
|
%t132 = load i32, ptr %t94
|
|
%t133 = icmp ne i32 %t132, 0
|
|
br i1 %t133, label %then35, label %ifend37
|
|
then35:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend37:
|
|
%t135 = load i32, ptr %t0
|
|
%t136 = icmp eq i32 %t135, 33
|
|
%t137 = zext i1 %t136 to i32
|
|
%t138 = icmp ne i32 %t137, 0
|
|
%t139 = zext i1 %t138 to i32
|
|
store i32 %t139, ptr %t134
|
|
br i1 %t138, label %scend39, label %sc38
|
|
sc38:
|
|
%t140 = load i32, ptr %t0
|
|
%t141 = icmp eq i32 %t140, 64
|
|
%t142 = zext i1 %t141 to i32
|
|
%t143 = icmp ne i32 %t142, 0
|
|
%t144 = zext i1 %t143 to i32
|
|
store i32 %t144, ptr %t134
|
|
br label %scend39
|
|
scend39:
|
|
%t145 = load i32, ptr %t134
|
|
%t146 = icmp ne i32 %t145, 0
|
|
br i1 %t146, label %then40, label %ifend42
|
|
then40:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend42:
|
|
%t150 = load i32, ptr %t0
|
|
%t151 = icmp eq i32 %t150, 38
|
|
%t152 = zext i1 %t151 to i32
|
|
%t153 = icmp ne i32 %t152, 0
|
|
%t154 = zext i1 %t153 to i32
|
|
store i32 %t154, ptr %t149
|
|
br i1 %t153, label %scend44, label %sc43
|
|
sc43:
|
|
%t155 = load i32, ptr %t0
|
|
%t156 = icmp eq i32 %t155, 124
|
|
%t157 = zext i1 %t156 to i32
|
|
%t158 = icmp ne i32 %t157, 0
|
|
%t159 = zext i1 %t158 to i32
|
|
store i32 %t159, ptr %t149
|
|
br label %scend44
|
|
scend44:
|
|
%t160 = load i32, ptr %t149
|
|
%t161 = icmp ne i32 %t160, 0
|
|
%t162 = zext i1 %t161 to i32
|
|
store i32 %t162, ptr %t148
|
|
br i1 %t161, label %scend46, label %sc45
|
|
sc45:
|
|
%t163 = load i32, ptr %t0
|
|
%t164 = icmp eq i32 %t163, 94
|
|
%t165 = zext i1 %t164 to i32
|
|
%t166 = icmp ne i32 %t165, 0
|
|
%t167 = zext i1 %t166 to i32
|
|
store i32 %t167, ptr %t148
|
|
br label %scend46
|
|
scend46:
|
|
%t168 = load i32, ptr %t148
|
|
%t169 = icmp ne i32 %t168, 0
|
|
%t170 = zext i1 %t169 to i32
|
|
store i32 %t170, ptr %t147
|
|
br i1 %t169, label %scend48, label %sc47
|
|
sc47:
|
|
%t171 = load i32, ptr %t0
|
|
%t172 = icmp eq i32 %t171, 126
|
|
%t173 = zext i1 %t172 to i32
|
|
%t174 = icmp ne i32 %t173, 0
|
|
%t175 = zext i1 %t174 to i32
|
|
store i32 %t175, ptr %t147
|
|
br label %scend48
|
|
scend48:
|
|
%t176 = load i32, ptr %t147
|
|
%t177 = icmp ne i32 %t176, 0
|
|
br i1 %t177, label %then49, label %ifend51
|
|
then49:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend51:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t178 = load i32, ptr %retval
|
|
ret i32 %t178
|
|
}
|
|
|
|
define void @fn_lex(ptr %arg_src) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t7 = alloca i32
|
|
%t8 = alloca i32
|
|
%t12 = alloca i32
|
|
%t23 = alloca i32
|
|
%t33 = alloca i32
|
|
%t34 = alloca i32
|
|
%t61 = alloca i32
|
|
%t88 = alloca i32
|
|
%t92 = alloca ptr
|
|
%t93 = alloca i32
|
|
%t94 = alloca i32
|
|
%t126 = alloca i32
|
|
%t128 = alloca i32
|
|
%t180 = alloca ptr
|
|
%t181 = alloca i32
|
|
%t182 = alloca i32
|
|
%t227 = alloca i32
|
|
%t242 = alloca i32
|
|
%t279 = alloca i32
|
|
%t297 = alloca i32
|
|
%t310 = alloca i32
|
|
%t311 = alloca i32
|
|
%t317 = alloca i32
|
|
%t332 = alloca i32
|
|
%t355 = alloca i32
|
|
%t356 = alloca i32
|
|
%t384 = alloca i32
|
|
%t385 = alloca i32
|
|
%t417 = alloca i32
|
|
%t418 = alloca i32
|
|
%t419 = alloca i32
|
|
%t456 = alloca i32
|
|
%t465 = alloca i32
|
|
%t466 = alloca i32
|
|
store ptr %arg_src, ptr %t0
|
|
%t1 = getelementptr %LSlice, ptr null, i32 1
|
|
%t2 = ptrtoint ptr %t1 to i64
|
|
%t3 = call ptr @malloc(i64 %t2)
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0
|
|
store ptr null, ptr %t4
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
store i32 0, ptr %t5
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2
|
|
store i32 0, ptr %t6
|
|
store ptr %t3, ptr @g_toks
|
|
store i32 0, ptr %t7
|
|
store i32 1, ptr %t8
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = call i64 @strlen(ptr %t9)
|
|
%t11 = trunc i64 %t10 to i32
|
|
store i32 %t11, ptr %t12
|
|
br label %wcond0
|
|
wcond0:
|
|
%t13 = load i32, ptr %t7
|
|
%t14 = load i32, ptr %t12
|
|
%t15 = icmp slt i32 %t13, %t14
|
|
%t16 = zext i1 %t15 to i32
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t18 = load ptr, ptr %t0
|
|
%t19 = load i32, ptr %t7
|
|
%t20 = getelementptr inbounds i8, ptr %t18, i32 %t19
|
|
%t21 = load i8, ptr %t20
|
|
%t22 = zext i8 %t21 to i32
|
|
store i32 %t22, ptr %t23
|
|
%t24 = load i32, ptr %t23
|
|
%t25 = icmp eq i32 %t24, 10
|
|
%t26 = zext i1 %t25 to i32
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %then3, label %ifend5
|
|
then3:
|
|
%t28 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 4, ptr null, i32 0, i32 %t28)
|
|
%t29 = load i32, ptr %t8
|
|
%t30 = add i32 %t29, 1
|
|
store i32 %t30, ptr %t8
|
|
%t31 = load i32, ptr %t7
|
|
%t32 = add i32 %t31, 1
|
|
store i32 %t32, ptr %t7
|
|
br label %wcond0
|
|
ifend5:
|
|
%t35 = load i32, ptr %t23
|
|
%t36 = icmp eq i32 %t35, 32
|
|
%t37 = zext i1 %t36 to i32
|
|
%t38 = icmp ne i32 %t37, 0
|
|
%t39 = zext i1 %t38 to i32
|
|
store i32 %t39, ptr %t34
|
|
br i1 %t38, label %scend7, label %sc6
|
|
sc6:
|
|
%t40 = load i32, ptr %t23
|
|
%t41 = icmp eq i32 %t40, 9
|
|
%t42 = zext i1 %t41 to i32
|
|
%t43 = icmp ne i32 %t42, 0
|
|
%t44 = zext i1 %t43 to i32
|
|
store i32 %t44, ptr %t34
|
|
br label %scend7
|
|
scend7:
|
|
%t45 = load i32, ptr %t34
|
|
%t46 = icmp ne i32 %t45, 0
|
|
%t47 = zext i1 %t46 to i32
|
|
store i32 %t47, ptr %t33
|
|
br i1 %t46, label %scend9, label %sc8
|
|
sc8:
|
|
%t48 = load i32, ptr %t23
|
|
%t49 = icmp eq i32 %t48, 13
|
|
%t50 = zext i1 %t49 to i32
|
|
%t51 = icmp ne i32 %t50, 0
|
|
%t52 = zext i1 %t51 to i32
|
|
store i32 %t52, ptr %t33
|
|
br label %scend9
|
|
scend9:
|
|
%t53 = load i32, ptr %t33
|
|
%t54 = icmp ne i32 %t53, 0
|
|
br i1 %t54, label %then10, label %ifend12
|
|
then10:
|
|
%t55 = load i32, ptr %t7
|
|
%t56 = add i32 %t55, 1
|
|
store i32 %t56, ptr %t7
|
|
br label %wcond0
|
|
ifend12:
|
|
%t57 = load i32, ptr %t23
|
|
%t58 = icmp eq i32 %t57, 35
|
|
%t59 = zext i1 %t58 to i32
|
|
%t60 = icmp ne i32 %t59, 0
|
|
br i1 %t60, label %then13, label %ifend15
|
|
then13:
|
|
br label %wcond16
|
|
wcond16:
|
|
%t62 = load i32, ptr %t7
|
|
%t63 = load i32, ptr %t12
|
|
%t64 = icmp slt i32 %t62, %t63
|
|
%t65 = zext i1 %t64 to i32
|
|
%t66 = icmp ne i32 %t65, 0
|
|
%t67 = zext i1 %t66 to i32
|
|
store i32 %t67, ptr %t61
|
|
br i1 %t66, label %sc19, label %scend20
|
|
sc19:
|
|
%t68 = load ptr, ptr %t0
|
|
%t69 = load i32, ptr %t7
|
|
%t70 = getelementptr inbounds i8, ptr %t68, i32 %t69
|
|
%t71 = load i8, ptr %t70
|
|
%t72 = zext i8 %t71 to i32
|
|
%t73 = icmp ne i32 %t72, 10
|
|
%t74 = zext i1 %t73 to i32
|
|
%t75 = icmp ne i32 %t74, 0
|
|
%t76 = zext i1 %t75 to i32
|
|
store i32 %t76, ptr %t61
|
|
br label %scend20
|
|
scend20:
|
|
%t77 = load i32, ptr %t61
|
|
%t78 = icmp ne i32 %t77, 0
|
|
br i1 %t78, label %wbody17, label %wend18
|
|
wbody17:
|
|
%t79 = load i32, ptr %t7
|
|
%t80 = add i32 %t79, 1
|
|
store i32 %t80, ptr %t7
|
|
br label %wcond16
|
|
wend18:
|
|
br label %wcond0
|
|
ifend15:
|
|
%t81 = load i32, ptr %t23
|
|
%t82 = icmp eq i32 %t81, 34
|
|
%t83 = zext i1 %t82 to i32
|
|
%t84 = icmp ne i32 %t83, 0
|
|
br i1 %t84, label %then21, label %ifend23
|
|
then21:
|
|
%t85 = load i32, ptr %t7
|
|
%t86 = add i32 %t85, 1
|
|
store i32 %t86, ptr %t7
|
|
%t87 = load i32, ptr %t7
|
|
store i32 %t87, ptr %t88
|
|
%t89 = load i32, ptr %t12
|
|
%t90 = zext i32 %t89 to i64
|
|
%t91 = call ptr @malloc(i64 %t90)
|
|
store ptr %t91, ptr %t92
|
|
store i32 0, ptr %t93
|
|
br label %wcond24
|
|
wcond24:
|
|
%t95 = load i32, ptr %t7
|
|
%t96 = load i32, ptr %t12
|
|
%t97 = icmp slt i32 %t95, %t96
|
|
%t98 = zext i1 %t97 to i32
|
|
%t99 = icmp ne i32 %t98, 0
|
|
%t100 = zext i1 %t99 to i32
|
|
store i32 %t100, ptr %t94
|
|
br i1 %t99, label %sc27, label %scend28
|
|
sc27:
|
|
%t101 = load ptr, ptr %t0
|
|
%t102 = load i32, ptr %t7
|
|
%t103 = getelementptr inbounds i8, ptr %t101, i32 %t102
|
|
%t104 = load i8, ptr %t103
|
|
%t105 = zext i8 %t104 to i32
|
|
%t106 = icmp ne i32 %t105, 34
|
|
%t107 = zext i1 %t106 to i32
|
|
%t108 = icmp ne i32 %t107, 0
|
|
%t109 = zext i1 %t108 to i32
|
|
store i32 %t109, ptr %t94
|
|
br label %scend28
|
|
scend28:
|
|
%t110 = load i32, ptr %t94
|
|
%t111 = icmp ne i32 %t110, 0
|
|
br i1 %t111, label %wbody25, label %wend26
|
|
wbody25:
|
|
%t112 = load ptr, ptr %t0
|
|
%t113 = load i32, ptr %t7
|
|
%t114 = getelementptr inbounds i8, ptr %t112, i32 %t113
|
|
%t115 = load i8, ptr %t114
|
|
%t116 = zext i8 %t115 to i32
|
|
%t117 = icmp eq i32 %t116, 92
|
|
%t118 = zext i1 %t117 to i32
|
|
%t119 = icmp ne i32 %t118, 0
|
|
br i1 %t119, label %then29, label %else30
|
|
then29:
|
|
%t120 = load ptr, ptr %t0
|
|
%t121 = load i32, ptr %t7
|
|
%t122 = add i32 %t121, 1
|
|
%t123 = getelementptr inbounds i8, ptr %t120, i32 %t122
|
|
%t124 = load i8, ptr %t123
|
|
%t125 = zext i8 %t124 to i32
|
|
store i32 %t125, ptr %t126
|
|
%t127 = load i32, ptr %t126
|
|
store i32 %t127, ptr %t128
|
|
%t129 = load i32, ptr %t126
|
|
%t130 = icmp eq i32 %t129, 110
|
|
%t131 = zext i1 %t130 to i32
|
|
%t132 = icmp ne i32 %t131, 0
|
|
br i1 %t132, label %then32, label %ifend34
|
|
then32:
|
|
store i32 10, ptr %t128
|
|
br label %ifend34
|
|
ifend34:
|
|
%t133 = load i32, ptr %t126
|
|
%t134 = icmp eq i32 %t133, 116
|
|
%t135 = zext i1 %t134 to i32
|
|
%t136 = icmp ne i32 %t135, 0
|
|
br i1 %t136, label %then35, label %ifend37
|
|
then35:
|
|
store i32 9, ptr %t128
|
|
br label %ifend37
|
|
ifend37:
|
|
%t137 = load i32, ptr %t126
|
|
%t138 = icmp eq i32 %t137, 48
|
|
%t139 = zext i1 %t138 to i32
|
|
%t140 = icmp ne i32 %t139, 0
|
|
br i1 %t140, label %then38, label %ifend40
|
|
then38:
|
|
store i32 0, ptr %t128
|
|
br label %ifend40
|
|
ifend40:
|
|
%t141 = load ptr, ptr %t92
|
|
%t142 = load i32, ptr %t93
|
|
%t143 = getelementptr inbounds i8, ptr %t141, i32 %t142
|
|
%t144 = load i32, ptr %t128
|
|
%t145 = trunc i32 %t144 to i8
|
|
store i8 %t145, ptr %t143
|
|
%t146 = load i32, ptr %t93
|
|
%t147 = add i32 %t146, 1
|
|
store i32 %t147, ptr %t93
|
|
%t148 = load i32, ptr %t7
|
|
%t149 = add i32 %t148, 2
|
|
store i32 %t149, ptr %t7
|
|
br label %ifend31
|
|
else30:
|
|
%t150 = load ptr, ptr %t92
|
|
%t151 = load i32, ptr %t93
|
|
%t152 = getelementptr inbounds i8, ptr %t150, i32 %t151
|
|
%t153 = load ptr, ptr %t0
|
|
%t154 = load i32, ptr %t7
|
|
%t155 = getelementptr inbounds i8, ptr %t153, i32 %t154
|
|
%t156 = load i8, ptr %t155
|
|
%t157 = zext i8 %t156 to i32
|
|
%t158 = trunc i32 %t157 to i8
|
|
store i8 %t158, ptr %t152
|
|
%t159 = load i32, ptr %t93
|
|
%t160 = add i32 %t159, 1
|
|
store i32 %t160, ptr %t93
|
|
%t161 = load i32, ptr %t7
|
|
%t162 = add i32 %t161, 1
|
|
store i32 %t162, ptr %t7
|
|
br label %ifend31
|
|
ifend31:
|
|
br label %wcond24
|
|
wend26:
|
|
%t163 = load i32, ptr %t7
|
|
%t164 = add i32 %t163, 1
|
|
store i32 %t164, ptr %t7
|
|
%t165 = load ptr, ptr %t92
|
|
%t166 = load i32, ptr %t93
|
|
%t167 = getelementptr inbounds i8, ptr %t165, i32 %t166
|
|
%t168 = trunc i32 0 to i8
|
|
store i8 %t168, ptr %t167
|
|
%t169 = load ptr, ptr %t92
|
|
%t170 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 2, ptr %t169, i32 0, i32 %t170)
|
|
br label %wcond0
|
|
ifend23:
|
|
%t171 = load i32, ptr %t23
|
|
%t172 = icmp eq i32 %t171, 96
|
|
%t173 = zext i1 %t172 to i32
|
|
%t174 = icmp ne i32 %t173, 0
|
|
br i1 %t174, label %then41, label %ifend43
|
|
then41:
|
|
%t175 = load i32, ptr %t7
|
|
%t176 = add i32 %t175, 1
|
|
store i32 %t176, ptr %t7
|
|
%t177 = load i32, ptr %t12
|
|
%t178 = zext i32 %t177 to i64
|
|
%t179 = call ptr @malloc(i64 %t178)
|
|
store ptr %t179, ptr %t180
|
|
store i32 0, ptr %t181
|
|
br label %wcond44
|
|
wcond44:
|
|
%t183 = load i32, ptr %t7
|
|
%t184 = load i32, ptr %t12
|
|
%t185 = icmp slt i32 %t183, %t184
|
|
%t186 = zext i1 %t185 to i32
|
|
%t187 = icmp ne i32 %t186, 0
|
|
%t188 = zext i1 %t187 to i32
|
|
store i32 %t188, ptr %t182
|
|
br i1 %t187, label %sc47, label %scend48
|
|
sc47:
|
|
%t189 = load ptr, ptr %t0
|
|
%t190 = load i32, ptr %t7
|
|
%t191 = getelementptr inbounds i8, ptr %t189, i32 %t190
|
|
%t192 = load i8, ptr %t191
|
|
%t193 = zext i8 %t192 to i32
|
|
%t194 = icmp ne i32 %t193, 96
|
|
%t195 = zext i1 %t194 to i32
|
|
%t196 = icmp ne i32 %t195, 0
|
|
%t197 = zext i1 %t196 to i32
|
|
store i32 %t197, ptr %t182
|
|
br label %scend48
|
|
scend48:
|
|
%t198 = load i32, ptr %t182
|
|
%t199 = icmp ne i32 %t198, 0
|
|
br i1 %t199, label %wbody45, label %wend46
|
|
wbody45:
|
|
%t200 = load ptr, ptr %t180
|
|
%t201 = load i32, ptr %t181
|
|
%t202 = getelementptr inbounds i8, ptr %t200, i32 %t201
|
|
%t203 = load ptr, ptr %t0
|
|
%t204 = load i32, ptr %t7
|
|
%t205 = getelementptr inbounds i8, ptr %t203, i32 %t204
|
|
%t206 = load i8, ptr %t205
|
|
%t207 = zext i8 %t206 to i32
|
|
%t208 = trunc i32 %t207 to i8
|
|
store i8 %t208, ptr %t202
|
|
%t209 = load i32, ptr %t181
|
|
%t210 = add i32 %t209, 1
|
|
store i32 %t210, ptr %t181
|
|
%t211 = load i32, ptr %t7
|
|
%t212 = add i32 %t211, 1
|
|
store i32 %t212, ptr %t7
|
|
br label %wcond44
|
|
wend46:
|
|
%t213 = load i32, ptr %t7
|
|
%t214 = add i32 %t213, 1
|
|
store i32 %t214, ptr %t7
|
|
%t215 = load ptr, ptr %t180
|
|
%t216 = load i32, ptr %t181
|
|
%t217 = getelementptr inbounds i8, ptr %t215, i32 %t216
|
|
%t218 = trunc i32 0 to i8
|
|
store i8 %t218, ptr %t217
|
|
%t219 = load ptr, ptr %t180
|
|
%t220 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 7, ptr %t219, i32 0, i32 %t220)
|
|
br label %wcond0
|
|
ifend43:
|
|
%t221 = load i32, ptr %t23
|
|
%t222 = icmp eq i32 %t221, 39
|
|
%t223 = zext i1 %t222 to i32
|
|
%t224 = icmp ne i32 %t223, 0
|
|
br i1 %t224, label %then49, label %ifend51
|
|
then49:
|
|
%t225 = load i32, ptr %t7
|
|
%t226 = add i32 %t225, 1
|
|
store i32 %t226, ptr %t7
|
|
store i32 0, ptr %t227
|
|
%t228 = load ptr, ptr %t0
|
|
%t229 = load i32, ptr %t7
|
|
%t230 = getelementptr inbounds i8, ptr %t228, i32 %t229
|
|
%t231 = load i8, ptr %t230
|
|
%t232 = zext i8 %t231 to i32
|
|
%t233 = icmp eq i32 %t232, 92
|
|
%t234 = zext i1 %t233 to i32
|
|
%t235 = icmp ne i32 %t234, 0
|
|
br i1 %t235, label %then52, label %else53
|
|
then52:
|
|
%t236 = load ptr, ptr %t0
|
|
%t237 = load i32, ptr %t7
|
|
%t238 = add i32 %t237, 1
|
|
%t239 = getelementptr inbounds i8, ptr %t236, i32 %t238
|
|
%t240 = load i8, ptr %t239
|
|
%t241 = zext i8 %t240 to i32
|
|
store i32 %t241, ptr %t242
|
|
%t243 = load i32, ptr %t242
|
|
%t244 = icmp eq i32 %t243, 110
|
|
%t245 = zext i1 %t244 to i32
|
|
%t246 = icmp ne i32 %t245, 0
|
|
br i1 %t246, label %then55, label %ifend57
|
|
then55:
|
|
store i32 10, ptr %t227
|
|
br label %ifend57
|
|
ifend57:
|
|
%t247 = load i32, ptr %t242
|
|
%t248 = icmp eq i32 %t247, 116
|
|
%t249 = zext i1 %t248 to i32
|
|
%t250 = icmp ne i32 %t249, 0
|
|
br i1 %t250, label %then58, label %ifend60
|
|
then58:
|
|
store i32 9, ptr %t227
|
|
br label %ifend60
|
|
ifend60:
|
|
%t251 = load i32, ptr %t242
|
|
%t252 = icmp eq i32 %t251, 48
|
|
%t253 = zext i1 %t252 to i32
|
|
%t254 = icmp ne i32 %t253, 0
|
|
br i1 %t254, label %then61, label %ifend63
|
|
then61:
|
|
store i32 0, ptr %t227
|
|
br label %ifend63
|
|
ifend63:
|
|
%t255 = load i32, ptr %t7
|
|
%t256 = add i32 %t255, 2
|
|
store i32 %t256, ptr %t7
|
|
br label %ifend54
|
|
else53:
|
|
%t257 = load ptr, ptr %t0
|
|
%t258 = load i32, ptr %t7
|
|
%t259 = getelementptr inbounds i8, ptr %t257, i32 %t258
|
|
%t260 = load i8, ptr %t259
|
|
%t261 = zext i8 %t260 to i32
|
|
store i32 %t261, ptr %t227
|
|
%t262 = load i32, ptr %t7
|
|
%t263 = add i32 %t262, 1
|
|
store i32 %t263, ptr %t7
|
|
br label %ifend54
|
|
ifend54:
|
|
%t264 = load ptr, ptr %t0
|
|
%t265 = load i32, ptr %t7
|
|
%t266 = getelementptr inbounds i8, ptr %t264, i32 %t265
|
|
%t267 = load i8, ptr %t266
|
|
%t268 = zext i8 %t267 to i32
|
|
%t269 = icmp eq i32 %t268, 39
|
|
%t270 = zext i1 %t269 to i32
|
|
%t271 = icmp ne i32 %t270, 0
|
|
br i1 %t271, label %then64, label %ifend66
|
|
then64:
|
|
%t272 = load i32, ptr %t7
|
|
%t273 = add i32 %t272, 1
|
|
store i32 %t273, ptr %t7
|
|
br label %ifend66
|
|
ifend66:
|
|
%t274 = load i32, ptr %t227
|
|
%t275 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 1, ptr null, i32 %t274, i32 %t275)
|
|
br label %wcond0
|
|
ifend51:
|
|
%t276 = load i32, ptr %t23
|
|
%t277 = call i32 @fn_char_is_digit(i32 %t276)
|
|
%t278 = icmp ne i32 %t277, 0
|
|
br i1 %t278, label %then67, label %ifend69
|
|
then67:
|
|
%t280 = load i32, ptr %t23
|
|
%t281 = icmp eq i32 %t280, 48
|
|
%t282 = zext i1 %t281 to i32
|
|
%t283 = icmp ne i32 %t282, 0
|
|
%t284 = zext i1 %t283 to i32
|
|
store i32 %t284, ptr %t279
|
|
br i1 %t283, label %sc70, label %scend71
|
|
sc70:
|
|
%t285 = load ptr, ptr %t0
|
|
%t286 = load i32, ptr %t7
|
|
%t287 = add i32 %t286, 1
|
|
%t288 = getelementptr inbounds i8, ptr %t285, i32 %t287
|
|
%t289 = load i8, ptr %t288
|
|
%t290 = zext i8 %t289 to i32
|
|
%t291 = icmp eq i32 %t290, 120
|
|
%t292 = zext i1 %t291 to i32
|
|
%t293 = icmp ne i32 %t292, 0
|
|
%t294 = zext i1 %t293 to i32
|
|
store i32 %t294, ptr %t279
|
|
br label %scend71
|
|
scend71:
|
|
%t295 = load i32, ptr %t279
|
|
%t296 = icmp ne i32 %t295, 0
|
|
br i1 %t296, label %then72, label %ifend74
|
|
then72:
|
|
store i32 0, ptr %t297
|
|
%t298 = load i32, ptr %t7
|
|
%t299 = add i32 %t298, 2
|
|
store i32 %t299, ptr %t7
|
|
br label %wcond75
|
|
wcond75:
|
|
%t300 = load i32, ptr %t7
|
|
%t301 = load i32, ptr %t12
|
|
%t302 = icmp slt i32 %t300, %t301
|
|
%t303 = zext i1 %t302 to i32
|
|
%t304 = icmp ne i32 %t303, 0
|
|
br i1 %t304, label %wbody76, label %wend77
|
|
wbody76:
|
|
%t305 = load ptr, ptr %t0
|
|
%t306 = load i32, ptr %t7
|
|
%t307 = getelementptr inbounds i8, ptr %t305, i32 %t306
|
|
%t308 = load i8, ptr %t307
|
|
%t309 = zext i8 %t308 to i32
|
|
store i32 %t309, ptr %t310
|
|
store i32 0, ptr %t311
|
|
%t312 = load i32, ptr %t310
|
|
%t313 = call i32 @fn_char_is_digit(i32 %t312)
|
|
%t314 = icmp ne i32 %t313, 0
|
|
br i1 %t314, label %then78, label %else79
|
|
then78:
|
|
%t315 = load i32, ptr %t310
|
|
%t316 = sub i32 %t315, 48
|
|
store i32 %t316, ptr %t311
|
|
br label %ifend80
|
|
else79:
|
|
%t318 = load i32, ptr %t310
|
|
%t319 = icmp sge i32 %t318, 97
|
|
%t320 = zext i1 %t319 to i32
|
|
%t321 = icmp ne i32 %t320, 0
|
|
%t322 = zext i1 %t321 to i32
|
|
store i32 %t322, ptr %t317
|
|
br i1 %t321, label %sc81, label %scend82
|
|
sc81:
|
|
%t323 = load i32, ptr %t310
|
|
%t324 = icmp sle i32 %t323, 102
|
|
%t325 = zext i1 %t324 to i32
|
|
%t326 = icmp ne i32 %t325, 0
|
|
%t327 = zext i1 %t326 to i32
|
|
store i32 %t327, ptr %t317
|
|
br label %scend82
|
|
scend82:
|
|
%t328 = load i32, ptr %t317
|
|
%t329 = icmp ne i32 %t328, 0
|
|
br i1 %t329, label %then83, label %else84
|
|
then83:
|
|
%t330 = load i32, ptr %t310
|
|
%t331 = sub i32 %t330, 87
|
|
store i32 %t331, ptr %t311
|
|
br label %ifend85
|
|
else84:
|
|
%t333 = load i32, ptr %t310
|
|
%t334 = icmp sge i32 %t333, 65
|
|
%t335 = zext i1 %t334 to i32
|
|
%t336 = icmp ne i32 %t335, 0
|
|
%t337 = zext i1 %t336 to i32
|
|
store i32 %t337, ptr %t332
|
|
br i1 %t336, label %sc86, label %scend87
|
|
sc86:
|
|
%t338 = load i32, ptr %t310
|
|
%t339 = icmp sle i32 %t338, 70
|
|
%t340 = zext i1 %t339 to i32
|
|
%t341 = icmp ne i32 %t340, 0
|
|
%t342 = zext i1 %t341 to i32
|
|
store i32 %t342, ptr %t332
|
|
br label %scend87
|
|
scend87:
|
|
%t343 = load i32, ptr %t332
|
|
%t344 = icmp ne i32 %t343, 0
|
|
br i1 %t344, label %then88, label %else89
|
|
then88:
|
|
%t345 = load i32, ptr %t310
|
|
%t346 = sub i32 %t345, 55
|
|
store i32 %t346, ptr %t311
|
|
br label %ifend90
|
|
else89:
|
|
br label %wend77
|
|
ifend90:
|
|
br label %ifend85
|
|
ifend85:
|
|
br label %ifend80
|
|
ifend80:
|
|
%t347 = load i32, ptr %t297
|
|
%t348 = mul i32 %t347, 16
|
|
%t349 = load i32, ptr %t311
|
|
%t350 = add i32 %t348, %t349
|
|
store i32 %t350, ptr %t297
|
|
%t351 = load i32, ptr %t7
|
|
%t352 = add i32 %t351, 1
|
|
store i32 %t352, ptr %t7
|
|
br label %wcond75
|
|
wend77:
|
|
%t353 = load i32, ptr %t297
|
|
%t354 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 1, ptr null, i32 %t353, i32 %t354)
|
|
br label %wcond0
|
|
ifend74:
|
|
store i32 0, ptr %t355
|
|
br label %wcond91
|
|
wcond91:
|
|
%t357 = load i32, ptr %t7
|
|
%t358 = load i32, ptr %t12
|
|
%t359 = icmp slt i32 %t357, %t358
|
|
%t360 = zext i1 %t359 to i32
|
|
%t361 = icmp ne i32 %t360, 0
|
|
%t362 = zext i1 %t361 to i32
|
|
store i32 %t362, ptr %t356
|
|
br i1 %t361, label %sc94, label %scend95
|
|
sc94:
|
|
%t363 = load ptr, ptr %t0
|
|
%t364 = load i32, ptr %t7
|
|
%t365 = getelementptr inbounds i8, ptr %t363, i32 %t364
|
|
%t366 = load i8, ptr %t365
|
|
%t367 = zext i8 %t366 to i32
|
|
%t368 = call i32 @fn_char_is_digit(i32 %t367)
|
|
%t369 = icmp ne i32 %t368, 0
|
|
%t370 = zext i1 %t369 to i32
|
|
store i32 %t370, ptr %t356
|
|
br label %scend95
|
|
scend95:
|
|
%t371 = load i32, ptr %t356
|
|
%t372 = icmp ne i32 %t371, 0
|
|
br i1 %t372, label %wbody92, label %wend93
|
|
wbody92:
|
|
%t373 = load i32, ptr %t355
|
|
%t374 = mul i32 %t373, 10
|
|
%t375 = load ptr, ptr %t0
|
|
%t376 = load i32, ptr %t7
|
|
%t377 = getelementptr inbounds i8, ptr %t375, i32 %t376
|
|
%t378 = load i8, ptr %t377
|
|
%t379 = zext i8 %t378 to i32
|
|
%t380 = sub i32 %t379, 48
|
|
%t381 = add i32 %t374, %t380
|
|
store i32 %t381, ptr %t355
|
|
%t382 = load i32, ptr %t7
|
|
%t383 = add i32 %t382, 1
|
|
store i32 %t383, ptr %t7
|
|
br label %wcond91
|
|
wend93:
|
|
%t386 = load i32, ptr %t7
|
|
%t387 = load i32, ptr %t12
|
|
%t388 = icmp slt i32 %t386, %t387
|
|
%t389 = zext i1 %t388 to i32
|
|
%t390 = icmp ne i32 %t389, 0
|
|
%t391 = zext i1 %t390 to i32
|
|
store i32 %t391, ptr %t385
|
|
br i1 %t390, label %sc96, label %scend97
|
|
sc96:
|
|
%t392 = load ptr, ptr %t0
|
|
%t393 = load i32, ptr %t7
|
|
%t394 = getelementptr inbounds i8, ptr %t392, i32 %t393
|
|
%t395 = load i8, ptr %t394
|
|
%t396 = zext i8 %t395 to i32
|
|
%t397 = icmp eq i32 %t396, 46
|
|
%t398 = zext i1 %t397 to i32
|
|
%t399 = icmp ne i32 %t398, 0
|
|
%t400 = zext i1 %t399 to i32
|
|
store i32 %t400, ptr %t385
|
|
br label %scend97
|
|
scend97:
|
|
%t401 = load i32, ptr %t385
|
|
%t402 = icmp ne i32 %t401, 0
|
|
%t403 = zext i1 %t402 to i32
|
|
store i32 %t403, ptr %t384
|
|
br i1 %t402, label %sc98, label %scend99
|
|
sc98:
|
|
%t404 = load ptr, ptr %t0
|
|
%t405 = load i32, ptr %t7
|
|
%t406 = add i32 %t405, 1
|
|
%t407 = getelementptr inbounds i8, ptr %t404, i32 %t406
|
|
%t408 = load i8, ptr %t407
|
|
%t409 = zext i8 %t408 to i32
|
|
%t410 = call i32 @fn_char_is_digit(i32 %t409)
|
|
%t411 = icmp ne i32 %t410, 0
|
|
%t412 = zext i1 %t411 to i32
|
|
store i32 %t412, ptr %t384
|
|
br label %scend99
|
|
scend99:
|
|
%t413 = load i32, ptr %t384
|
|
%t414 = icmp ne i32 %t413, 0
|
|
br i1 %t414, label %then100, label %ifend102
|
|
then100:
|
|
%t415 = load i32, ptr %t7
|
|
%t416 = add i32 %t415, 1
|
|
store i32 %t416, ptr %t7
|
|
store i32 0, ptr %t417
|
|
store i32 1, ptr %t418
|
|
br label %wcond103
|
|
wcond103:
|
|
%t420 = load i32, ptr %t7
|
|
%t421 = load i32, ptr %t12
|
|
%t422 = icmp slt i32 %t420, %t421
|
|
%t423 = zext i1 %t422 to i32
|
|
%t424 = icmp ne i32 %t423, 0
|
|
%t425 = zext i1 %t424 to i32
|
|
store i32 %t425, ptr %t419
|
|
br i1 %t424, label %sc106, label %scend107
|
|
sc106:
|
|
%t426 = load ptr, ptr %t0
|
|
%t427 = load i32, ptr %t7
|
|
%t428 = getelementptr inbounds i8, ptr %t426, i32 %t427
|
|
%t429 = load i8, ptr %t428
|
|
%t430 = zext i8 %t429 to i32
|
|
%t431 = call i32 @fn_char_is_digit(i32 %t430)
|
|
%t432 = icmp ne i32 %t431, 0
|
|
%t433 = zext i1 %t432 to i32
|
|
store i32 %t433, ptr %t419
|
|
br label %scend107
|
|
scend107:
|
|
%t434 = load i32, ptr %t419
|
|
%t435 = icmp ne i32 %t434, 0
|
|
br i1 %t435, label %wbody104, label %wend105
|
|
wbody104:
|
|
%t436 = load i32, ptr %t417
|
|
%t437 = mul i32 %t436, 10
|
|
%t438 = load ptr, ptr %t0
|
|
%t439 = load i32, ptr %t7
|
|
%t440 = getelementptr inbounds i8, ptr %t438, i32 %t439
|
|
%t441 = load i8, ptr %t440
|
|
%t442 = zext i8 %t441 to i32
|
|
%t443 = sub i32 %t442, 48
|
|
%t444 = add i32 %t437, %t443
|
|
store i32 %t444, ptr %t417
|
|
%t445 = load i32, ptr %t418
|
|
%t446 = mul i32 %t445, 10
|
|
store i32 %t446, ptr %t418
|
|
%t447 = load i32, ptr %t7
|
|
%t448 = add i32 %t447, 1
|
|
store i32 %t448, ptr %t7
|
|
br label %wcond103
|
|
wend105:
|
|
%t449 = load i32, ptr %t355
|
|
%t450 = shl i32 %t449, 16
|
|
%t451 = load i32, ptr %t417
|
|
%t452 = shl i32 %t451, 16
|
|
%t453 = load i32, ptr %t418
|
|
%t454 = sdiv i32 %t452, %t453
|
|
%t455 = add i32 %t450, %t454
|
|
store i32 %t455, ptr %t456
|
|
%t457 = load i32, ptr %t456
|
|
%t458 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 6, ptr null, i32 %t457, i32 %t458)
|
|
br label %wcond0
|
|
ifend102:
|
|
%t459 = load i32, ptr %t355
|
|
%t460 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 1, ptr null, i32 %t459, i32 %t460)
|
|
br label %wcond0
|
|
ifend69:
|
|
%t461 = load i32, ptr %t23
|
|
%t462 = call i32 @fn_char_is_alpha(i32 %t461)
|
|
%t463 = icmp ne i32 %t462, 0
|
|
br i1 %t463, label %then108, label %ifend110
|
|
then108:
|
|
%t464 = load i32, ptr %t7
|
|
store i32 %t464, ptr %t465
|
|
br label %wcond111
|
|
wcond111:
|
|
%t467 = load i32, ptr %t7
|
|
%t468 = load i32, ptr %t12
|
|
%t469 = icmp slt i32 %t467, %t468
|
|
%t470 = zext i1 %t469 to i32
|
|
%t471 = icmp ne i32 %t470, 0
|
|
%t472 = zext i1 %t471 to i32
|
|
store i32 %t472, ptr %t466
|
|
br i1 %t471, label %sc114, label %scend115
|
|
sc114:
|
|
%t473 = load ptr, ptr %t0
|
|
%t474 = load i32, ptr %t7
|
|
%t475 = getelementptr inbounds i8, ptr %t473, i32 %t474
|
|
%t476 = load i8, ptr %t475
|
|
%t477 = zext i8 %t476 to i32
|
|
%t478 = call i32 @fn_char_is_alnum(i32 %t477)
|
|
%t479 = icmp ne i32 %t478, 0
|
|
%t480 = zext i1 %t479 to i32
|
|
store i32 %t480, ptr %t466
|
|
br label %scend115
|
|
scend115:
|
|
%t481 = load i32, ptr %t466
|
|
%t482 = icmp ne i32 %t481, 0
|
|
br i1 %t482, label %wbody112, label %wend113
|
|
wbody112:
|
|
%t483 = load i32, ptr %t7
|
|
%t484 = add i32 %t483, 1
|
|
store i32 %t484, ptr %t7
|
|
br label %wcond111
|
|
wend113:
|
|
%t485 = load ptr, ptr %t0
|
|
%t486 = load i32, ptr %t465
|
|
%t487 = load i32, ptr %t7
|
|
%t488 = call ptr @fn_str_slice(ptr %t485, i32 %t486, i32 %t487)
|
|
%t489 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 0, ptr %t488, i32 0, i32 %t489)
|
|
br label %wcond0
|
|
ifend110:
|
|
%t490 = load i32, ptr %t23
|
|
%t491 = icmp eq i32 %t490, 59
|
|
%t492 = zext i1 %t491 to i32
|
|
%t493 = icmp ne i32 %t492, 0
|
|
br i1 %t493, label %then116, label %ifend118
|
|
then116:
|
|
%t494 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 4, ptr null, i32 0, i32 %t494)
|
|
%t495 = load i32, ptr %t7
|
|
%t496 = add i32 %t495, 1
|
|
store i32 %t496, ptr %t7
|
|
br label %wcond0
|
|
ifend118:
|
|
%t497 = load ptr, ptr %t0
|
|
%t498 = load i32, ptr %t7
|
|
%t499 = call i32 @fn_two_at(ptr %t497, i32 %t498, i32 45, i32 62)
|
|
%t500 = icmp ne i32 %t499, 0
|
|
br i1 %t500, label %then119, label %ifend121
|
|
then119:
|
|
%t501 = load ptr, ptr %t0
|
|
%t502 = load i32, ptr %t7
|
|
%t503 = load i32, ptr %t7
|
|
%t504 = add i32 %t503, 2
|
|
%t505 = call ptr @fn_str_slice(ptr %t501, i32 %t502, i32 %t504)
|
|
%t506 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t505, i32 0, i32 %t506)
|
|
%t507 = load i32, ptr %t7
|
|
%t508 = add i32 %t507, 2
|
|
store i32 %t508, ptr %t7
|
|
br label %wcond0
|
|
ifend121:
|
|
%t509 = load ptr, ptr %t0
|
|
%t510 = load i32, ptr %t7
|
|
%t511 = call i32 @fn_two_at(ptr %t509, i32 %t510, i32 61, i32 62)
|
|
%t512 = icmp ne i32 %t511, 0
|
|
br i1 %t512, label %then122, label %ifend124
|
|
then122:
|
|
%t513 = load ptr, ptr %t0
|
|
%t514 = load i32, ptr %t7
|
|
%t515 = load i32, ptr %t7
|
|
%t516 = add i32 %t515, 2
|
|
%t517 = call ptr @fn_str_slice(ptr %t513, i32 %t514, i32 %t516)
|
|
%t518 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t517, i32 0, i32 %t518)
|
|
%t519 = load i32, ptr %t7
|
|
%t520 = add i32 %t519, 2
|
|
store i32 %t520, ptr %t7
|
|
br label %wcond0
|
|
ifend124:
|
|
%t521 = load ptr, ptr %t0
|
|
%t522 = load i32, ptr %t7
|
|
%t523 = call i32 @fn_two_at(ptr %t521, i32 %t522, i32 61, i32 61)
|
|
%t524 = icmp ne i32 %t523, 0
|
|
br i1 %t524, label %then125, label %ifend127
|
|
then125:
|
|
%t525 = load ptr, ptr %t0
|
|
%t526 = load i32, ptr %t7
|
|
%t527 = load i32, ptr %t7
|
|
%t528 = add i32 %t527, 2
|
|
%t529 = call ptr @fn_str_slice(ptr %t525, i32 %t526, i32 %t528)
|
|
%t530 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t529, i32 0, i32 %t530)
|
|
%t531 = load i32, ptr %t7
|
|
%t532 = add i32 %t531, 2
|
|
store i32 %t532, ptr %t7
|
|
br label %wcond0
|
|
ifend127:
|
|
%t533 = load ptr, ptr %t0
|
|
%t534 = load i32, ptr %t7
|
|
%t535 = call i32 @fn_two_at(ptr %t533, i32 %t534, i32 33, i32 61)
|
|
%t536 = icmp ne i32 %t535, 0
|
|
br i1 %t536, label %then128, label %ifend130
|
|
then128:
|
|
%t537 = load ptr, ptr %t0
|
|
%t538 = load i32, ptr %t7
|
|
%t539 = load i32, ptr %t7
|
|
%t540 = add i32 %t539, 2
|
|
%t541 = call ptr @fn_str_slice(ptr %t537, i32 %t538, i32 %t540)
|
|
%t542 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t541, i32 0, i32 %t542)
|
|
%t543 = load i32, ptr %t7
|
|
%t544 = add i32 %t543, 2
|
|
store i32 %t544, ptr %t7
|
|
br label %wcond0
|
|
ifend130:
|
|
%t545 = load ptr, ptr %t0
|
|
%t546 = load i32, ptr %t7
|
|
%t547 = call i32 @fn_two_at(ptr %t545, i32 %t546, i32 60, i32 61)
|
|
%t548 = icmp ne i32 %t547, 0
|
|
br i1 %t548, label %then131, label %ifend133
|
|
then131:
|
|
%t549 = load ptr, ptr %t0
|
|
%t550 = load i32, ptr %t7
|
|
%t551 = load i32, ptr %t7
|
|
%t552 = add i32 %t551, 2
|
|
%t553 = call ptr @fn_str_slice(ptr %t549, i32 %t550, i32 %t552)
|
|
%t554 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t553, i32 0, i32 %t554)
|
|
%t555 = load i32, ptr %t7
|
|
%t556 = add i32 %t555, 2
|
|
store i32 %t556, ptr %t7
|
|
br label %wcond0
|
|
ifend133:
|
|
%t557 = load ptr, ptr %t0
|
|
%t558 = load i32, ptr %t7
|
|
%t559 = call i32 @fn_two_at(ptr %t557, i32 %t558, i32 62, i32 61)
|
|
%t560 = icmp ne i32 %t559, 0
|
|
br i1 %t560, label %then134, label %ifend136
|
|
then134:
|
|
%t561 = load ptr, ptr %t0
|
|
%t562 = load i32, ptr %t7
|
|
%t563 = load i32, ptr %t7
|
|
%t564 = add i32 %t563, 2
|
|
%t565 = call ptr @fn_str_slice(ptr %t561, i32 %t562, i32 %t564)
|
|
%t566 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t565, i32 0, i32 %t566)
|
|
%t567 = load i32, ptr %t7
|
|
%t568 = add i32 %t567, 2
|
|
store i32 %t568, ptr %t7
|
|
br label %wcond0
|
|
ifend136:
|
|
%t569 = load ptr, ptr %t0
|
|
%t570 = load i32, ptr %t7
|
|
%t571 = call i32 @fn_two_at(ptr %t569, i32 %t570, i32 43, i32 61)
|
|
%t572 = icmp ne i32 %t571, 0
|
|
br i1 %t572, label %then137, label %ifend139
|
|
then137:
|
|
%t573 = load ptr, ptr %t0
|
|
%t574 = load i32, ptr %t7
|
|
%t575 = load i32, ptr %t7
|
|
%t576 = add i32 %t575, 2
|
|
%t577 = call ptr @fn_str_slice(ptr %t573, i32 %t574, i32 %t576)
|
|
%t578 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t577, i32 0, i32 %t578)
|
|
%t579 = load i32, ptr %t7
|
|
%t580 = add i32 %t579, 2
|
|
store i32 %t580, ptr %t7
|
|
br label %wcond0
|
|
ifend139:
|
|
%t581 = load ptr, ptr %t0
|
|
%t582 = load i32, ptr %t7
|
|
%t583 = call i32 @fn_two_at(ptr %t581, i32 %t582, i32 45, i32 61)
|
|
%t584 = icmp ne i32 %t583, 0
|
|
br i1 %t584, label %then140, label %ifend142
|
|
then140:
|
|
%t585 = load ptr, ptr %t0
|
|
%t586 = load i32, ptr %t7
|
|
%t587 = load i32, ptr %t7
|
|
%t588 = add i32 %t587, 2
|
|
%t589 = call ptr @fn_str_slice(ptr %t585, i32 %t586, i32 %t588)
|
|
%t590 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t589, i32 0, i32 %t590)
|
|
%t591 = load i32, ptr %t7
|
|
%t592 = add i32 %t591, 2
|
|
store i32 %t592, ptr %t7
|
|
br label %wcond0
|
|
ifend142:
|
|
%t593 = load ptr, ptr %t0
|
|
%t594 = load i32, ptr %t7
|
|
%t595 = call i32 @fn_two_at(ptr %t593, i32 %t594, i32 42, i32 61)
|
|
%t596 = icmp ne i32 %t595, 0
|
|
br i1 %t596, label %then143, label %ifend145
|
|
then143:
|
|
%t597 = load ptr, ptr %t0
|
|
%t598 = load i32, ptr %t7
|
|
%t599 = load i32, ptr %t7
|
|
%t600 = add i32 %t599, 2
|
|
%t601 = call ptr @fn_str_slice(ptr %t597, i32 %t598, i32 %t600)
|
|
%t602 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t601, i32 0, i32 %t602)
|
|
%t603 = load i32, ptr %t7
|
|
%t604 = add i32 %t603, 2
|
|
store i32 %t604, ptr %t7
|
|
br label %wcond0
|
|
ifend145:
|
|
%t605 = load ptr, ptr %t0
|
|
%t606 = load i32, ptr %t7
|
|
%t607 = call i32 @fn_two_at(ptr %t605, i32 %t606, i32 47, i32 61)
|
|
%t608 = icmp ne i32 %t607, 0
|
|
br i1 %t608, label %then146, label %ifend148
|
|
then146:
|
|
%t609 = load ptr, ptr %t0
|
|
%t610 = load i32, ptr %t7
|
|
%t611 = load i32, ptr %t7
|
|
%t612 = add i32 %t611, 2
|
|
%t613 = call ptr @fn_str_slice(ptr %t609, i32 %t610, i32 %t612)
|
|
%t614 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t613, i32 0, i32 %t614)
|
|
%t615 = load i32, ptr %t7
|
|
%t616 = add i32 %t615, 2
|
|
store i32 %t616, ptr %t7
|
|
br label %wcond0
|
|
ifend148:
|
|
%t617 = load ptr, ptr %t0
|
|
%t618 = load i32, ptr %t7
|
|
%t619 = call i32 @fn_two_at(ptr %t617, i32 %t618, i32 46, i32 46)
|
|
%t620 = icmp ne i32 %t619, 0
|
|
br i1 %t620, label %then149, label %ifend151
|
|
then149:
|
|
%t621 = load ptr, ptr %t0
|
|
%t622 = load i32, ptr %t7
|
|
%t623 = load i32, ptr %t7
|
|
%t624 = add i32 %t623, 2
|
|
%t625 = call ptr @fn_str_slice(ptr %t621, i32 %t622, i32 %t624)
|
|
%t626 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t625, i32 0, i32 %t626)
|
|
%t627 = load i32, ptr %t7
|
|
%t628 = add i32 %t627, 2
|
|
store i32 %t628, ptr %t7
|
|
br label %wcond0
|
|
ifend151:
|
|
%t629 = load ptr, ptr %t0
|
|
%t630 = load i32, ptr %t7
|
|
%t631 = call i32 @fn_two_at(ptr %t629, i32 %t630, i32 60, i32 60)
|
|
%t632 = icmp ne i32 %t631, 0
|
|
br i1 %t632, label %then152, label %ifend154
|
|
then152:
|
|
%t633 = load ptr, ptr %t0
|
|
%t634 = load i32, ptr %t7
|
|
%t635 = load i32, ptr %t7
|
|
%t636 = add i32 %t635, 2
|
|
%t637 = call ptr @fn_str_slice(ptr %t633, i32 %t634, i32 %t636)
|
|
%t638 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t637, i32 0, i32 %t638)
|
|
%t639 = load i32, ptr %t7
|
|
%t640 = add i32 %t639, 2
|
|
store i32 %t640, ptr %t7
|
|
br label %wcond0
|
|
ifend154:
|
|
%t641 = load ptr, ptr %t0
|
|
%t642 = load i32, ptr %t7
|
|
%t643 = call i32 @fn_two_at(ptr %t641, i32 %t642, i32 62, i32 62)
|
|
%t644 = icmp ne i32 %t643, 0
|
|
br i1 %t644, label %then155, label %ifend157
|
|
then155:
|
|
%t645 = load ptr, ptr %t0
|
|
%t646 = load i32, ptr %t7
|
|
%t647 = load i32, ptr %t7
|
|
%t648 = add i32 %t647, 2
|
|
%t649 = call ptr @fn_str_slice(ptr %t645, i32 %t646, i32 %t648)
|
|
%t650 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t649, i32 0, i32 %t650)
|
|
%t651 = load i32, ptr %t7
|
|
%t652 = add i32 %t651, 2
|
|
store i32 %t652, ptr %t7
|
|
br label %wcond0
|
|
ifend157:
|
|
%t653 = load i32, ptr %t23
|
|
%t654 = call i32 @fn_is_op1(i32 %t653)
|
|
%t655 = icmp ne i32 %t654, 0
|
|
br i1 %t655, label %then158, label %ifend160
|
|
then158:
|
|
%t656 = load ptr, ptr %t0
|
|
%t657 = load i32, ptr %t7
|
|
%t658 = load i32, ptr %t7
|
|
%t659 = add i32 %t658, 1
|
|
%t660 = call ptr @fn_str_slice(ptr %t656, i32 %t657, i32 %t659)
|
|
%t661 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 3, ptr %t660, i32 0, i32 %t661)
|
|
%t662 = load i32, ptr %t7
|
|
%t663 = add i32 %t662, 1
|
|
store i32 %t663, ptr %t7
|
|
br label %wcond0
|
|
ifend160:
|
|
%t664 = load i32, ptr %t7
|
|
%t665 = add i32 %t664, 1
|
|
store i32 %t665, ptr %t7
|
|
br label %wcond0
|
|
wend2:
|
|
%t666 = load i32, ptr %t8
|
|
call void @fn_tok_push(i32 5, ptr null, i32 0, i32 %t666)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_cur() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = load ptr, ptr @g_toks
|
|
%t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = load i32, ptr @g_pi
|
|
%t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3
|
|
%t5 = load ptr, ptr %t4
|
|
store ptr %t5, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t6 = load ptr, ptr %retval
|
|
ret ptr %t6
|
|
}
|
|
|
|
define ptr @fn_pk(i32 %arg_o) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca i32
|
|
store i32 %arg_o, ptr %t0
|
|
%t1 = load ptr, ptr @g_toks
|
|
%t2 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = load i32, ptr @g_pi
|
|
%t5 = load i32, ptr %t0
|
|
%t6 = add i32 %t4, %t5
|
|
%t7 = getelementptr inbounds ptr, ptr %t3, i32 %t6
|
|
%t8 = load ptr, ptr %t7
|
|
store ptr %t8, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t9 = load ptr, ptr %retval
|
|
ret ptr %t9
|
|
}
|
|
|
|
define i32 @fn_is_op(ptr %arg_v) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t8 = alloca i32
|
|
store ptr %arg_v, ptr %t0
|
|
%t1 = load ptr, ptr @g_toks
|
|
%t2 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = load i32, ptr @g_pi
|
|
%t5 = getelementptr inbounds ptr, ptr %t3, i32 %t4
|
|
%t6 = load ptr, ptr %t5
|
|
store ptr %t6, ptr %t7
|
|
%t9 = load ptr, ptr %t7
|
|
%t10 = getelementptr inbounds %Cmp_Tok, ptr %t9, i32 0, i32 0
|
|
%t11 = load i32, ptr %t10
|
|
%t12 = icmp eq i32 %t11, 3
|
|
%t13 = zext i1 %t12 to i32
|
|
%t14 = icmp ne i32 %t13, 0
|
|
%t15 = zext i1 %t14 to i32
|
|
store i32 %t15, ptr %t8
|
|
br i1 %t14, label %sc0, label %scend1
|
|
sc0:
|
|
%t16 = load ptr, ptr %t7
|
|
%t17 = getelementptr inbounds %Cmp_Tok, ptr %t16, i32 0, i32 1
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = load ptr, ptr %t0
|
|
%t20 = call i32 @fn_str_eq(ptr %t18, ptr %t19)
|
|
%t21 = icmp ne i32 %t20, 0
|
|
%t22 = zext i1 %t21 to i32
|
|
store i32 %t22, ptr %t8
|
|
br label %scend1
|
|
scend1:
|
|
%t23 = load i32, ptr %t8
|
|
store i32 %t23, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t24 = load i32, ptr %retval
|
|
ret i32 %t24
|
|
}
|
|
|
|
define i32 @fn_is_id(ptr %arg_v) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t8 = alloca i32
|
|
store ptr %arg_v, ptr %t0
|
|
%t1 = load ptr, ptr @g_toks
|
|
%t2 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = load i32, ptr @g_pi
|
|
%t5 = getelementptr inbounds ptr, ptr %t3, i32 %t4
|
|
%t6 = load ptr, ptr %t5
|
|
store ptr %t6, ptr %t7
|
|
%t9 = load ptr, ptr %t7
|
|
%t10 = getelementptr inbounds %Cmp_Tok, ptr %t9, i32 0, i32 0
|
|
%t11 = load i32, ptr %t10
|
|
%t12 = icmp eq i32 %t11, 0
|
|
%t13 = zext i1 %t12 to i32
|
|
%t14 = icmp ne i32 %t13, 0
|
|
%t15 = zext i1 %t14 to i32
|
|
store i32 %t15, ptr %t8
|
|
br i1 %t14, label %sc0, label %scend1
|
|
sc0:
|
|
%t16 = load ptr, ptr %t7
|
|
%t17 = getelementptr inbounds %Cmp_Tok, ptr %t16, i32 0, i32 1
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = load ptr, ptr %t0
|
|
%t20 = call i32 @fn_str_eq(ptr %t18, ptr %t19)
|
|
%t21 = icmp ne i32 %t20, 0
|
|
%t22 = zext i1 %t21 to i32
|
|
store i32 %t22, ptr %t8
|
|
br label %scend1
|
|
scend1:
|
|
%t23 = load i32, ptr %t8
|
|
store i32 %t23, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t24 = load i32, ptr %retval
|
|
ret i32 %t24
|
|
}
|
|
|
|
define i32 @fn_is_kw(ptr %arg_v) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
store ptr %arg_v, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i32 @fn_is_id(ptr %t1)
|
|
store i32 %t2, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t3 = load i32, ptr %retval
|
|
ret i32 %t3
|
|
}
|
|
|
|
define void @fn_perr(ptr %arg_msg) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
store ptr %arg_msg, ptr %t0
|
|
%t1 = load ptr, ptr @__stderrp
|
|
store ptr %t1, ptr %t2
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = zext i32 27 to i64
|
|
%t5 = call i64 @fwrite(ptr @.str1, i64 1, i64 %t4, ptr %t3)
|
|
%t6 = trunc i64 %t5 to i32
|
|
%t7 = load ptr, ptr %t2
|
|
%t8 = load ptr, ptr %t0
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = call i64 @strlen(ptr %t9)
|
|
%t11 = trunc i64 %t10 to i32
|
|
%t12 = zext i32 %t11 to i64
|
|
%t13 = call i64 @fwrite(ptr %t8, i64 1, i64 %t12, ptr %t7)
|
|
%t14 = trunc i64 %t13 to i32
|
|
%t15 = load ptr, ptr %t2
|
|
%t16 = zext i32 1 to i64
|
|
%t17 = call i64 @fwrite(ptr @.str2, i64 1, i64 %t16, ptr %t15)
|
|
%t18 = trunc i64 %t17 to i32
|
|
call void @exit(i32 1)
|
|
unreachable
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_eat_op(ptr %arg_v) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
store ptr %arg_v, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i32 @fn_is_op(ptr %t1)
|
|
%t3 = icmp eq i32 %t2, 0
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load ptr, ptr %t0
|
|
call void @fn_perr(ptr %t6)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t7 = load i32, ptr @g_pi
|
|
%t8 = add i32 %t7, 1
|
|
store i32 %t8, ptr @g_pi
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_eat_id() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t0 = load ptr, ptr @g_toks
|
|
%t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = load i32, ptr @g_pi
|
|
%t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3
|
|
%t5 = load ptr, ptr %t4
|
|
store ptr %t5, ptr %t6
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = getelementptr inbounds %Cmp_Tok, ptr %t7, i32 0, i32 0
|
|
%t9 = load i32, ptr %t8
|
|
%t10 = icmp ne i32 %t9, 0
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_perr(ptr @.str3)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t13 = load i32, ptr @g_pi
|
|
%t14 = add i32 %t13, 1
|
|
store i32 %t14, ptr @g_pi
|
|
%t15 = load ptr, ptr %t6
|
|
%t16 = getelementptr inbounds %Cmp_Tok, ptr %t15, i32 0, i32 1
|
|
%t17 = load ptr, ptr %t16
|
|
store ptr %t17, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t18 = load ptr, ptr %retval
|
|
ret ptr %t18
|
|
}
|
|
|
|
define void @fn_skipnl() {
|
|
entry:
|
|
br label %wcond0
|
|
wcond0:
|
|
%t0 = load ptr, ptr @g_toks
|
|
%t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = load i32, ptr @g_pi
|
|
%t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds %Cmp_Tok, ptr %t5, i32 0, i32 0
|
|
%t7 = load i32, ptr %t6
|
|
%t8 = icmp eq i32 %t7, 4
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t11 = load i32, ptr @g_pi
|
|
%t12 = add i32 %t11, 1
|
|
store i32 %t12, ptr @g_pi
|
|
br label %wcond0
|
|
wend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_ptype() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t12 = alloca ptr
|
|
%t19 = alloca i32
|
|
%t0 = call i32 @fn_is_op(ptr @.str4)
|
|
%t1 = icmp ne i32 %t0, 0
|
|
br i1 %t1, label %then0, label %ifend2
|
|
then0:
|
|
%t2 = load i32, ptr @g_pi
|
|
%t3 = add i32 %t2, 1
|
|
store i32 %t3, ptr @g_pi
|
|
call void @fn_eat_op(ptr @.str5)
|
|
%t4 = call ptr @fn_ptype()
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = call i64 @strlen(ptr %t6)
|
|
%t8 = trunc i64 %t7 to i32
|
|
%t9 = add i32 %t8, 3
|
|
%t10 = zext i32 %t9 to i64
|
|
%t11 = call ptr @malloc(i64 %t10)
|
|
store ptr %t11, ptr %t12
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds i8, ptr %t13, i32 0
|
|
%t15 = trunc i32 91 to i8
|
|
store i8 %t15, ptr %t14
|
|
%t16 = load ptr, ptr %t12
|
|
%t17 = getelementptr inbounds i8, ptr %t16, i32 1
|
|
%t18 = trunc i32 93 to i8
|
|
store i8 %t18, ptr %t17
|
|
store i32 0, ptr %t19
|
|
br label %wcond3
|
|
wcond3:
|
|
%t20 = load ptr, ptr %t5
|
|
%t21 = load i32, ptr %t19
|
|
%t22 = getelementptr inbounds i8, ptr %t20, i32 %t21
|
|
%t23 = load i8, ptr %t22
|
|
%t24 = zext i8 %t23 to i32
|
|
%t25 = icmp ne i32 %t24, 0
|
|
%t26 = zext i1 %t25 to i32
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t28 = load ptr, ptr %t12
|
|
%t29 = load i32, ptr %t19
|
|
%t30 = add i32 2, %t29
|
|
%t31 = getelementptr inbounds i8, ptr %t28, i32 %t30
|
|
%t32 = load ptr, ptr %t5
|
|
%t33 = load i32, ptr %t19
|
|
%t34 = getelementptr inbounds i8, ptr %t32, i32 %t33
|
|
%t35 = load i8, ptr %t34
|
|
%t36 = zext i8 %t35 to i32
|
|
%t37 = trunc i32 %t36 to i8
|
|
store i8 %t37, ptr %t31
|
|
%t38 = load i32, ptr %t19
|
|
%t39 = add i32 %t38, 1
|
|
store i32 %t39, ptr %t19
|
|
br label %wcond3
|
|
wend5:
|
|
%t40 = load ptr, ptr %t12
|
|
%t41 = load i32, ptr %t19
|
|
%t42 = add i32 2, %t41
|
|
%t43 = getelementptr inbounds i8, ptr %t40, i32 %t42
|
|
%t44 = trunc i32 0 to i8
|
|
store i8 %t44, ptr %t43
|
|
%t45 = load ptr, ptr %t12
|
|
store ptr %t45, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t46 = call ptr @fn_eat_id()
|
|
store ptr %t46, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t47 = load ptr, ptr %retval
|
|
ret ptr %t47
|
|
}
|
|
|
|
define ptr @fn_expr() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = call ptr @fn_p_or()
|
|
store ptr %t0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t1 = load ptr, ptr %retval
|
|
ret ptr %t1
|
|
}
|
|
|
|
define void @fn_args_call(ptr %arg_call) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t11 = alloca ptr
|
|
%t19 = alloca ptr
|
|
%t20 = alloca i32
|
|
%t21 = alloca i32
|
|
%t48 = alloca ptr
|
|
store ptr %arg_call, ptr %t0
|
|
call void @fn_eat_op(ptr @.str6)
|
|
call void @fn_skipnl()
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = call i32 @fn_is_op(ptr @.str7)
|
|
%t2 = icmp eq i32 %t1, 0
|
|
%t3 = zext i1 %t2 to i32
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t5 = load ptr, ptr @g_toks
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = load i32, ptr @g_pi
|
|
%t9 = getelementptr inbounds ptr, ptr %t7, i32 %t8
|
|
%t10 = load ptr, ptr %t9
|
|
store ptr %t10, ptr %t11
|
|
%t12 = load ptr, ptr @g_toks
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = load i32, ptr @g_pi
|
|
%t16 = add i32 %t15, 1
|
|
%t17 = getelementptr inbounds ptr, ptr %t14, i32 %t16
|
|
%t18 = load ptr, ptr %t17
|
|
store ptr %t18, ptr %t19
|
|
%t22 = load ptr, ptr %t11
|
|
%t23 = getelementptr inbounds %Cmp_Tok, ptr %t22, i32 0, i32 0
|
|
%t24 = load i32, ptr %t23
|
|
%t25 = icmp eq i32 %t24, 0
|
|
%t26 = zext i1 %t25 to i32
|
|
%t27 = icmp ne i32 %t26, 0
|
|
%t28 = zext i1 %t27 to i32
|
|
store i32 %t28, ptr %t21
|
|
br i1 %t27, label %sc3, label %scend4
|
|
sc3:
|
|
%t29 = load ptr, ptr %t19
|
|
%t30 = getelementptr inbounds %Cmp_Tok, ptr %t29, i32 0, i32 0
|
|
%t31 = load i32, ptr %t30
|
|
%t32 = icmp eq i32 %t31, 3
|
|
%t33 = zext i1 %t32 to i32
|
|
%t34 = icmp ne i32 %t33, 0
|
|
%t35 = zext i1 %t34 to i32
|
|
store i32 %t35, ptr %t21
|
|
br label %scend4
|
|
scend4:
|
|
%t36 = load i32, ptr %t21
|
|
%t37 = icmp ne i32 %t36, 0
|
|
%t38 = zext i1 %t37 to i32
|
|
store i32 %t38, ptr %t20
|
|
br i1 %t37, label %sc5, label %scend6
|
|
sc5:
|
|
%t39 = load ptr, ptr %t19
|
|
%t40 = getelementptr inbounds %Cmp_Tok, ptr %t39, i32 0, i32 1
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = call i32 @fn_str_eq(ptr %t41, ptr @.str8)
|
|
%t43 = icmp ne i32 %t42, 0
|
|
%t44 = zext i1 %t43 to i32
|
|
store i32 %t44, ptr %t20
|
|
br label %scend6
|
|
scend6:
|
|
%t45 = load i32, ptr %t20
|
|
%t46 = icmp ne i32 %t45, 0
|
|
br i1 %t46, label %then7, label %else8
|
|
then7:
|
|
%t47 = call ptr @fn_node(i32 42)
|
|
store ptr %t47, ptr %t48
|
|
%t49 = load ptr, ptr %t48
|
|
%t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 1
|
|
%t51 = call ptr @fn_eat_id()
|
|
store ptr %t51, ptr %t50
|
|
call void @fn_eat_op(ptr @.str9)
|
|
call void @fn_skipnl()
|
|
%t52 = load ptr, ptr %t48
|
|
%t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 4
|
|
%t54 = call ptr @fn_expr()
|
|
store ptr %t54, ptr %t53
|
|
%t55 = load ptr, ptr %t0
|
|
%t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 7
|
|
%t57 = load ptr, ptr %t56
|
|
%t58 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 1
|
|
%t59 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 2
|
|
%t60 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 0
|
|
%t61 = load i32, ptr %t58
|
|
%t62 = load i32, ptr %t59
|
|
%t63 = icmp sge i32 %t61, %t62
|
|
br i1 %t63, label %grow10, label %put11
|
|
grow10:
|
|
%t64 = mul i32 %t62, 2
|
|
%t65 = icmp eq i32 %t62, 0
|
|
%t66 = select i1 %t65, i32 8, i32 %t64
|
|
%t67 = getelementptr ptr, ptr null, i32 1
|
|
%t68 = ptrtoint ptr %t67 to i64
|
|
%t69 = zext i32 %t66 to i64
|
|
%t70 = mul i64 %t69, %t68
|
|
%t71 = load ptr, ptr %t60
|
|
%t72 = call ptr @realloc(ptr %t71, i64 %t70)
|
|
store ptr %t72, ptr %t60
|
|
store i32 %t66, ptr %t59
|
|
br label %put11
|
|
put11:
|
|
%t73 = load ptr, ptr %t48
|
|
%t74 = load ptr, ptr %t60
|
|
%t75 = getelementptr inbounds ptr, ptr %t74, i32 %t61
|
|
store ptr %t73, ptr %t75
|
|
%t76 = add i32 %t61, 1
|
|
store i32 %t76, ptr %t58
|
|
br label %ifend9
|
|
else8:
|
|
%t77 = load ptr, ptr %t0
|
|
%t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 7
|
|
%t79 = load ptr, ptr %t78
|
|
%t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 1
|
|
%t81 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 2
|
|
%t82 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0
|
|
%t83 = load i32, ptr %t80
|
|
%t84 = load i32, ptr %t81
|
|
%t85 = icmp sge i32 %t83, %t84
|
|
br i1 %t85, label %grow12, label %put13
|
|
grow12:
|
|
%t86 = mul i32 %t84, 2
|
|
%t87 = icmp eq i32 %t84, 0
|
|
%t88 = select i1 %t87, i32 8, i32 %t86
|
|
%t89 = getelementptr ptr, ptr null, i32 1
|
|
%t90 = ptrtoint ptr %t89 to i64
|
|
%t91 = zext i32 %t88 to i64
|
|
%t92 = mul i64 %t91, %t90
|
|
%t93 = load ptr, ptr %t82
|
|
%t94 = call ptr @realloc(ptr %t93, i64 %t92)
|
|
store ptr %t94, ptr %t82
|
|
store i32 %t88, ptr %t81
|
|
br label %put13
|
|
put13:
|
|
%t95 = call ptr @fn_expr()
|
|
%t96 = load ptr, ptr %t82
|
|
%t97 = getelementptr inbounds ptr, ptr %t96, i32 %t83
|
|
store ptr %t95, ptr %t97
|
|
%t98 = add i32 %t83, 1
|
|
store i32 %t98, ptr %t80
|
|
br label %ifend9
|
|
ifend9:
|
|
call void @fn_skipnl()
|
|
%t99 = call i32 @fn_is_op(ptr @.str10)
|
|
%t100 = icmp ne i32 %t99, 0
|
|
br i1 %t100, label %then14, label %ifend16
|
|
then14:
|
|
%t101 = load i32, ptr @g_pi
|
|
%t102 = add i32 %t101, 1
|
|
store i32 %t102, ptr @g_pi
|
|
call void @fn_skipnl()
|
|
br label %ifend16
|
|
ifend16:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str11)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_interp_lit(ptr %arg_buf, i32 %arg_len) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t3 = alloca ptr
|
|
store ptr %arg_buf, ptr %t0
|
|
store i32 %arg_len, ptr %t1
|
|
%t2 = call ptr @fn_node(i32 31)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = load i32, ptr %t1
|
|
%t8 = add i32 0, %t7
|
|
%t9 = call ptr @fn_str_slice(ptr %t6, i32 0, i32 %t8)
|
|
store ptr %t9, ptr %t5
|
|
%t10 = load ptr, ptr %t3
|
|
store ptr %t10, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t11 = load ptr, ptr %retval
|
|
ret ptr %t11
|
|
}
|
|
|
|
define ptr @fn_interp_add(ptr %arg_acc, ptr %arg_part) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
store ptr %arg_acc, ptr %t0
|
|
store ptr %arg_part, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = icmp eq ptr %t2, null
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load ptr, ptr %t1
|
|
store ptr %t6, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = load ptr, ptr %t1
|
|
%t9 = call ptr @fn_mkbin(ptr @.str12, ptr %t7, ptr %t8)
|
|
store ptr %t9, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t10 = load ptr, ptr %retval
|
|
ret ptr %t10
|
|
}
|
|
|
|
define ptr @fn_interp_str(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t4 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
%t1 = call ptr @fn_node(i32 34)
|
|
store ptr %t1, ptr %t2
|
|
%t3 = call ptr @fn_node(i32 33)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 1
|
|
store ptr @.str13, ptr %t6
|
|
%t7 = load ptr, ptr %t2
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4
|
|
%t9 = load ptr, ptr %t4
|
|
store ptr %t9, ptr %t8
|
|
%t10 = load ptr, ptr %t2
|
|
%t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 7
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1
|
|
%t14 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 2
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 0
|
|
%t16 = load i32, ptr %t13
|
|
%t17 = load i32, ptr %t14
|
|
%t18 = icmp sge i32 %t16, %t17
|
|
br i1 %t18, label %grow0, label %put1
|
|
grow0:
|
|
%t19 = mul i32 %t17, 2
|
|
%t20 = icmp eq i32 %t17, 0
|
|
%t21 = select i1 %t20, i32 8, i32 %t19
|
|
%t22 = getelementptr ptr, ptr null, i32 1
|
|
%t23 = ptrtoint ptr %t22 to i64
|
|
%t24 = zext i32 %t21 to i64
|
|
%t25 = mul i64 %t24, %t23
|
|
%t26 = load ptr, ptr %t15
|
|
%t27 = call ptr @realloc(ptr %t26, i64 %t25)
|
|
store ptr %t27, ptr %t15
|
|
store i32 %t21, ptr %t14
|
|
br label %put1
|
|
put1:
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = load ptr, ptr %t15
|
|
%t30 = getelementptr inbounds ptr, ptr %t29, i32 %t16
|
|
store ptr %t28, ptr %t30
|
|
%t31 = add i32 %t16, 1
|
|
store i32 %t31, ptr %t13
|
|
%t32 = load ptr, ptr %t2
|
|
store ptr %t32, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t33 = load ptr, ptr %retval
|
|
ret ptr %t33
|
|
}
|
|
|
|
define ptr @fn_parse_hole(ptr %arg_inner) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t4 = alloca i32
|
|
%t7 = alloca ptr
|
|
store ptr %arg_inner, ptr %t0
|
|
%t1 = load ptr, ptr @g_toks
|
|
store ptr %t1, ptr %t2
|
|
%t3 = load i32, ptr @g_pi
|
|
store i32 %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t0
|
|
call void @fn_lex(ptr %t5)
|
|
store i32 0, ptr @g_pi
|
|
call void @fn_skipnl()
|
|
%t6 = call ptr @fn_expr()
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t2
|
|
store ptr %t8, ptr @g_toks
|
|
%t9 = load i32, ptr %t4
|
|
store i32 %t9, ptr @g_pi
|
|
%t10 = load ptr, ptr %t7
|
|
store ptr %t10, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t11 = load ptr, ptr %retval
|
|
ret ptr %t11
|
|
}
|
|
|
|
define ptr @fn_parse_interp(ptr %arg_raw) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t4 = alloca i32
|
|
%t5 = alloca ptr
|
|
%t10 = alloca ptr
|
|
%t11 = alloca i32
|
|
%t12 = alloca i32
|
|
%t23 = alloca i32
|
|
%t57 = alloca i32
|
|
%t58 = alloca i32
|
|
%t59 = alloca i32
|
|
%t78 = alloca i32
|
|
%t107 = alloca i32
|
|
%t143 = alloca i32
|
|
%t145 = alloca i32
|
|
%t172 = alloca i32
|
|
store ptr %arg_raw, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i64 @strlen(ptr %t1)
|
|
%t3 = trunc i64 %t2 to i32
|
|
store i32 %t3, ptr %t4
|
|
store ptr null, ptr %t5
|
|
%t6 = load i32, ptr %t4
|
|
%t7 = add i32 %t6, 1
|
|
%t8 = zext i32 %t7 to i64
|
|
%t9 = call ptr @malloc(i64 %t8)
|
|
store ptr %t9, ptr %t10
|
|
store i32 0, ptr %t11
|
|
store i32 0, ptr %t12
|
|
br label %wcond0
|
|
wcond0:
|
|
%t13 = load i32, ptr %t12
|
|
%t14 = load i32, ptr %t4
|
|
%t15 = icmp slt i32 %t13, %t14
|
|
%t16 = zext i1 %t15 to i32
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t18 = load ptr, ptr %t0
|
|
%t19 = load i32, ptr %t12
|
|
%t20 = getelementptr inbounds i8, ptr %t18, i32 %t19
|
|
%t21 = load i8, ptr %t20
|
|
%t22 = zext i8 %t21 to i32
|
|
store i32 %t22, ptr %t23
|
|
%t24 = load i32, ptr %t23
|
|
%t25 = icmp eq i32 %t24, 123
|
|
%t26 = zext i1 %t25 to i32
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %then3, label %else4
|
|
then3:
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = load i32, ptr %t12
|
|
%t30 = add i32 %t29, 1
|
|
%t31 = getelementptr inbounds i8, ptr %t28, i32 %t30
|
|
%t32 = load i8, ptr %t31
|
|
%t33 = zext i8 %t32 to i32
|
|
%t34 = icmp eq i32 %t33, 123
|
|
%t35 = zext i1 %t34 to i32
|
|
%t36 = icmp ne i32 %t35, 0
|
|
br i1 %t36, label %then6, label %ifend8
|
|
then6:
|
|
%t37 = load ptr, ptr %t10
|
|
%t38 = load i32, ptr %t11
|
|
%t39 = getelementptr inbounds i8, ptr %t37, i32 %t38
|
|
%t40 = trunc i32 123 to i8
|
|
store i8 %t40, ptr %t39
|
|
%t41 = load i32, ptr %t11
|
|
%t42 = add i32 %t41, 1
|
|
store i32 %t42, ptr %t11
|
|
%t43 = load i32, ptr %t12
|
|
%t44 = add i32 %t43, 2
|
|
store i32 %t44, ptr %t12
|
|
br label %wcond0
|
|
ifend8:
|
|
%t45 = load i32, ptr %t11
|
|
%t46 = icmp sgt i32 %t45, 0
|
|
%t47 = zext i1 %t46 to i32
|
|
%t48 = icmp ne i32 %t47, 0
|
|
br i1 %t48, label %then9, label %ifend11
|
|
then9:
|
|
%t49 = load ptr, ptr %t5
|
|
%t50 = load ptr, ptr %t10
|
|
%t51 = load i32, ptr %t11
|
|
%t52 = call ptr @fn_interp_lit(ptr %t50, i32 %t51)
|
|
%t53 = call ptr @fn_interp_add(ptr %t49, ptr %t52)
|
|
store ptr %t53, ptr %t5
|
|
store i32 0, ptr %t11
|
|
br label %ifend11
|
|
ifend11:
|
|
%t54 = load i32, ptr %t12
|
|
%t55 = add i32 %t54, 1
|
|
store i32 %t55, ptr %t12
|
|
%t56 = load i32, ptr %t12
|
|
store i32 %t56, ptr %t57
|
|
store i32 1, ptr %t58
|
|
br label %wcond12
|
|
wcond12:
|
|
%t60 = load i32, ptr %t12
|
|
%t61 = load i32, ptr %t4
|
|
%t62 = icmp slt i32 %t60, %t61
|
|
%t63 = zext i1 %t62 to i32
|
|
%t64 = icmp ne i32 %t63, 0
|
|
%t65 = zext i1 %t64 to i32
|
|
store i32 %t65, ptr %t59
|
|
br i1 %t64, label %sc15, label %scend16
|
|
sc15:
|
|
%t66 = load i32, ptr %t58
|
|
%t67 = icmp sgt i32 %t66, 0
|
|
%t68 = zext i1 %t67 to i32
|
|
%t69 = icmp ne i32 %t68, 0
|
|
%t70 = zext i1 %t69 to i32
|
|
store i32 %t70, ptr %t59
|
|
br label %scend16
|
|
scend16:
|
|
%t71 = load i32, ptr %t59
|
|
%t72 = icmp ne i32 %t71, 0
|
|
br i1 %t72, label %wbody13, label %wend14
|
|
wbody13:
|
|
%t73 = load ptr, ptr %t0
|
|
%t74 = load i32, ptr %t12
|
|
%t75 = getelementptr inbounds i8, ptr %t73, i32 %t74
|
|
%t76 = load i8, ptr %t75
|
|
%t77 = zext i8 %t76 to i32
|
|
store i32 %t77, ptr %t78
|
|
%t79 = load i32, ptr %t78
|
|
%t80 = icmp eq i32 %t79, 123
|
|
%t81 = zext i1 %t80 to i32
|
|
%t82 = icmp ne i32 %t81, 0
|
|
br i1 %t82, label %then17, label %else18
|
|
then17:
|
|
%t83 = load i32, ptr %t58
|
|
%t84 = add i32 %t83, 1
|
|
store i32 %t84, ptr %t58
|
|
br label %ifend19
|
|
else18:
|
|
%t85 = load i32, ptr %t78
|
|
%t86 = icmp eq i32 %t85, 125
|
|
%t87 = zext i1 %t86 to i32
|
|
%t88 = icmp ne i32 %t87, 0
|
|
br i1 %t88, label %then20, label %ifend22
|
|
then20:
|
|
%t89 = load i32, ptr %t58
|
|
%t90 = sub i32 %t89, 1
|
|
store i32 %t90, ptr %t58
|
|
%t91 = load i32, ptr %t58
|
|
%t92 = icmp eq i32 %t91, 0
|
|
%t93 = zext i1 %t92 to i32
|
|
%t94 = icmp ne i32 %t93, 0
|
|
br i1 %t94, label %then23, label %ifend25
|
|
then23:
|
|
br label %wend14
|
|
ifend25:
|
|
br label %ifend22
|
|
ifend22:
|
|
br label %ifend19
|
|
ifend19:
|
|
%t95 = load i32, ptr %t12
|
|
%t96 = add i32 %t95, 1
|
|
store i32 %t96, ptr %t12
|
|
br label %wcond12
|
|
wend14:
|
|
%t97 = load ptr, ptr %t5
|
|
%t98 = load ptr, ptr %t0
|
|
%t99 = load i32, ptr %t57
|
|
%t100 = load i32, ptr %t12
|
|
%t101 = call ptr @fn_str_slice(ptr %t98, i32 %t99, i32 %t100)
|
|
%t102 = call ptr @fn_parse_hole(ptr %t101)
|
|
%t103 = call ptr @fn_interp_str(ptr %t102)
|
|
%t104 = call ptr @fn_interp_add(ptr %t97, ptr %t103)
|
|
store ptr %t104, ptr %t5
|
|
%t105 = load i32, ptr %t12
|
|
%t106 = add i32 %t105, 1
|
|
store i32 %t106, ptr %t12
|
|
br label %ifend5
|
|
else4:
|
|
%t108 = load i32, ptr %t23
|
|
%t109 = icmp eq i32 %t108, 125
|
|
%t110 = zext i1 %t109 to i32
|
|
%t111 = icmp ne i32 %t110, 0
|
|
%t112 = zext i1 %t111 to i32
|
|
store i32 %t112, ptr %t107
|
|
br i1 %t111, label %sc26, label %scend27
|
|
sc26:
|
|
%t113 = load ptr, ptr %t0
|
|
%t114 = load i32, ptr %t12
|
|
%t115 = add i32 %t114, 1
|
|
%t116 = getelementptr inbounds i8, ptr %t113, i32 %t115
|
|
%t117 = load i8, ptr %t116
|
|
%t118 = zext i8 %t117 to i32
|
|
%t119 = icmp eq i32 %t118, 125
|
|
%t120 = zext i1 %t119 to i32
|
|
%t121 = icmp ne i32 %t120, 0
|
|
%t122 = zext i1 %t121 to i32
|
|
store i32 %t122, ptr %t107
|
|
br label %scend27
|
|
scend27:
|
|
%t123 = load i32, ptr %t107
|
|
%t124 = icmp ne i32 %t123, 0
|
|
br i1 %t124, label %then28, label %ifend30
|
|
then28:
|
|
%t125 = load ptr, ptr %t10
|
|
%t126 = load i32, ptr %t11
|
|
%t127 = getelementptr inbounds i8, ptr %t125, i32 %t126
|
|
%t128 = trunc i32 125 to i8
|
|
store i8 %t128, ptr %t127
|
|
%t129 = load i32, ptr %t11
|
|
%t130 = add i32 %t129, 1
|
|
store i32 %t130, ptr %t11
|
|
%t131 = load i32, ptr %t12
|
|
%t132 = add i32 %t131, 2
|
|
store i32 %t132, ptr %t12
|
|
br label %wcond0
|
|
ifend30:
|
|
%t133 = load i32, ptr %t23
|
|
%t134 = icmp eq i32 %t133, 92
|
|
%t135 = zext i1 %t134 to i32
|
|
%t136 = icmp ne i32 %t135, 0
|
|
br i1 %t136, label %then31, label %ifend33
|
|
then31:
|
|
%t137 = load ptr, ptr %t0
|
|
%t138 = load i32, ptr %t12
|
|
%t139 = add i32 %t138, 1
|
|
%t140 = getelementptr inbounds i8, ptr %t137, i32 %t139
|
|
%t141 = load i8, ptr %t140
|
|
%t142 = zext i8 %t141 to i32
|
|
store i32 %t142, ptr %t143
|
|
%t144 = load i32, ptr %t143
|
|
store i32 %t144, ptr %t145
|
|
%t146 = load i32, ptr %t143
|
|
%t147 = icmp eq i32 %t146, 110
|
|
%t148 = zext i1 %t147 to i32
|
|
%t149 = icmp ne i32 %t148, 0
|
|
br i1 %t149, label %then34, label %ifend36
|
|
then34:
|
|
store i32 10, ptr %t145
|
|
br label %ifend36
|
|
ifend36:
|
|
%t150 = load i32, ptr %t143
|
|
%t151 = icmp eq i32 %t150, 116
|
|
%t152 = zext i1 %t151 to i32
|
|
%t153 = icmp ne i32 %t152, 0
|
|
br i1 %t153, label %then37, label %ifend39
|
|
then37:
|
|
store i32 9, ptr %t145
|
|
br label %ifend39
|
|
ifend39:
|
|
%t154 = load ptr, ptr %t10
|
|
%t155 = load i32, ptr %t11
|
|
%t156 = getelementptr inbounds i8, ptr %t154, i32 %t155
|
|
%t157 = load i32, ptr %t145
|
|
%t158 = trunc i32 %t157 to i8
|
|
store i8 %t158, ptr %t156
|
|
%t159 = load i32, ptr %t11
|
|
%t160 = add i32 %t159, 1
|
|
store i32 %t160, ptr %t11
|
|
%t161 = load i32, ptr %t12
|
|
%t162 = add i32 %t161, 2
|
|
store i32 %t162, ptr %t12
|
|
br label %wcond0
|
|
ifend33:
|
|
%t163 = load ptr, ptr %t10
|
|
%t164 = load i32, ptr %t11
|
|
%t165 = getelementptr inbounds i8, ptr %t163, i32 %t164
|
|
%t166 = load i32, ptr %t23
|
|
%t167 = trunc i32 %t166 to i8
|
|
store i8 %t167, ptr %t165
|
|
%t168 = load i32, ptr %t11
|
|
%t169 = add i32 %t168, 1
|
|
store i32 %t169, ptr %t11
|
|
%t170 = load i32, ptr %t12
|
|
%t171 = add i32 %t170, 1
|
|
store i32 %t171, ptr %t12
|
|
br label %ifend5
|
|
ifend5:
|
|
br label %wcond0
|
|
wend2:
|
|
%t173 = load i32, ptr %t11
|
|
%t174 = icmp sgt i32 %t173, 0
|
|
%t175 = zext i1 %t174 to i32
|
|
%t176 = icmp ne i32 %t175, 0
|
|
%t177 = zext i1 %t176 to i32
|
|
store i32 %t177, ptr %t172
|
|
br i1 %t176, label %scend41, label %sc40
|
|
sc40:
|
|
%t178 = load ptr, ptr %t5
|
|
%t179 = icmp eq ptr %t178, null
|
|
%t180 = zext i1 %t179 to i32
|
|
%t181 = icmp ne i32 %t180, 0
|
|
%t182 = zext i1 %t181 to i32
|
|
store i32 %t182, ptr %t172
|
|
br label %scend41
|
|
scend41:
|
|
%t183 = load i32, ptr %t172
|
|
%t184 = icmp ne i32 %t183, 0
|
|
br i1 %t184, label %then42, label %ifend44
|
|
then42:
|
|
%t185 = load ptr, ptr %t5
|
|
%t186 = load ptr, ptr %t10
|
|
%t187 = load i32, ptr %t11
|
|
%t188 = call ptr @fn_interp_lit(ptr %t186, i32 %t187)
|
|
%t189 = call ptr @fn_interp_add(ptr %t185, ptr %t188)
|
|
store ptr %t189, ptr %t5
|
|
br label %ifend44
|
|
ifend44:
|
|
%t190 = load ptr, ptr %t5
|
|
store ptr %t190, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t191 = load ptr, ptr %retval
|
|
ret ptr %t191
|
|
}
|
|
|
|
define ptr @fn_parse_emit() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t8 = alloca ptr
|
|
%t14 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 49)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
%t7 = call ptr @fn_node(i32 41)
|
|
store ptr %t7, ptr %t8
|
|
call void @fn_eat_op(ptr @.str14)
|
|
call void @fn_skipnl()
|
|
br label %wcond0
|
|
wcond0:
|
|
%t9 = call i32 @fn_is_op(ptr @.str15)
|
|
%t10 = icmp eq i32 %t9, 0
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t13 = call ptr @fn_node(i32 42)
|
|
store ptr %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1
|
|
%t17 = call ptr @fn_eat_id()
|
|
store ptr %t17, ptr %t16
|
|
call void @fn_eat_op(ptr @.str16)
|
|
%t18 = load ptr, ptr %t14
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 4
|
|
%t20 = call ptr @fn_expr()
|
|
store ptr %t20, ptr %t19
|
|
%t21 = load ptr, ptr %t8
|
|
%t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 7
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1
|
|
%t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2
|
|
%t26 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0
|
|
%t27 = load i32, ptr %t24
|
|
%t28 = load i32, ptr %t25
|
|
%t29 = icmp sge i32 %t27, %t28
|
|
br i1 %t29, label %grow3, label %put4
|
|
grow3:
|
|
%t30 = mul i32 %t28, 2
|
|
%t31 = icmp eq i32 %t28, 0
|
|
%t32 = select i1 %t31, i32 8, i32 %t30
|
|
%t33 = getelementptr ptr, ptr null, i32 1
|
|
%t34 = ptrtoint ptr %t33 to i64
|
|
%t35 = zext i32 %t32 to i64
|
|
%t36 = mul i64 %t35, %t34
|
|
%t37 = load ptr, ptr %t26
|
|
%t38 = call ptr @realloc(ptr %t37, i64 %t36)
|
|
store ptr %t38, ptr %t26
|
|
store i32 %t32, ptr %t25
|
|
br label %put4
|
|
put4:
|
|
%t39 = load ptr, ptr %t14
|
|
%t40 = load ptr, ptr %t26
|
|
%t41 = getelementptr inbounds ptr, ptr %t40, i32 %t27
|
|
store ptr %t39, ptr %t41
|
|
%t42 = add i32 %t27, 1
|
|
store i32 %t42, ptr %t24
|
|
call void @fn_skipnl()
|
|
%t43 = call i32 @fn_is_op(ptr @.str17)
|
|
%t44 = icmp ne i32 %t43, 0
|
|
br i1 %t44, label %then5, label %ifend7
|
|
then5:
|
|
%t45 = load i32, ptr @g_pi
|
|
%t46 = add i32 %t45, 1
|
|
store i32 %t46, ptr @g_pi
|
|
call void @fn_skipnl()
|
|
br label %ifend7
|
|
ifend7:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str18)
|
|
%t47 = load ptr, ptr %t3
|
|
%t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 4
|
|
%t49 = load ptr, ptr %t8
|
|
store ptr %t49, ptr %t48
|
|
%t50 = load ptr, ptr %t3
|
|
store ptr %t50, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t51 = load ptr, ptr %retval
|
|
ret ptr %t51
|
|
}
|
|
|
|
define ptr @fn_p_primary() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t19 = alloca i32
|
|
%t20 = alloca i32
|
|
%t60 = alloca ptr
|
|
%t76 = alloca ptr
|
|
%t92 = alloca ptr
|
|
%t113 = alloca ptr
|
|
%t125 = alloca ptr
|
|
%t147 = alloca ptr
|
|
%t153 = alloca ptr
|
|
%t167 = alloca ptr
|
|
%t0 = load ptr, ptr @g_toks
|
|
%t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = load i32, ptr @g_pi
|
|
%t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3
|
|
%t5 = load ptr, ptr %t4
|
|
store ptr %t5, ptr %t6
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = getelementptr inbounds %Cmp_Tok, ptr %t7, i32 0, i32 0
|
|
%t9 = load i32, ptr %t8
|
|
%t10 = icmp eq i32 %t9, 7
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then0, label %ifend2
|
|
then0:
|
|
%t13 = load i32, ptr @g_pi
|
|
%t14 = add i32 %t13, 1
|
|
store i32 %t14, ptr @g_pi
|
|
%t15 = load ptr, ptr %t6
|
|
%t16 = getelementptr inbounds %Cmp_Tok, ptr %t15, i32 0, i32 1
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = call ptr @fn_parse_interp(ptr %t17)
|
|
store ptr %t18, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t21 = load ptr, ptr %t6
|
|
%t22 = getelementptr inbounds %Cmp_Tok, ptr %t21, i32 0, i32 0
|
|
%t23 = load i32, ptr %t22
|
|
%t24 = icmp eq i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
%t26 = icmp ne i32 %t25, 0
|
|
%t27 = zext i1 %t26 to i32
|
|
store i32 %t27, ptr %t20
|
|
br i1 %t26, label %sc3, label %scend4
|
|
sc3:
|
|
%t28 = load ptr, ptr %t6
|
|
%t29 = getelementptr inbounds %Cmp_Tok, ptr %t28, i32 0, i32 1
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str19)
|
|
%t32 = icmp ne i32 %t31, 0
|
|
%t33 = zext i1 %t32 to i32
|
|
store i32 %t33, ptr %t20
|
|
br label %scend4
|
|
scend4:
|
|
%t34 = load i32, ptr %t20
|
|
%t35 = icmp ne i32 %t34, 0
|
|
%t36 = zext i1 %t35 to i32
|
|
store i32 %t36, ptr %t19
|
|
br i1 %t35, label %sc5, label %scend6
|
|
sc5:
|
|
%t37 = load ptr, ptr @g_toks
|
|
%t38 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 0
|
|
%t39 = load ptr, ptr %t38
|
|
%t40 = load i32, ptr @g_pi
|
|
%t41 = add i32 %t40, 1
|
|
%t42 = getelementptr inbounds ptr, ptr %t39, i32 %t41
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = getelementptr inbounds %Cmp_Tok, ptr %t43, i32 0, i32 0
|
|
%t45 = load i32, ptr %t44
|
|
%t46 = icmp eq i32 %t45, 0
|
|
%t47 = zext i1 %t46 to i32
|
|
%t48 = icmp ne i32 %t47, 0
|
|
%t49 = zext i1 %t48 to i32
|
|
store i32 %t49, ptr %t19
|
|
br label %scend6
|
|
scend6:
|
|
%t50 = load i32, ptr %t19
|
|
%t51 = icmp ne i32 %t50, 0
|
|
br i1 %t51, label %then7, label %ifend9
|
|
then7:
|
|
%t52 = call ptr @fn_parse_emit()
|
|
store ptr %t52, ptr %retval
|
|
br label %ret
|
|
ifend9:
|
|
%t53 = load ptr, ptr %t6
|
|
%t54 = getelementptr inbounds %Cmp_Tok, ptr %t53, i32 0, i32 0
|
|
%t55 = load i32, ptr %t54
|
|
%t56 = icmp eq i32 %t55, 1
|
|
%t57 = zext i1 %t56 to i32
|
|
%t58 = icmp ne i32 %t57, 0
|
|
br i1 %t58, label %then10, label %ifend12
|
|
then10:
|
|
%t59 = call ptr @fn_node(i32 30)
|
|
store ptr %t59, ptr %t60
|
|
%t61 = load ptr, ptr %t60
|
|
%t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 2
|
|
%t63 = load ptr, ptr %t6
|
|
%t64 = getelementptr inbounds %Cmp_Tok, ptr %t63, i32 0, i32 2
|
|
%t65 = load i32, ptr %t64
|
|
store i32 %t65, ptr %t62
|
|
%t66 = load i32, ptr @g_pi
|
|
%t67 = add i32 %t66, 1
|
|
store i32 %t67, ptr @g_pi
|
|
%t68 = load ptr, ptr %t60
|
|
store ptr %t68, ptr %retval
|
|
br label %ret
|
|
ifend12:
|
|
%t69 = load ptr, ptr %t6
|
|
%t70 = getelementptr inbounds %Cmp_Tok, ptr %t69, i32 0, i32 0
|
|
%t71 = load i32, ptr %t70
|
|
%t72 = icmp eq i32 %t71, 6
|
|
%t73 = zext i1 %t72 to i32
|
|
%t74 = icmp ne i32 %t73, 0
|
|
br i1 %t74, label %then13, label %ifend15
|
|
then13:
|
|
%t75 = call ptr @fn_node(i32 40)
|
|
store ptr %t75, ptr %t76
|
|
%t77 = load ptr, ptr %t76
|
|
%t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 2
|
|
%t79 = load ptr, ptr %t6
|
|
%t80 = getelementptr inbounds %Cmp_Tok, ptr %t79, i32 0, i32 2
|
|
%t81 = load i32, ptr %t80
|
|
store i32 %t81, ptr %t78
|
|
%t82 = load i32, ptr @g_pi
|
|
%t83 = add i32 %t82, 1
|
|
store i32 %t83, ptr @g_pi
|
|
%t84 = load ptr, ptr %t76
|
|
store ptr %t84, ptr %retval
|
|
br label %ret
|
|
ifend15:
|
|
%t85 = load ptr, ptr %t6
|
|
%t86 = getelementptr inbounds %Cmp_Tok, ptr %t85, i32 0, i32 0
|
|
%t87 = load i32, ptr %t86
|
|
%t88 = icmp eq i32 %t87, 2
|
|
%t89 = zext i1 %t88 to i32
|
|
%t90 = icmp ne i32 %t89, 0
|
|
br i1 %t90, label %then16, label %ifend18
|
|
then16:
|
|
%t91 = call ptr @fn_node(i32 31)
|
|
store ptr %t91, ptr %t92
|
|
%t93 = load ptr, ptr %t92
|
|
%t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 1
|
|
%t95 = load ptr, ptr %t6
|
|
%t96 = getelementptr inbounds %Cmp_Tok, ptr %t95, i32 0, i32 1
|
|
%t97 = load ptr, ptr %t96
|
|
store ptr %t97, ptr %t94
|
|
%t98 = load i32, ptr @g_pi
|
|
%t99 = add i32 %t98, 1
|
|
store i32 %t99, ptr @g_pi
|
|
%t100 = load ptr, ptr %t92
|
|
store ptr %t100, ptr %retval
|
|
br label %ret
|
|
ifend18:
|
|
%t101 = load ptr, ptr %t6
|
|
%t102 = getelementptr inbounds %Cmp_Tok, ptr %t101, i32 0, i32 0
|
|
%t103 = load i32, ptr %t102
|
|
%t104 = icmp eq i32 %t103, 0
|
|
%t105 = zext i1 %t104 to i32
|
|
%t106 = icmp ne i32 %t105, 0
|
|
br i1 %t106, label %then19, label %ifend21
|
|
then19:
|
|
%t107 = load ptr, ptr %t6
|
|
%t108 = getelementptr inbounds %Cmp_Tok, ptr %t107, i32 0, i32 1
|
|
%t109 = load ptr, ptr %t108
|
|
%t110 = call i32 @fn_str_eq(ptr %t109, ptr @.str20)
|
|
%t111 = icmp ne i32 %t110, 0
|
|
br i1 %t111, label %then22, label %ifend24
|
|
then22:
|
|
%t112 = call ptr @fn_node(i32 32)
|
|
store ptr %t112, ptr %t113
|
|
%t114 = load ptr, ptr %t113
|
|
%t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 2
|
|
store i32 1, ptr %t115
|
|
%t116 = load i32, ptr @g_pi
|
|
%t117 = add i32 %t116, 1
|
|
store i32 %t117, ptr @g_pi
|
|
%t118 = load ptr, ptr %t113
|
|
store ptr %t118, ptr %retval
|
|
br label %ret
|
|
ifend24:
|
|
%t119 = load ptr, ptr %t6
|
|
%t120 = getelementptr inbounds %Cmp_Tok, ptr %t119, i32 0, i32 1
|
|
%t121 = load ptr, ptr %t120
|
|
%t122 = call i32 @fn_str_eq(ptr %t121, ptr @.str21)
|
|
%t123 = icmp ne i32 %t122, 0
|
|
br i1 %t123, label %then25, label %ifend27
|
|
then25:
|
|
%t124 = call ptr @fn_node(i32 32)
|
|
store ptr %t124, ptr %t125
|
|
%t126 = load ptr, ptr %t125
|
|
%t127 = getelementptr inbounds %Cmp_Node, ptr %t126, i32 0, i32 2
|
|
store i32 0, ptr %t127
|
|
%t128 = load i32, ptr @g_pi
|
|
%t129 = add i32 %t128, 1
|
|
store i32 %t129, ptr @g_pi
|
|
%t130 = load ptr, ptr %t125
|
|
store ptr %t130, ptr %retval
|
|
br label %ret
|
|
ifend27:
|
|
%t131 = load ptr, ptr %t6
|
|
%t132 = getelementptr inbounds %Cmp_Tok, ptr %t131, i32 0, i32 1
|
|
%t133 = load ptr, ptr %t132
|
|
%t134 = call i32 @fn_str_eq(ptr %t133, ptr @.str22)
|
|
%t135 = icmp ne i32 %t134, 0
|
|
br i1 %t135, label %then28, label %ifend30
|
|
then28:
|
|
%t136 = load i32, ptr @g_pi
|
|
%t137 = add i32 %t136, 1
|
|
store i32 %t137, ptr @g_pi
|
|
%t138 = call ptr @fn_node(i32 43)
|
|
store ptr %t138, ptr %retval
|
|
br label %ret
|
|
ifend30:
|
|
%t139 = load ptr, ptr %t6
|
|
%t140 = getelementptr inbounds %Cmp_Tok, ptr %t139, i32 0, i32 1
|
|
%t141 = load ptr, ptr %t140
|
|
%t142 = call i32 @fn_str_eq(ptr %t141, ptr @.str23)
|
|
%t143 = icmp ne i32 %t142, 0
|
|
br i1 %t143, label %then31, label %ifend33
|
|
then31:
|
|
%t144 = load i32, ptr @g_pi
|
|
%t145 = add i32 %t144, 1
|
|
store i32 %t145, ptr @g_pi
|
|
%t146 = call ptr @fn_node(i32 39)
|
|
store ptr %t146, ptr %t147
|
|
%t148 = load ptr, ptr %t147
|
|
%t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 1
|
|
%t150 = call ptr @fn_ptype()
|
|
store ptr %t150, ptr %t149
|
|
%t151 = load ptr, ptr %t147
|
|
store ptr %t151, ptr %retval
|
|
br label %ret
|
|
ifend33:
|
|
%t152 = call ptr @fn_node(i32 33)
|
|
store ptr %t152, ptr %t153
|
|
%t154 = load ptr, ptr %t153
|
|
%t155 = getelementptr inbounds %Cmp_Node, ptr %t154, i32 0, i32 1
|
|
%t156 = load ptr, ptr %t6
|
|
%t157 = getelementptr inbounds %Cmp_Tok, ptr %t156, i32 0, i32 1
|
|
%t158 = load ptr, ptr %t157
|
|
store ptr %t158, ptr %t155
|
|
%t159 = load i32, ptr @g_pi
|
|
%t160 = add i32 %t159, 1
|
|
store i32 %t160, ptr @g_pi
|
|
%t161 = load ptr, ptr %t153
|
|
store ptr %t161, ptr %retval
|
|
br label %ret
|
|
ifend21:
|
|
%t162 = call i32 @fn_is_op(ptr @.str24)
|
|
%t163 = icmp ne i32 %t162, 0
|
|
br i1 %t163, label %then34, label %ifend36
|
|
then34:
|
|
%t164 = load i32, ptr @g_pi
|
|
%t165 = add i32 %t164, 1
|
|
store i32 %t165, ptr @g_pi
|
|
call void @fn_skipnl()
|
|
%t166 = call ptr @fn_expr()
|
|
store ptr %t166, ptr %t167
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str25)
|
|
%t168 = load ptr, ptr %t167
|
|
store ptr %t168, ptr %retval
|
|
br label %ret
|
|
ifend36:
|
|
call void @fn_perr(ptr @.str26)
|
|
%t169 = call ptr @fn_node(i32 30)
|
|
store ptr %t169, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t170 = load ptr, ptr %retval
|
|
ret ptr %t170
|
|
}
|
|
|
|
define ptr @fn_p_postfix() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t8 = alloca ptr
|
|
%t21 = alloca ptr
|
|
%t27 = alloca ptr
|
|
%t39 = alloca ptr
|
|
%t50 = alloca ptr
|
|
%t0 = call ptr @fn_p_primary()
|
|
store ptr %t0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = icmp ne i32 1, 0
|
|
br i1 %t2, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t3 = call i32 @fn_is_op(ptr @.str27)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then3, label %else4
|
|
then3:
|
|
%t5 = load i32, ptr @g_pi
|
|
%t6 = add i32 %t5, 1
|
|
store i32 %t6, ptr @g_pi
|
|
%t7 = call ptr @fn_node(i32 35)
|
|
store ptr %t7, ptr %t8
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4
|
|
%t11 = load ptr, ptr %t1
|
|
store ptr %t11, ptr %t10
|
|
%t12 = load ptr, ptr %t8
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1
|
|
%t14 = call ptr @fn_eat_id()
|
|
store ptr %t14, ptr %t13
|
|
%t15 = load ptr, ptr %t8
|
|
store ptr %t15, ptr %t1
|
|
br label %ifend5
|
|
else4:
|
|
%t16 = call i32 @fn_is_op(ptr @.str28)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %then6, label %else7
|
|
then6:
|
|
%t18 = load i32, ptr @g_pi
|
|
%t19 = add i32 %t18, 1
|
|
store i32 %t19, ptr @g_pi
|
|
%t20 = call ptr @fn_expr()
|
|
store ptr %t20, ptr %t21
|
|
%t22 = call i32 @fn_is_op(ptr @.str29)
|
|
%t23 = icmp ne i32 %t22, 0
|
|
br i1 %t23, label %then9, label %else10
|
|
then9:
|
|
%t24 = load i32, ptr @g_pi
|
|
%t25 = add i32 %t24, 1
|
|
store i32 %t25, ptr @g_pi
|
|
%t26 = call ptr @fn_node(i32 44)
|
|
store ptr %t26, ptr %t27
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 4
|
|
%t30 = load ptr, ptr %t1
|
|
store ptr %t30, ptr %t29
|
|
%t31 = load ptr, ptr %t27
|
|
%t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 5
|
|
%t33 = load ptr, ptr %t21
|
|
store ptr %t33, ptr %t32
|
|
%t34 = load ptr, ptr %t27
|
|
%t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 6
|
|
%t36 = call ptr @fn_expr()
|
|
store ptr %t36, ptr %t35
|
|
call void @fn_eat_op(ptr @.str30)
|
|
%t37 = load ptr, ptr %t27
|
|
store ptr %t37, ptr %t1
|
|
br label %ifend11
|
|
else10:
|
|
%t38 = call ptr @fn_node(i32 36)
|
|
store ptr %t38, ptr %t39
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 4
|
|
%t42 = load ptr, ptr %t1
|
|
store ptr %t42, ptr %t41
|
|
%t43 = load ptr, ptr %t39
|
|
%t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 5
|
|
%t45 = load ptr, ptr %t21
|
|
store ptr %t45, ptr %t44
|
|
call void @fn_eat_op(ptr @.str31)
|
|
%t46 = load ptr, ptr %t39
|
|
store ptr %t46, ptr %t1
|
|
br label %ifend11
|
|
ifend11:
|
|
br label %ifend8
|
|
else7:
|
|
%t47 = call i32 @fn_is_op(ptr @.str32)
|
|
%t48 = icmp ne i32 %t47, 0
|
|
br i1 %t48, label %then12, label %else13
|
|
then12:
|
|
%t49 = call ptr @fn_node(i32 34)
|
|
store ptr %t49, ptr %t50
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 4
|
|
%t53 = load ptr, ptr %t1
|
|
store ptr %t53, ptr %t52
|
|
%t54 = load ptr, ptr %t50
|
|
call void @fn_args_call(ptr %t54)
|
|
%t55 = load ptr, ptr %t50
|
|
store ptr %t55, ptr %t1
|
|
br label %ifend14
|
|
else13:
|
|
br label %wend2
|
|
ifend14:
|
|
br label %ifend8
|
|
ifend8:
|
|
br label %ifend5
|
|
ifend5:
|
|
br label %wcond0
|
|
wend2:
|
|
%t56 = load ptr, ptr %t1
|
|
store ptr %t56, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t57 = load ptr, ptr %retval
|
|
ret ptr %t57
|
|
}
|
|
|
|
define ptr @fn_p_unary() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t17 = alloca ptr
|
|
%t29 = alloca ptr
|
|
%t0 = call i32 @fn_is_op(ptr @.str33)
|
|
%t1 = icmp ne i32 %t0, 0
|
|
br i1 %t1, label %then0, label %ifend2
|
|
then0:
|
|
%t2 = load i32, ptr @g_pi
|
|
%t3 = add i32 %t2, 1
|
|
store i32 %t3, ptr @g_pi
|
|
%t4 = call ptr @fn_node(i32 38)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1
|
|
store ptr @.str34, ptr %t7
|
|
%t8 = load ptr, ptr %t5
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4
|
|
%t10 = call ptr @fn_p_unary()
|
|
store ptr %t10, ptr %t9
|
|
%t11 = load ptr, ptr %t5
|
|
store ptr %t11, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t12 = call i32 @fn_is_op(ptr @.str35)
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %then3, label %ifend5
|
|
then3:
|
|
%t14 = load i32, ptr @g_pi
|
|
%t15 = add i32 %t14, 1
|
|
store i32 %t15, ptr @g_pi
|
|
%t16 = call ptr @fn_node(i32 38)
|
|
store ptr %t16, ptr %t17
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1
|
|
store ptr @.str36, ptr %t19
|
|
%t20 = load ptr, ptr %t17
|
|
%t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 4
|
|
%t22 = call ptr @fn_p_unary()
|
|
store ptr %t22, ptr %t21
|
|
%t23 = load ptr, ptr %t17
|
|
store ptr %t23, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t24 = call i32 @fn_is_id(ptr @.str37)
|
|
%t25 = icmp ne i32 %t24, 0
|
|
br i1 %t25, label %then6, label %ifend8
|
|
then6:
|
|
%t26 = load i32, ptr @g_pi
|
|
%t27 = add i32 %t26, 1
|
|
store i32 %t27, ptr @g_pi
|
|
%t28 = call ptr @fn_node(i32 38)
|
|
store ptr %t28, ptr %t29
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 1
|
|
store ptr @.str38, ptr %t31
|
|
%t32 = load ptr, ptr %t29
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 4
|
|
%t34 = call ptr @fn_p_unary()
|
|
store ptr %t34, ptr %t33
|
|
%t35 = load ptr, ptr %t29
|
|
store ptr %t35, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t36 = call ptr @fn_p_postfix()
|
|
store ptr %t36, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t37 = load ptr, ptr %retval
|
|
ret ptr %t37
|
|
}
|
|
|
|
define ptr @fn_mkbin(ptr %arg_op, ptr %arg_l, ptr %arg_r) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t4 = alloca ptr
|
|
store ptr %arg_op, ptr %t0
|
|
store ptr %arg_l, ptr %t1
|
|
store ptr %arg_r, ptr %t2
|
|
%t3 = call ptr @fn_node(i32 37)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 1
|
|
%t7 = load ptr, ptr %t0
|
|
store ptr %t7, ptr %t6
|
|
%t8 = load ptr, ptr %t4
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4
|
|
%t10 = load ptr, ptr %t1
|
|
store ptr %t10, ptr %t9
|
|
%t11 = load ptr, ptr %t4
|
|
%t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 5
|
|
%t13 = load ptr, ptr %t2
|
|
store ptr %t13, ptr %t12
|
|
%t14 = load ptr, ptr %t4
|
|
store ptr %t14, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t15 = load ptr, ptr %retval
|
|
ret ptr %t15
|
|
}
|
|
|
|
define ptr @fn_p_mul() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t4 = alloca i32
|
|
%t5 = alloca i32
|
|
%t6 = alloca i32
|
|
%t47 = alloca ptr
|
|
%t0 = call ptr @fn_p_unary()
|
|
store ptr %t0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t7 = call i32 @fn_is_op(ptr @.str39)
|
|
%t8 = icmp ne i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
store i32 %t9, ptr %t6
|
|
br i1 %t8, label %scend4, label %sc3
|
|
sc3:
|
|
%t10 = call i32 @fn_is_op(ptr @.str40)
|
|
%t11 = icmp ne i32 %t10, 0
|
|
%t12 = zext i1 %t11 to i32
|
|
store i32 %t12, ptr %t6
|
|
br label %scend4
|
|
scend4:
|
|
%t13 = load i32, ptr %t6
|
|
%t14 = icmp ne i32 %t13, 0
|
|
%t15 = zext i1 %t14 to i32
|
|
store i32 %t15, ptr %t5
|
|
br i1 %t14, label %scend6, label %sc5
|
|
sc5:
|
|
%t16 = call i32 @fn_is_op(ptr @.str41)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
%t18 = zext i1 %t17 to i32
|
|
store i32 %t18, ptr %t5
|
|
br label %scend6
|
|
scend6:
|
|
%t19 = load i32, ptr %t5
|
|
%t20 = icmp ne i32 %t19, 0
|
|
%t21 = zext i1 %t20 to i32
|
|
store i32 %t21, ptr %t4
|
|
br i1 %t20, label %scend8, label %sc7
|
|
sc7:
|
|
%t22 = call i32 @fn_is_op(ptr @.str42)
|
|
%t23 = icmp ne i32 %t22, 0
|
|
%t24 = zext i1 %t23 to i32
|
|
store i32 %t24, ptr %t4
|
|
br label %scend8
|
|
scend8:
|
|
%t25 = load i32, ptr %t4
|
|
%t26 = icmp ne i32 %t25, 0
|
|
%t27 = zext i1 %t26 to i32
|
|
store i32 %t27, ptr %t3
|
|
br i1 %t26, label %scend10, label %sc9
|
|
sc9:
|
|
%t28 = call i32 @fn_is_op(ptr @.str43)
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
store i32 %t30, ptr %t3
|
|
br label %scend10
|
|
scend10:
|
|
%t31 = load i32, ptr %t3
|
|
%t32 = icmp ne i32 %t31, 0
|
|
%t33 = zext i1 %t32 to i32
|
|
store i32 %t33, ptr %t2
|
|
br i1 %t32, label %scend12, label %sc11
|
|
sc11:
|
|
%t34 = call i32 @fn_is_op(ptr @.str44)
|
|
%t35 = icmp ne i32 %t34, 0
|
|
%t36 = zext i1 %t35 to i32
|
|
store i32 %t36, ptr %t2
|
|
br label %scend12
|
|
scend12:
|
|
%t37 = load i32, ptr %t2
|
|
%t38 = icmp ne i32 %t37, 0
|
|
br i1 %t38, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t39 = load ptr, ptr @g_toks
|
|
%t40 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = load i32, ptr @g_pi
|
|
%t43 = getelementptr inbounds ptr, ptr %t41, i32 %t42
|
|
%t44 = load ptr, ptr %t43
|
|
%t45 = getelementptr inbounds %Cmp_Tok, ptr %t44, i32 0, i32 1
|
|
%t46 = load ptr, ptr %t45
|
|
store ptr %t46, ptr %t47
|
|
%t48 = load i32, ptr @g_pi
|
|
%t49 = add i32 %t48, 1
|
|
store i32 %t49, ptr @g_pi
|
|
%t50 = load ptr, ptr %t47
|
|
%t51 = load ptr, ptr %t1
|
|
%t52 = call ptr @fn_p_unary()
|
|
%t53 = call ptr @fn_mkbin(ptr %t50, ptr %t51, ptr %t52)
|
|
store ptr %t53, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
%t54 = load ptr, ptr %t1
|
|
store ptr %t54, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t55 = load ptr, ptr %retval
|
|
ret ptr %t55
|
|
}
|
|
|
|
define ptr @fn_p_add() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t4 = alloca i32
|
|
%t33 = alloca ptr
|
|
%t0 = call ptr @fn_p_mul()
|
|
store ptr %t0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t5 = call i32 @fn_is_op(ptr @.str45)
|
|
%t6 = icmp ne i32 %t5, 0
|
|
%t7 = zext i1 %t6 to i32
|
|
store i32 %t7, ptr %t4
|
|
br i1 %t6, label %scend4, label %sc3
|
|
sc3:
|
|
%t8 = call i32 @fn_is_op(ptr @.str46)
|
|
%t9 = icmp ne i32 %t8, 0
|
|
%t10 = zext i1 %t9 to i32
|
|
store i32 %t10, ptr %t4
|
|
br label %scend4
|
|
scend4:
|
|
%t11 = load i32, ptr %t4
|
|
%t12 = icmp ne i32 %t11, 0
|
|
%t13 = zext i1 %t12 to i32
|
|
store i32 %t13, ptr %t3
|
|
br i1 %t12, label %scend6, label %sc5
|
|
sc5:
|
|
%t14 = call i32 @fn_is_op(ptr @.str47)
|
|
%t15 = icmp ne i32 %t14, 0
|
|
%t16 = zext i1 %t15 to i32
|
|
store i32 %t16, ptr %t3
|
|
br label %scend6
|
|
scend6:
|
|
%t17 = load i32, ptr %t3
|
|
%t18 = icmp ne i32 %t17, 0
|
|
%t19 = zext i1 %t18 to i32
|
|
store i32 %t19, ptr %t2
|
|
br i1 %t18, label %scend8, label %sc7
|
|
sc7:
|
|
%t20 = call i32 @fn_is_op(ptr @.str48)
|
|
%t21 = icmp ne i32 %t20, 0
|
|
%t22 = zext i1 %t21 to i32
|
|
store i32 %t22, ptr %t2
|
|
br label %scend8
|
|
scend8:
|
|
%t23 = load i32, ptr %t2
|
|
%t24 = icmp ne i32 %t23, 0
|
|
br i1 %t24, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t25 = load ptr, ptr @g_toks
|
|
%t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0
|
|
%t27 = load ptr, ptr %t26
|
|
%t28 = load i32, ptr @g_pi
|
|
%t29 = getelementptr inbounds ptr, ptr %t27, i32 %t28
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = getelementptr inbounds %Cmp_Tok, ptr %t30, i32 0, i32 1
|
|
%t32 = load ptr, ptr %t31
|
|
store ptr %t32, ptr %t33
|
|
%t34 = load i32, ptr @g_pi
|
|
%t35 = add i32 %t34, 1
|
|
store i32 %t35, ptr @g_pi
|
|
%t36 = load ptr, ptr %t33
|
|
%t37 = load ptr, ptr %t1
|
|
%t38 = call ptr @fn_p_mul()
|
|
%t39 = call ptr @fn_mkbin(ptr %t36, ptr %t37, ptr %t38)
|
|
store ptr %t39, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
%t40 = load ptr, ptr %t1
|
|
store ptr %t40, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t41 = load ptr, ptr %retval
|
|
ret ptr %t41
|
|
}
|
|
|
|
define ptr @fn_p_cmp() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t4 = alloca i32
|
|
%t5 = alloca i32
|
|
%t6 = alloca i32
|
|
%t47 = alloca ptr
|
|
%t0 = call ptr @fn_p_add()
|
|
store ptr %t0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t7 = call i32 @fn_is_op(ptr @.str49)
|
|
%t8 = icmp ne i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
store i32 %t9, ptr %t6
|
|
br i1 %t8, label %scend4, label %sc3
|
|
sc3:
|
|
%t10 = call i32 @fn_is_op(ptr @.str50)
|
|
%t11 = icmp ne i32 %t10, 0
|
|
%t12 = zext i1 %t11 to i32
|
|
store i32 %t12, ptr %t6
|
|
br label %scend4
|
|
scend4:
|
|
%t13 = load i32, ptr %t6
|
|
%t14 = icmp ne i32 %t13, 0
|
|
%t15 = zext i1 %t14 to i32
|
|
store i32 %t15, ptr %t5
|
|
br i1 %t14, label %scend6, label %sc5
|
|
sc5:
|
|
%t16 = call i32 @fn_is_op(ptr @.str51)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
%t18 = zext i1 %t17 to i32
|
|
store i32 %t18, ptr %t5
|
|
br label %scend6
|
|
scend6:
|
|
%t19 = load i32, ptr %t5
|
|
%t20 = icmp ne i32 %t19, 0
|
|
%t21 = zext i1 %t20 to i32
|
|
store i32 %t21, ptr %t4
|
|
br i1 %t20, label %scend8, label %sc7
|
|
sc7:
|
|
%t22 = call i32 @fn_is_op(ptr @.str52)
|
|
%t23 = icmp ne i32 %t22, 0
|
|
%t24 = zext i1 %t23 to i32
|
|
store i32 %t24, ptr %t4
|
|
br label %scend8
|
|
scend8:
|
|
%t25 = load i32, ptr %t4
|
|
%t26 = icmp ne i32 %t25, 0
|
|
%t27 = zext i1 %t26 to i32
|
|
store i32 %t27, ptr %t3
|
|
br i1 %t26, label %scend10, label %sc9
|
|
sc9:
|
|
%t28 = call i32 @fn_is_op(ptr @.str53)
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
store i32 %t30, ptr %t3
|
|
br label %scend10
|
|
scend10:
|
|
%t31 = load i32, ptr %t3
|
|
%t32 = icmp ne i32 %t31, 0
|
|
%t33 = zext i1 %t32 to i32
|
|
store i32 %t33, ptr %t2
|
|
br i1 %t32, label %scend12, label %sc11
|
|
sc11:
|
|
%t34 = call i32 @fn_is_op(ptr @.str54)
|
|
%t35 = icmp ne i32 %t34, 0
|
|
%t36 = zext i1 %t35 to i32
|
|
store i32 %t36, ptr %t2
|
|
br label %scend12
|
|
scend12:
|
|
%t37 = load i32, ptr %t2
|
|
%t38 = icmp ne i32 %t37, 0
|
|
br i1 %t38, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t39 = load ptr, ptr @g_toks
|
|
%t40 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = load i32, ptr @g_pi
|
|
%t43 = getelementptr inbounds ptr, ptr %t41, i32 %t42
|
|
%t44 = load ptr, ptr %t43
|
|
%t45 = getelementptr inbounds %Cmp_Tok, ptr %t44, i32 0, i32 1
|
|
%t46 = load ptr, ptr %t45
|
|
store ptr %t46, ptr %t47
|
|
%t48 = load i32, ptr @g_pi
|
|
%t49 = add i32 %t48, 1
|
|
store i32 %t49, ptr @g_pi
|
|
%t50 = load ptr, ptr %t47
|
|
%t51 = load ptr, ptr %t1
|
|
%t52 = call ptr @fn_p_add()
|
|
%t53 = call ptr @fn_mkbin(ptr %t50, ptr %t51, ptr %t52)
|
|
store ptr %t53, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
%t54 = load ptr, ptr %t1
|
|
store ptr %t54, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t55 = load ptr, ptr %retval
|
|
ret ptr %t55
|
|
}
|
|
|
|
define ptr @fn_p_and() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t0 = call ptr @fn_p_cmp()
|
|
store ptr %t0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = call i32 @fn_is_id(ptr @.str55)
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t4 = load i32, ptr @g_pi
|
|
%t5 = add i32 %t4, 1
|
|
store i32 %t5, ptr @g_pi
|
|
%t6 = load ptr, ptr %t1
|
|
%t7 = call ptr @fn_p_cmp()
|
|
%t8 = call ptr @fn_mkbin(ptr @.str56, ptr %t6, ptr %t7)
|
|
store ptr %t8, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t10 = load ptr, ptr %retval
|
|
ret ptr %t10
|
|
}
|
|
|
|
define ptr @fn_p_or() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t0 = call ptr @fn_p_and()
|
|
store ptr %t0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = call i32 @fn_is_id(ptr @.str57)
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t4 = load i32, ptr @g_pi
|
|
%t5 = add i32 %t4, 1
|
|
store i32 %t5, ptr @g_pi
|
|
%t6 = load ptr, ptr %t1
|
|
%t7 = call ptr @fn_p_and()
|
|
%t8 = call ptr @fn_mkbin(ptr @.str58, ptr %t6, ptr %t7)
|
|
store ptr %t8, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t10 = load ptr, ptr %retval
|
|
ret ptr %t10
|
|
}
|
|
|
|
define ptr @fn_record() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t6 = alloca ptr
|
|
call void @fn_eat_op(ptr @.str59)
|
|
%t0 = call ptr @fn_node(i32 41)
|
|
store ptr %t0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = icmp ne i32 1, 0
|
|
br i1 %t2, label %wbody1, label %wend2
|
|
wbody1:
|
|
call void @fn_skipnl()
|
|
%t3 = call i32 @fn_is_op(ptr @.str60)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then3, label %ifend5
|
|
then3:
|
|
br label %wend2
|
|
ifend5:
|
|
%t5 = call ptr @fn_node(i32 42)
|
|
store ptr %t5, ptr %t6
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1
|
|
%t9 = call ptr @fn_eat_id()
|
|
store ptr %t9, ptr %t8
|
|
call void @fn_eat_op(ptr @.str61)
|
|
%t10 = load ptr, ptr %t6
|
|
%t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 4
|
|
%t12 = call ptr @fn_expr()
|
|
store ptr %t12, ptr %t11
|
|
%t13 = load ptr, ptr %t1
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 1
|
|
%t17 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 2
|
|
%t18 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0
|
|
%t19 = load i32, ptr %t16
|
|
%t20 = load i32, ptr %t17
|
|
%t21 = icmp sge i32 %t19, %t20
|
|
br i1 %t21, label %grow6, label %put7
|
|
grow6:
|
|
%t22 = mul i32 %t20, 2
|
|
%t23 = icmp eq i32 %t20, 0
|
|
%t24 = select i1 %t23, i32 8, i32 %t22
|
|
%t25 = getelementptr ptr, ptr null, i32 1
|
|
%t26 = ptrtoint ptr %t25 to i64
|
|
%t27 = zext i32 %t24 to i64
|
|
%t28 = mul i64 %t27, %t26
|
|
%t29 = load ptr, ptr %t18
|
|
%t30 = call ptr @realloc(ptr %t29, i64 %t28)
|
|
store ptr %t30, ptr %t18
|
|
store i32 %t24, ptr %t17
|
|
br label %put7
|
|
put7:
|
|
%t31 = load ptr, ptr %t6
|
|
%t32 = load ptr, ptr %t18
|
|
%t33 = getelementptr inbounds ptr, ptr %t32, i32 %t19
|
|
store ptr %t31, ptr %t33
|
|
%t34 = add i32 %t19, 1
|
|
store i32 %t34, ptr %t16
|
|
%t35 = call i32 @fn_is_op(ptr @.str62)
|
|
%t36 = icmp ne i32 %t35, 0
|
|
br i1 %t36, label %then8, label %ifend10
|
|
then8:
|
|
%t37 = load i32, ptr @g_pi
|
|
%t38 = add i32 %t37, 1
|
|
store i32 %t38, ptr @g_pi
|
|
br label %ifend10
|
|
ifend10:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str63)
|
|
%t39 = load ptr, ptr %t1
|
|
store ptr %t39, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t40 = load ptr, ptr %retval
|
|
ret ptr %t40
|
|
}
|
|
|
|
define ptr @fn_block() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t37 = alloca i32
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str64)
|
|
%t0 = call ptr @fn_node(i32 7)
|
|
store ptr %t0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = icmp ne i32 1, 0
|
|
br i1 %t2, label %wbody1, label %wend2
|
|
wbody1:
|
|
call void @fn_skipnl()
|
|
%t3 = call i32 @fn_is_op(ptr @.str65)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then3, label %ifend5
|
|
then3:
|
|
br label %wend2
|
|
ifend5:
|
|
%t5 = load ptr, ptr %t1
|
|
%t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 2
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0
|
|
%t11 = load i32, ptr %t8
|
|
%t12 = load i32, ptr %t9
|
|
%t13 = icmp sge i32 %t11, %t12
|
|
br i1 %t13, label %grow6, label %put7
|
|
grow6:
|
|
%t14 = mul i32 %t12, 2
|
|
%t15 = icmp eq i32 %t12, 0
|
|
%t16 = select i1 %t15, i32 8, i32 %t14
|
|
%t17 = getelementptr ptr, ptr null, i32 1
|
|
%t18 = ptrtoint ptr %t17 to i64
|
|
%t19 = zext i32 %t16 to i64
|
|
%t20 = mul i64 %t19, %t18
|
|
%t21 = load ptr, ptr %t10
|
|
%t22 = call ptr @realloc(ptr %t21, i64 %t20)
|
|
store ptr %t22, ptr %t10
|
|
store i32 %t16, ptr %t9
|
|
br label %put7
|
|
put7:
|
|
%t23 = call ptr @fn_stmt()
|
|
%t24 = load ptr, ptr %t10
|
|
%t25 = getelementptr inbounds ptr, ptr %t24, i32 %t11
|
|
store ptr %t23, ptr %t25
|
|
%t26 = add i32 %t11, 1
|
|
store i32 %t26, ptr %t8
|
|
%t27 = load ptr, ptr @g_toks
|
|
%t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0
|
|
%t29 = load ptr, ptr %t28
|
|
%t30 = load i32, ptr @g_pi
|
|
%t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %Cmp_Tok, ptr %t32, i32 0, i32 0
|
|
%t34 = load i32, ptr %t33
|
|
%t35 = icmp eq i32 %t34, 4
|
|
%t36 = zext i1 %t35 to i32
|
|
store i32 %t36, ptr %t37
|
|
%t38 = call i32 @fn_is_op(ptr @.str66)
|
|
%t39 = icmp ne i32 %t38, 0
|
|
br i1 %t39, label %then8, label %ifend10
|
|
then8:
|
|
store i32 1, ptr %t37
|
|
br label %ifend10
|
|
ifend10:
|
|
%t40 = load i32, ptr %t37
|
|
%t41 = icmp eq i32 %t40, 0
|
|
%t42 = zext i1 %t41 to i32
|
|
%t43 = icmp ne i32 %t42, 0
|
|
br i1 %t43, label %then11, label %ifend13
|
|
then11:
|
|
call void @fn_perr(ptr @.str67)
|
|
br label %ifend13
|
|
ifend13:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str68)
|
|
%t44 = load ptr, ptr %t1
|
|
store ptr %t44, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t45 = load ptr, ptr %retval
|
|
ret ptr %t45
|
|
}
|
|
|
|
define ptr @fn_stmt() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t13 = alloca i32
|
|
%t28 = alloca i32
|
|
%t37 = alloca ptr
|
|
%t77 = alloca ptr
|
|
%t78 = alloca i32
|
|
%t110 = alloca ptr
|
|
%t118 = alloca i32
|
|
%t141 = alloca ptr
|
|
%t160 = alloca ptr
|
|
%t165 = alloca ptr
|
|
%t190 = alloca ptr
|
|
%t194 = alloca i32
|
|
%t199 = alloca ptr
|
|
%t201 = alloca ptr
|
|
%t213 = alloca ptr
|
|
%t248 = alloca i32
|
|
%t279 = alloca ptr
|
|
%t292 = alloca ptr
|
|
%t297 = alloca i32
|
|
%t312 = alloca i32
|
|
%t321 = alloca ptr
|
|
%t357 = alloca ptr
|
|
%t384 = alloca ptr
|
|
%t430 = alloca ptr
|
|
%t438 = alloca ptr
|
|
%t472 = alloca ptr
|
|
%t522 = alloca ptr
|
|
%t523 = alloca i32
|
|
%t524 = alloca i32
|
|
%t525 = alloca i32
|
|
%t526 = alloca i32
|
|
%t554 = alloca ptr
|
|
%t585 = alloca ptr
|
|
%t0 = load ptr, ptr @g_toks
|
|
%t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = load i32, ptr @g_pi
|
|
%t4 = getelementptr inbounds ptr, ptr %t2, i32 %t3
|
|
%t5 = load ptr, ptr %t4
|
|
store ptr %t5, ptr %t6
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = getelementptr inbounds %Cmp_Tok, ptr %t7, i32 0, i32 0
|
|
%t9 = load i32, ptr %t8
|
|
%t10 = icmp eq i32 %t9, 0
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then0, label %ifend2
|
|
then0:
|
|
%t14 = load ptr, ptr %t6
|
|
%t15 = getelementptr inbounds %Cmp_Tok, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str69)
|
|
%t18 = icmp ne i32 %t17, 0
|
|
%t19 = zext i1 %t18 to i32
|
|
store i32 %t19, ptr %t13
|
|
br i1 %t18, label %scend4, label %sc3
|
|
sc3:
|
|
%t20 = load ptr, ptr %t6
|
|
%t21 = getelementptr inbounds %Cmp_Tok, ptr %t20, i32 0, i32 1
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str70)
|
|
%t24 = icmp ne i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
store i32 %t25, ptr %t13
|
|
br label %scend4
|
|
scend4:
|
|
%t26 = load i32, ptr %t13
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %then5, label %ifend7
|
|
then5:
|
|
store i32 0, ptr %t28
|
|
%t29 = load ptr, ptr %t6
|
|
%t30 = getelementptr inbounds %Cmp_Tok, ptr %t29, i32 0, i32 1
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str71)
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then8, label %ifend10
|
|
then8:
|
|
store i32 1, ptr %t28
|
|
br label %ifend10
|
|
ifend10:
|
|
%t34 = load i32, ptr @g_pi
|
|
%t35 = add i32 %t34, 1
|
|
store i32 %t35, ptr @g_pi
|
|
%t36 = call ptr @fn_node(i32 10)
|
|
store ptr %t36, ptr %t37
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 2
|
|
%t40 = load i32, ptr %t28
|
|
store i32 %t40, ptr %t39
|
|
%t41 = load ptr, ptr %t37
|
|
%t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 8
|
|
%t43 = load ptr, ptr @g_toks
|
|
%t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 0
|
|
%t45 = load ptr, ptr %t44
|
|
%t46 = load i32, ptr @g_pi
|
|
%t47 = getelementptr inbounds ptr, ptr %t45, i32 %t46
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = getelementptr inbounds %Cmp_Tok, ptr %t48, i32 0, i32 3
|
|
%t50 = load i32, ptr %t49
|
|
store i32 %t50, ptr %t42
|
|
%t51 = load ptr, ptr %t37
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1
|
|
%t53 = call ptr @fn_eat_id()
|
|
store ptr %t53, ptr %t52
|
|
%t54 = call i32 @fn_is_op(ptr @.str72)
|
|
%t55 = icmp ne i32 %t54, 0
|
|
br i1 %t55, label %then11, label %ifend13
|
|
then11:
|
|
%t56 = load i32, ptr @g_pi
|
|
%t57 = add i32 %t56, 1
|
|
store i32 %t57, ptr @g_pi
|
|
%t58 = load ptr, ptr %t37
|
|
%t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 3
|
|
%t60 = call ptr @fn_ptype()
|
|
store ptr %t60, ptr %t59
|
|
br label %ifend13
|
|
ifend13:
|
|
%t61 = call i32 @fn_is_op(ptr @.str73)
|
|
%t62 = icmp ne i32 %t61, 0
|
|
br i1 %t62, label %then14, label %ifend16
|
|
then14:
|
|
%t63 = load i32, ptr @g_pi
|
|
%t64 = add i32 %t63, 1
|
|
store i32 %t64, ptr @g_pi
|
|
%t65 = load ptr, ptr %t37
|
|
%t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 4
|
|
%t67 = call ptr @fn_expr()
|
|
store ptr %t67, ptr %t66
|
|
br label %ifend16
|
|
ifend16:
|
|
%t68 = load ptr, ptr %t37
|
|
store ptr %t68, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t69 = load ptr, ptr %t6
|
|
%t70 = getelementptr inbounds %Cmp_Tok, ptr %t69, i32 0, i32 1
|
|
%t71 = load ptr, ptr %t70
|
|
%t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str74)
|
|
%t73 = icmp ne i32 %t72, 0
|
|
br i1 %t73, label %then17, label %ifend19
|
|
then17:
|
|
%t74 = load i32, ptr @g_pi
|
|
%t75 = add i32 %t74, 1
|
|
store i32 %t75, ptr @g_pi
|
|
%t76 = call ptr @fn_node(i32 15)
|
|
store ptr %t76, ptr %t77
|
|
%t79 = load ptr, ptr @g_toks
|
|
%t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0
|
|
%t81 = load ptr, ptr %t80
|
|
%t82 = load i32, ptr @g_pi
|
|
%t83 = getelementptr inbounds ptr, ptr %t81, i32 %t82
|
|
%t84 = load ptr, ptr %t83
|
|
%t85 = getelementptr inbounds %Cmp_Tok, ptr %t84, i32 0, i32 0
|
|
%t86 = load i32, ptr %t85
|
|
%t87 = icmp ne i32 %t86, 4
|
|
%t88 = zext i1 %t87 to i32
|
|
%t89 = icmp ne i32 %t88, 0
|
|
%t90 = zext i1 %t89 to i32
|
|
store i32 %t90, ptr %t78
|
|
br i1 %t89, label %sc20, label %scend21
|
|
sc20:
|
|
%t91 = call i32 @fn_is_op(ptr @.str75)
|
|
%t92 = icmp eq i32 %t91, 0
|
|
%t93 = zext i1 %t92 to i32
|
|
%t94 = icmp ne i32 %t93, 0
|
|
%t95 = zext i1 %t94 to i32
|
|
store i32 %t95, ptr %t78
|
|
br label %scend21
|
|
scend21:
|
|
%t96 = load i32, ptr %t78
|
|
%t97 = icmp ne i32 %t96, 0
|
|
br i1 %t97, label %then22, label %ifend24
|
|
then22:
|
|
%t98 = load ptr, ptr %t77
|
|
%t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 4
|
|
%t100 = call ptr @fn_expr()
|
|
store ptr %t100, ptr %t99
|
|
br label %ifend24
|
|
ifend24:
|
|
%t101 = load ptr, ptr %t77
|
|
store ptr %t101, ptr %retval
|
|
br label %ret
|
|
ifend19:
|
|
%t102 = load ptr, ptr %t6
|
|
%t103 = getelementptr inbounds %Cmp_Tok, ptr %t102, i32 0, i32 1
|
|
%t104 = load ptr, ptr %t103
|
|
%t105 = call i32 @fn_str_eq(ptr %t104, ptr @.str76)
|
|
%t106 = icmp ne i32 %t105, 0
|
|
br i1 %t106, label %then25, label %ifend27
|
|
then25:
|
|
%t107 = load i32, ptr @g_pi
|
|
%t108 = add i32 %t107, 1
|
|
store i32 %t108, ptr @g_pi
|
|
%t109 = call ptr @fn_node(i32 12)
|
|
store ptr %t109, ptr %t110
|
|
%t111 = load ptr, ptr %t110
|
|
%t112 = getelementptr inbounds %Cmp_Node, ptr %t111, i32 0, i32 4
|
|
%t113 = call ptr @fn_expr()
|
|
store ptr %t113, ptr %t112
|
|
%t114 = load ptr, ptr %t110
|
|
%t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 5
|
|
%t116 = call ptr @fn_block()
|
|
store ptr %t116, ptr %t115
|
|
%t117 = load i32, ptr @g_pi
|
|
store i32 %t117, ptr %t118
|
|
call void @fn_skipnl()
|
|
%t119 = call i32 @fn_is_id(ptr @.str77)
|
|
%t120 = icmp ne i32 %t119, 0
|
|
br i1 %t120, label %then28, label %else29
|
|
then28:
|
|
%t121 = load i32, ptr @g_pi
|
|
%t122 = add i32 %t121, 1
|
|
store i32 %t122, ptr @g_pi
|
|
call void @fn_skipnl()
|
|
%t123 = call i32 @fn_is_id(ptr @.str78)
|
|
%t124 = icmp ne i32 %t123, 0
|
|
br i1 %t124, label %then31, label %else32
|
|
then31:
|
|
%t125 = load ptr, ptr %t110
|
|
%t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 6
|
|
%t127 = call ptr @fn_stmt()
|
|
store ptr %t127, ptr %t126
|
|
br label %ifend33
|
|
else32:
|
|
%t128 = load ptr, ptr %t110
|
|
%t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 6
|
|
%t130 = call ptr @fn_block()
|
|
store ptr %t130, ptr %t129
|
|
br label %ifend33
|
|
ifend33:
|
|
br label %ifend30
|
|
else29:
|
|
%t131 = load i32, ptr %t118
|
|
store i32 %t131, ptr @g_pi
|
|
br label %ifend30
|
|
ifend30:
|
|
%t132 = load ptr, ptr %t110
|
|
store ptr %t132, ptr %retval
|
|
br label %ret
|
|
ifend27:
|
|
%t133 = load ptr, ptr %t6
|
|
%t134 = getelementptr inbounds %Cmp_Tok, ptr %t133, i32 0, i32 1
|
|
%t135 = load ptr, ptr %t134
|
|
%t136 = call i32 @fn_str_eq(ptr %t135, ptr @.str79)
|
|
%t137 = icmp ne i32 %t136, 0
|
|
br i1 %t137, label %then34, label %ifend36
|
|
then34:
|
|
%t138 = load i32, ptr @g_pi
|
|
%t139 = add i32 %t138, 1
|
|
store i32 %t139, ptr @g_pi
|
|
%t140 = call ptr @fn_node(i32 13)
|
|
store ptr %t140, ptr %t141
|
|
%t142 = load ptr, ptr %t141
|
|
%t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 4
|
|
%t144 = call ptr @fn_expr()
|
|
store ptr %t144, ptr %t143
|
|
%t145 = load ptr, ptr %t141
|
|
%t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 5
|
|
%t147 = call ptr @fn_block()
|
|
store ptr %t147, ptr %t146
|
|
%t148 = load ptr, ptr %t141
|
|
store ptr %t148, ptr %retval
|
|
br label %ret
|
|
ifend36:
|
|
%t149 = load ptr, ptr %t6
|
|
%t150 = getelementptr inbounds %Cmp_Tok, ptr %t149, i32 0, i32 1
|
|
%t151 = load ptr, ptr %t150
|
|
%t152 = call i32 @fn_str_eq(ptr %t151, ptr @.str80)
|
|
%t153 = icmp ne i32 %t152, 0
|
|
br i1 %t153, label %then37, label %ifend39
|
|
then37:
|
|
%t154 = load i32, ptr @g_pi
|
|
%t155 = add i32 %t154, 1
|
|
store i32 %t155, ptr @g_pi
|
|
%t156 = call i32 @fn_is_op(ptr @.str81)
|
|
%t157 = icmp ne i32 %t156, 0
|
|
br i1 %t157, label %then40, label %ifend42
|
|
then40:
|
|
%t158 = call ptr @fn_parse_query_for()
|
|
store ptr %t158, ptr %retval
|
|
br label %ret
|
|
ifend42:
|
|
%t159 = call ptr @fn_node(i32 14)
|
|
store ptr %t159, ptr %t160
|
|
%t161 = load ptr, ptr %t160
|
|
%t162 = getelementptr inbounds %Cmp_Node, ptr %t161, i32 0, i32 1
|
|
%t163 = call ptr @fn_eat_id()
|
|
store ptr %t163, ptr %t162
|
|
%t164 = call ptr @fn_eat_id()
|
|
store ptr %t164, ptr %t165
|
|
%t166 = load ptr, ptr %t160
|
|
%t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 4
|
|
%t168 = call ptr @fn_expr()
|
|
store ptr %t168, ptr %t167
|
|
call void @fn_eat_op(ptr @.str82)
|
|
%t169 = load ptr, ptr %t160
|
|
%t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 5
|
|
%t171 = call ptr @fn_expr()
|
|
store ptr %t171, ptr %t170
|
|
%t172 = load ptr, ptr %t160
|
|
%t173 = getelementptr inbounds %Cmp_Node, ptr %t172, i32 0, i32 6
|
|
%t174 = call ptr @fn_block()
|
|
store ptr %t174, ptr %t173
|
|
%t175 = load ptr, ptr %t160
|
|
store ptr %t175, ptr %retval
|
|
br label %ret
|
|
ifend39:
|
|
%t176 = load ptr, ptr %t6
|
|
%t177 = getelementptr inbounds %Cmp_Tok, ptr %t176, i32 0, i32 1
|
|
%t178 = load ptr, ptr %t177
|
|
%t179 = call i32 @fn_str_eq(ptr %t178, ptr @.str83)
|
|
%t180 = icmp ne i32 %t179, 0
|
|
br i1 %t180, label %then43, label %ifend45
|
|
then43:
|
|
%t181 = call ptr @fn_parse_spawn()
|
|
store ptr %t181, ptr %retval
|
|
br label %ret
|
|
ifend45:
|
|
%t182 = load ptr, ptr %t6
|
|
%t183 = getelementptr inbounds %Cmp_Tok, ptr %t182, i32 0, i32 1
|
|
%t184 = load ptr, ptr %t183
|
|
%t185 = call i32 @fn_str_eq(ptr %t184, ptr @.str84)
|
|
%t186 = icmp ne i32 %t185, 0
|
|
br i1 %t186, label %then46, label %ifend48
|
|
then46:
|
|
%t187 = load i32, ptr @g_pi
|
|
%t188 = add i32 %t187, 1
|
|
store i32 %t188, ptr @g_pi
|
|
%t189 = call ptr @fn_node(i32 24)
|
|
store ptr %t189, ptr %t190
|
|
%t191 = load ptr, ptr %t190
|
|
%t192 = getelementptr inbounds %Cmp_Node, ptr %t191, i32 0, i32 4
|
|
%t193 = call ptr @fn_expr()
|
|
store ptr %t193, ptr %t192
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str85)
|
|
store i32 0, ptr %t194
|
|
br label %wcond49
|
|
wcond49:
|
|
%t195 = icmp ne i32 1, 0
|
|
br i1 %t195, label %wbody50, label %wend51
|
|
wbody50:
|
|
call void @fn_skipnl()
|
|
%t196 = call i32 @fn_is_op(ptr @.str86)
|
|
%t197 = icmp ne i32 %t196, 0
|
|
br i1 %t197, label %then52, label %ifend54
|
|
then52:
|
|
br label %wend51
|
|
ifend54:
|
|
%t198 = call ptr @fn_eat_id()
|
|
store ptr %t198, ptr %t199
|
|
%t200 = call ptr @fn_node(i32 25)
|
|
store ptr %t200, ptr %t201
|
|
%t202 = load ptr, ptr %t201
|
|
%t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 1
|
|
%t204 = call ptr @fn_eat_id()
|
|
store ptr %t204, ptr %t203
|
|
%t205 = call i32 @fn_is_op(ptr @.str87)
|
|
%t206 = icmp ne i32 %t205, 0
|
|
br i1 %t206, label %then55, label %else56
|
|
then55:
|
|
%t207 = load i32, ptr @g_pi
|
|
%t208 = add i32 %t207, 1
|
|
store i32 %t208, ptr @g_pi
|
|
%t209 = load ptr, ptr %t201
|
|
%t210 = getelementptr inbounds %Cmp_Node, ptr %t209, i32 0, i32 5
|
|
%t211 = call ptr @fn_expr()
|
|
store ptr %t211, ptr %t210
|
|
br label %ifend57
|
|
else56:
|
|
%t212 = call ptr @fn_node(i32 30)
|
|
store ptr %t212, ptr %t213
|
|
%t214 = load ptr, ptr %t213
|
|
%t215 = getelementptr inbounds %Cmp_Node, ptr %t214, i32 0, i32 2
|
|
%t216 = load i32, ptr %t194
|
|
store i32 %t216, ptr %t215
|
|
%t217 = load ptr, ptr %t201
|
|
%t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 5
|
|
%t219 = load ptr, ptr %t213
|
|
store ptr %t219, ptr %t218
|
|
br label %ifend57
|
|
ifend57:
|
|
call void @fn_skipnl()
|
|
%t220 = load ptr, ptr %t201
|
|
%t221 = getelementptr inbounds %Cmp_Node, ptr %t220, i32 0, i32 4
|
|
%t222 = call ptr @fn_block()
|
|
store ptr %t222, ptr %t221
|
|
%t223 = load ptr, ptr %t190
|
|
%t224 = getelementptr inbounds %Cmp_Node, ptr %t223, i32 0, i32 7
|
|
%t225 = load ptr, ptr %t224
|
|
%t226 = getelementptr inbounds %LSlice, ptr %t225, i32 0, i32 1
|
|
%t227 = getelementptr inbounds %LSlice, ptr %t225, i32 0, i32 2
|
|
%t228 = getelementptr inbounds %LSlice, ptr %t225, i32 0, i32 0
|
|
%t229 = load i32, ptr %t226
|
|
%t230 = load i32, ptr %t227
|
|
%t231 = icmp sge i32 %t229, %t230
|
|
br i1 %t231, label %grow58, label %put59
|
|
grow58:
|
|
%t232 = mul i32 %t230, 2
|
|
%t233 = icmp eq i32 %t230, 0
|
|
%t234 = select i1 %t233, i32 8, i32 %t232
|
|
%t235 = getelementptr ptr, ptr null, i32 1
|
|
%t236 = ptrtoint ptr %t235 to i64
|
|
%t237 = zext i32 %t234 to i64
|
|
%t238 = mul i64 %t237, %t236
|
|
%t239 = load ptr, ptr %t228
|
|
%t240 = call ptr @realloc(ptr %t239, i64 %t238)
|
|
store ptr %t240, ptr %t228
|
|
store i32 %t234, ptr %t227
|
|
br label %put59
|
|
put59:
|
|
%t241 = load ptr, ptr %t201
|
|
%t242 = load ptr, ptr %t228
|
|
%t243 = getelementptr inbounds ptr, ptr %t242, i32 %t229
|
|
store ptr %t241, ptr %t243
|
|
%t244 = add i32 %t229, 1
|
|
store i32 %t244, ptr %t226
|
|
%t245 = load i32, ptr %t194
|
|
%t246 = add i32 %t245, 1
|
|
store i32 %t246, ptr %t194
|
|
br label %wcond49
|
|
wend51:
|
|
call void @fn_eat_op(ptr @.str88)
|
|
%t247 = load ptr, ptr %t190
|
|
store ptr %t247, ptr %retval
|
|
br label %ret
|
|
ifend48:
|
|
%t249 = load ptr, ptr %t6
|
|
%t250 = getelementptr inbounds %Cmp_Tok, ptr %t249, i32 0, i32 1
|
|
%t251 = load ptr, ptr %t250
|
|
%t252 = call i32 @fn_str_eq(ptr %t251, ptr @.str89)
|
|
%t253 = icmp ne i32 %t252, 0
|
|
%t254 = zext i1 %t253 to i32
|
|
store i32 %t254, ptr %t248
|
|
br i1 %t253, label %sc60, label %scend61
|
|
sc60:
|
|
%t255 = load ptr, ptr @g_toks
|
|
%t256 = getelementptr inbounds %LSlice, ptr %t255, i32 0, i32 0
|
|
%t257 = load ptr, ptr %t256
|
|
%t258 = load i32, ptr @g_pi
|
|
%t259 = add i32 %t258, 1
|
|
%t260 = getelementptr inbounds ptr, ptr %t257, i32 %t259
|
|
%t261 = load ptr, ptr %t260
|
|
%t262 = getelementptr inbounds %Cmp_Tok, ptr %t261, i32 0, i32 0
|
|
%t263 = load i32, ptr %t262
|
|
%t264 = icmp eq i32 %t263, 0
|
|
%t265 = zext i1 %t264 to i32
|
|
%t266 = icmp ne i32 %t265, 0
|
|
%t267 = zext i1 %t266 to i32
|
|
store i32 %t267, ptr %t248
|
|
br label %scend61
|
|
scend61:
|
|
%t268 = load i32, ptr %t248
|
|
%t269 = icmp ne i32 %t268, 0
|
|
br i1 %t269, label %then62, label %ifend64
|
|
then62:
|
|
%t270 = call ptr @fn_parse_emit()
|
|
store ptr %t270, ptr %retval
|
|
br label %ret
|
|
ifend64:
|
|
%t271 = load ptr, ptr %t6
|
|
%t272 = getelementptr inbounds %Cmp_Tok, ptr %t271, i32 0, i32 1
|
|
%t273 = load ptr, ptr %t272
|
|
%t274 = call i32 @fn_str_eq(ptr %t273, ptr @.str90)
|
|
%t275 = icmp ne i32 %t274, 0
|
|
br i1 %t275, label %then65, label %ifend67
|
|
then65:
|
|
%t276 = load i32, ptr @g_pi
|
|
%t277 = add i32 %t276, 1
|
|
store i32 %t277, ptr @g_pi
|
|
%t278 = call ptr @fn_node(i32 26)
|
|
store ptr %t278, ptr %t279
|
|
%t280 = load ptr, ptr %t279
|
|
%t281 = getelementptr inbounds %Cmp_Node, ptr %t280, i32 0, i32 1
|
|
%t282 = call ptr @fn_eat_id()
|
|
store ptr %t282, ptr %t281
|
|
%t283 = load ptr, ptr %t279
|
|
store ptr %t283, ptr %retval
|
|
br label %ret
|
|
ifend67:
|
|
%t284 = load ptr, ptr %t6
|
|
%t285 = getelementptr inbounds %Cmp_Tok, ptr %t284, i32 0, i32 1
|
|
%t286 = load ptr, ptr %t285
|
|
%t287 = call i32 @fn_str_eq(ptr %t286, ptr @.str91)
|
|
%t288 = icmp ne i32 %t287, 0
|
|
br i1 %t288, label %then68, label %ifend70
|
|
then68:
|
|
%t289 = load i32, ptr @g_pi
|
|
%t290 = add i32 %t289, 1
|
|
store i32 %t290, ptr @g_pi
|
|
%t291 = call ptr @fn_node(i32 23)
|
|
store ptr %t291, ptr %t292
|
|
%t293 = load ptr, ptr %t292
|
|
%t294 = getelementptr inbounds %Cmp_Node, ptr %t293, i32 0, i32 4
|
|
%t295 = call ptr @fn_expr()
|
|
store ptr %t295, ptr %t294
|
|
%t296 = load ptr, ptr %t292
|
|
store ptr %t296, ptr %retval
|
|
br label %ret
|
|
ifend70:
|
|
%t298 = load ptr, ptr %t6
|
|
%t299 = getelementptr inbounds %Cmp_Tok, ptr %t298, i32 0, i32 1
|
|
%t300 = load ptr, ptr %t299
|
|
%t301 = call i32 @fn_str_eq(ptr %t300, ptr @.str92)
|
|
%t302 = icmp ne i32 %t301, 0
|
|
%t303 = zext i1 %t302 to i32
|
|
store i32 %t303, ptr %t297
|
|
br i1 %t302, label %scend72, label %sc71
|
|
sc71:
|
|
%t304 = load ptr, ptr %t6
|
|
%t305 = getelementptr inbounds %Cmp_Tok, ptr %t304, i32 0, i32 1
|
|
%t306 = load ptr, ptr %t305
|
|
%t307 = call i32 @fn_str_eq(ptr %t306, ptr @.str93)
|
|
%t308 = icmp ne i32 %t307, 0
|
|
%t309 = zext i1 %t308 to i32
|
|
store i32 %t309, ptr %t297
|
|
br label %scend72
|
|
scend72:
|
|
%t310 = load i32, ptr %t297
|
|
%t311 = icmp ne i32 %t310, 0
|
|
br i1 %t311, label %then73, label %ifend75
|
|
then73:
|
|
store i32 0, ptr %t312
|
|
%t313 = load ptr, ptr %t6
|
|
%t314 = getelementptr inbounds %Cmp_Tok, ptr %t313, i32 0, i32 1
|
|
%t315 = load ptr, ptr %t314
|
|
%t316 = call i32 @fn_str_eq(ptr %t315, ptr @.str94)
|
|
%t317 = icmp ne i32 %t316, 0
|
|
br i1 %t317, label %then76, label %ifend78
|
|
then76:
|
|
store i32 1, ptr %t312
|
|
br label %ifend78
|
|
ifend78:
|
|
%t318 = load i32, ptr @g_pi
|
|
%t319 = add i32 %t318, 1
|
|
store i32 %t319, ptr @g_pi
|
|
%t320 = call ptr @fn_node(i32 28)
|
|
store ptr %t320, ptr %t321
|
|
%t322 = load ptr, ptr %t321
|
|
%t323 = getelementptr inbounds %Cmp_Node, ptr %t322, i32 0, i32 2
|
|
%t324 = load i32, ptr %t312
|
|
store i32 %t324, ptr %t323
|
|
%t325 = call i32 @fn_is_id(ptr @.str95)
|
|
%t326 = icmp ne i32 %t325, 0
|
|
br i1 %t326, label %then79, label %ifend81
|
|
then79:
|
|
%t327 = load i32, ptr @g_pi
|
|
%t328 = add i32 %t327, 1
|
|
store i32 %t328, ptr @g_pi
|
|
%t329 = load ptr, ptr %t321
|
|
%t330 = getelementptr inbounds %Cmp_Node, ptr %t329, i32 0, i32 3
|
|
store ptr @.str96, ptr %t330
|
|
%t331 = load ptr, ptr %t321
|
|
%t332 = getelementptr inbounds %Cmp_Node, ptr %t331, i32 0, i32 1
|
|
%t333 = call ptr @fn_eat_id()
|
|
store ptr %t333, ptr %t332
|
|
%t334 = load ptr, ptr %t321
|
|
%t335 = getelementptr inbounds %Cmp_Node, ptr %t334, i32 0, i32 1
|
|
%t336 = load ptr, ptr %t335
|
|
call void @fn_note_toggled_layer(ptr %t336)
|
|
%t337 = load ptr, ptr %t321
|
|
store ptr %t337, ptr %retval
|
|
br label %ret
|
|
ifend81:
|
|
%t338 = load ptr, ptr %t321
|
|
%t339 = getelementptr inbounds %Cmp_Node, ptr %t338, i32 0, i32 1
|
|
%t340 = call ptr @fn_eat_id()
|
|
store ptr %t340, ptr %t339
|
|
%t341 = call i32 @fn_is_id(ptr @.str97)
|
|
%t342 = icmp ne i32 %t341, 0
|
|
br i1 %t342, label %then82, label %ifend84
|
|
then82:
|
|
%t343 = load i32, ptr @g_pi
|
|
%t344 = add i32 %t343, 1
|
|
store i32 %t344, ptr @g_pi
|
|
%t345 = load ptr, ptr %t321
|
|
%t346 = getelementptr inbounds %Cmp_Node, ptr %t345, i32 0, i32 4
|
|
%t347 = call ptr @fn_expr()
|
|
store ptr %t347, ptr %t346
|
|
br label %ifend84
|
|
ifend84:
|
|
%t348 = load ptr, ptr %t321
|
|
store ptr %t348, ptr %retval
|
|
br label %ret
|
|
ifend75:
|
|
%t349 = load ptr, ptr %t6
|
|
%t350 = getelementptr inbounds %Cmp_Tok, ptr %t349, i32 0, i32 1
|
|
%t351 = load ptr, ptr %t350
|
|
%t352 = call i32 @fn_str_eq(ptr %t351, ptr @.str98)
|
|
%t353 = icmp ne i32 %t352, 0
|
|
br i1 %t353, label %then85, label %ifend87
|
|
then85:
|
|
%t354 = load i32, ptr @g_pi
|
|
%t355 = add i32 %t354, 1
|
|
store i32 %t355, ptr @g_pi
|
|
%t356 = call ptr @fn_node(i32 46)
|
|
store ptr %t356, ptr %t357
|
|
%t358 = load ptr, ptr %t357
|
|
%t359 = getelementptr inbounds %Cmp_Node, ptr %t358, i32 0, i32 1
|
|
%t360 = call ptr @fn_eat_id()
|
|
store ptr %t360, ptr %t359
|
|
%t361 = call i32 @fn_is_id(ptr @.str99)
|
|
%t362 = icmp eq i32 %t361, 0
|
|
%t363 = zext i1 %t362 to i32
|
|
%t364 = icmp ne i32 %t363, 0
|
|
br i1 %t364, label %then88, label %ifend90
|
|
then88:
|
|
call void @fn_perr(ptr @.str100)
|
|
br label %ifend90
|
|
ifend90:
|
|
%t365 = load i32, ptr @g_pi
|
|
%t366 = add i32 %t365, 1
|
|
store i32 %t366, ptr @g_pi
|
|
%t367 = load ptr, ptr %t357
|
|
%t368 = getelementptr inbounds %Cmp_Node, ptr %t367, i32 0, i32 4
|
|
%t369 = call ptr @fn_expr()
|
|
store ptr %t369, ptr %t368
|
|
%t370 = call i32 @fn_is_op(ptr @.str101)
|
|
%t371 = icmp ne i32 %t370, 0
|
|
br i1 %t371, label %then91, label %ifend93
|
|
then91:
|
|
%t372 = load ptr, ptr %t357
|
|
%t373 = getelementptr inbounds %Cmp_Node, ptr %t372, i32 0, i32 5
|
|
%t374 = call ptr @fn_record()
|
|
store ptr %t374, ptr %t373
|
|
br label %ifend93
|
|
ifend93:
|
|
%t375 = load ptr, ptr %t357
|
|
store ptr %t375, ptr %retval
|
|
br label %ret
|
|
ifend87:
|
|
%t376 = load ptr, ptr %t6
|
|
%t377 = getelementptr inbounds %Cmp_Tok, ptr %t376, i32 0, i32 1
|
|
%t378 = load ptr, ptr %t377
|
|
%t379 = call i32 @fn_str_eq(ptr %t378, ptr @.str102)
|
|
%t380 = icmp ne i32 %t379, 0
|
|
br i1 %t380, label %then94, label %ifend96
|
|
then94:
|
|
%t381 = load i32, ptr @g_pi
|
|
%t382 = add i32 %t381, 1
|
|
store i32 %t382, ptr @g_pi
|
|
%t383 = call ptr @fn_node(i32 47)
|
|
store ptr %t383, ptr %t384
|
|
%t385 = load ptr, ptr %t384
|
|
%t386 = getelementptr inbounds %Cmp_Node, ptr %t385, i32 0, i32 1
|
|
%t387 = call ptr @fn_eat_id()
|
|
store ptr %t387, ptr %t386
|
|
%t388 = call i32 @fn_is_id(ptr @.str103)
|
|
%t389 = icmp eq i32 %t388, 0
|
|
%t390 = zext i1 %t389 to i32
|
|
%t391 = icmp ne i32 %t390, 0
|
|
br i1 %t391, label %then97, label %ifend99
|
|
then97:
|
|
call void @fn_perr(ptr @.str104)
|
|
br label %ifend99
|
|
ifend99:
|
|
%t392 = load i32, ptr @g_pi
|
|
%t393 = add i32 %t392, 1
|
|
store i32 %t393, ptr @g_pi
|
|
%t394 = load ptr, ptr %t384
|
|
%t395 = getelementptr inbounds %Cmp_Node, ptr %t394, i32 0, i32 4
|
|
%t396 = call ptr @fn_expr()
|
|
store ptr %t396, ptr %t395
|
|
%t397 = load ptr, ptr %t384
|
|
store ptr %t397, ptr %retval
|
|
br label %ret
|
|
ifend96:
|
|
%t398 = load ptr, ptr %t6
|
|
%t399 = getelementptr inbounds %Cmp_Tok, ptr %t398, i32 0, i32 1
|
|
%t400 = load ptr, ptr %t399
|
|
%t401 = call i32 @fn_str_eq(ptr %t400, ptr @.str105)
|
|
%t402 = icmp ne i32 %t401, 0
|
|
br i1 %t402, label %then100, label %ifend102
|
|
then100:
|
|
%t403 = load i32, ptr @g_pi
|
|
%t404 = add i32 %t403, 1
|
|
store i32 %t404, ptr @g_pi
|
|
%t405 = call ptr @fn_node(i32 17)
|
|
store ptr %t405, ptr %retval
|
|
br label %ret
|
|
ifend102:
|
|
%t406 = load ptr, ptr %t6
|
|
%t407 = getelementptr inbounds %Cmp_Tok, ptr %t406, i32 0, i32 1
|
|
%t408 = load ptr, ptr %t407
|
|
%t409 = call i32 @fn_str_eq(ptr %t408, ptr @.str106)
|
|
%t410 = icmp ne i32 %t409, 0
|
|
br i1 %t410, label %then103, label %ifend105
|
|
then103:
|
|
%t411 = load i32, ptr @g_pi
|
|
%t412 = add i32 %t411, 1
|
|
store i32 %t412, ptr @g_pi
|
|
%t413 = call ptr @fn_node(i32 18)
|
|
store ptr %t413, ptr %retval
|
|
br label %ret
|
|
ifend105:
|
|
%t414 = load ptr, ptr %t6
|
|
%t415 = getelementptr inbounds %Cmp_Tok, ptr %t414, i32 0, i32 1
|
|
%t416 = load ptr, ptr %t415
|
|
%t417 = call i32 @fn_str_eq(ptr %t416, ptr @.str107)
|
|
%t418 = icmp ne i32 %t417, 0
|
|
br i1 %t418, label %then106, label %ifend108
|
|
then106:
|
|
%t419 = load i32, ptr @g_pi
|
|
%t420 = add i32 %t419, 1
|
|
store i32 %t420, ptr @g_pi
|
|
%t421 = call ptr @fn_node(i32 50)
|
|
store ptr %t421, ptr %retval
|
|
br label %ret
|
|
ifend108:
|
|
%t422 = load ptr, ptr %t6
|
|
%t423 = getelementptr inbounds %Cmp_Tok, ptr %t422, i32 0, i32 1
|
|
%t424 = load ptr, ptr %t423
|
|
%t425 = call i32 @fn_str_eq(ptr %t424, ptr @.str108)
|
|
%t426 = icmp ne i32 %t425, 0
|
|
br i1 %t426, label %then109, label %ifend111
|
|
then109:
|
|
%t427 = load i32, ptr @g_pi
|
|
%t428 = add i32 %t427, 1
|
|
store i32 %t428, ptr @g_pi
|
|
%t429 = call ptr @fn_node(i32 19)
|
|
store ptr %t429, ptr %t430
|
|
%t431 = load ptr, ptr %t430
|
|
%t432 = getelementptr inbounds %Cmp_Node, ptr %t431, i32 0, i32 4
|
|
%t433 = call ptr @fn_expr()
|
|
store ptr %t433, ptr %t432
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str109)
|
|
br label %wcond112
|
|
wcond112:
|
|
%t434 = icmp ne i32 1, 0
|
|
br i1 %t434, label %wbody113, label %wend114
|
|
wbody113:
|
|
call void @fn_skipnl()
|
|
%t435 = call i32 @fn_is_op(ptr @.str110)
|
|
%t436 = icmp ne i32 %t435, 0
|
|
br i1 %t436, label %then115, label %ifend117
|
|
then115:
|
|
br label %wend114
|
|
ifend117:
|
|
%t437 = call ptr @fn_node(i32 20)
|
|
store ptr %t437, ptr %t438
|
|
br label %wcond118
|
|
wcond118:
|
|
%t439 = icmp ne i32 1, 0
|
|
br i1 %t439, label %wbody119, label %wend120
|
|
wbody119:
|
|
%t440 = load ptr, ptr %t438
|
|
%t441 = getelementptr inbounds %Cmp_Node, ptr %t440, i32 0, i32 7
|
|
%t442 = load ptr, ptr %t441
|
|
%t443 = getelementptr inbounds %LSlice, ptr %t442, i32 0, i32 1
|
|
%t444 = getelementptr inbounds %LSlice, ptr %t442, i32 0, i32 2
|
|
%t445 = getelementptr inbounds %LSlice, ptr %t442, i32 0, i32 0
|
|
%t446 = load i32, ptr %t443
|
|
%t447 = load i32, ptr %t444
|
|
%t448 = icmp sge i32 %t446, %t447
|
|
br i1 %t448, label %grow121, label %put122
|
|
grow121:
|
|
%t449 = mul i32 %t447, 2
|
|
%t450 = icmp eq i32 %t447, 0
|
|
%t451 = select i1 %t450, i32 8, i32 %t449
|
|
%t452 = getelementptr ptr, ptr null, i32 1
|
|
%t453 = ptrtoint ptr %t452 to i64
|
|
%t454 = zext i32 %t451 to i64
|
|
%t455 = mul i64 %t454, %t453
|
|
%t456 = load ptr, ptr %t445
|
|
%t457 = call ptr @realloc(ptr %t456, i64 %t455)
|
|
store ptr %t457, ptr %t445
|
|
store i32 %t451, ptr %t444
|
|
br label %put122
|
|
put122:
|
|
%t458 = call ptr @fn_expr()
|
|
%t459 = load ptr, ptr %t445
|
|
%t460 = getelementptr inbounds ptr, ptr %t459, i32 %t446
|
|
store ptr %t458, ptr %t460
|
|
%t461 = add i32 %t446, 1
|
|
store i32 %t461, ptr %t443
|
|
%t462 = call i32 @fn_is_op(ptr @.str111)
|
|
%t463 = icmp ne i32 %t462, 0
|
|
br i1 %t463, label %then123, label %ifend125
|
|
then123:
|
|
%t464 = load i32, ptr @g_pi
|
|
%t465 = add i32 %t464, 1
|
|
store i32 %t465, ptr @g_pi
|
|
call void @fn_skipnl()
|
|
br label %wcond118
|
|
ifend125:
|
|
br label %wend120
|
|
wend120:
|
|
call void @fn_eat_op(ptr @.str112)
|
|
call void @fn_skipnl()
|
|
%t466 = call i32 @fn_is_op(ptr @.str113)
|
|
%t467 = icmp ne i32 %t466, 0
|
|
br i1 %t467, label %then126, label %else127
|
|
then126:
|
|
%t468 = load ptr, ptr %t438
|
|
%t469 = getelementptr inbounds %Cmp_Node, ptr %t468, i32 0, i32 4
|
|
%t470 = call ptr @fn_block()
|
|
store ptr %t470, ptr %t469
|
|
br label %ifend128
|
|
else127:
|
|
%t471 = call ptr @fn_node(i32 7)
|
|
store ptr %t471, ptr %t472
|
|
%t473 = load ptr, ptr %t472
|
|
%t474 = getelementptr inbounds %Cmp_Node, ptr %t473, i32 0, i32 7
|
|
%t475 = load ptr, ptr %t474
|
|
%t476 = getelementptr inbounds %LSlice, ptr %t475, i32 0, i32 1
|
|
%t477 = getelementptr inbounds %LSlice, ptr %t475, i32 0, i32 2
|
|
%t478 = getelementptr inbounds %LSlice, ptr %t475, i32 0, i32 0
|
|
%t479 = load i32, ptr %t476
|
|
%t480 = load i32, ptr %t477
|
|
%t481 = icmp sge i32 %t479, %t480
|
|
br i1 %t481, label %grow129, label %put130
|
|
grow129:
|
|
%t482 = mul i32 %t480, 2
|
|
%t483 = icmp eq i32 %t480, 0
|
|
%t484 = select i1 %t483, i32 8, i32 %t482
|
|
%t485 = getelementptr ptr, ptr null, i32 1
|
|
%t486 = ptrtoint ptr %t485 to i64
|
|
%t487 = zext i32 %t484 to i64
|
|
%t488 = mul i64 %t487, %t486
|
|
%t489 = load ptr, ptr %t478
|
|
%t490 = call ptr @realloc(ptr %t489, i64 %t488)
|
|
store ptr %t490, ptr %t478
|
|
store i32 %t484, ptr %t477
|
|
br label %put130
|
|
put130:
|
|
%t491 = call ptr @fn_stmt()
|
|
%t492 = load ptr, ptr %t478
|
|
%t493 = getelementptr inbounds ptr, ptr %t492, i32 %t479
|
|
store ptr %t491, ptr %t493
|
|
%t494 = add i32 %t479, 1
|
|
store i32 %t494, ptr %t476
|
|
%t495 = load ptr, ptr %t438
|
|
%t496 = getelementptr inbounds %Cmp_Node, ptr %t495, i32 0, i32 4
|
|
%t497 = load ptr, ptr %t472
|
|
store ptr %t497, ptr %t496
|
|
br label %ifend128
|
|
ifend128:
|
|
%t498 = load ptr, ptr %t430
|
|
%t499 = getelementptr inbounds %Cmp_Node, ptr %t498, i32 0, i32 7
|
|
%t500 = load ptr, ptr %t499
|
|
%t501 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 1
|
|
%t502 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 2
|
|
%t503 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 0
|
|
%t504 = load i32, ptr %t501
|
|
%t505 = load i32, ptr %t502
|
|
%t506 = icmp sge i32 %t504, %t505
|
|
br i1 %t506, label %grow131, label %put132
|
|
grow131:
|
|
%t507 = mul i32 %t505, 2
|
|
%t508 = icmp eq i32 %t505, 0
|
|
%t509 = select i1 %t508, i32 8, i32 %t507
|
|
%t510 = getelementptr ptr, ptr null, i32 1
|
|
%t511 = ptrtoint ptr %t510 to i64
|
|
%t512 = zext i32 %t509 to i64
|
|
%t513 = mul i64 %t512, %t511
|
|
%t514 = load ptr, ptr %t503
|
|
%t515 = call ptr @realloc(ptr %t514, i64 %t513)
|
|
store ptr %t515, ptr %t503
|
|
store i32 %t509, ptr %t502
|
|
br label %put132
|
|
put132:
|
|
%t516 = load ptr, ptr %t438
|
|
%t517 = load ptr, ptr %t503
|
|
%t518 = getelementptr inbounds ptr, ptr %t517, i32 %t504
|
|
store ptr %t516, ptr %t518
|
|
%t519 = add i32 %t504, 1
|
|
store i32 %t519, ptr %t501
|
|
br label %wcond112
|
|
wend114:
|
|
call void @fn_eat_op(ptr @.str114)
|
|
%t520 = load ptr, ptr %t430
|
|
store ptr %t520, ptr %retval
|
|
br label %ret
|
|
ifend111:
|
|
br label %ifend2
|
|
ifend2:
|
|
%t521 = call ptr @fn_expr()
|
|
store ptr %t521, ptr %t522
|
|
%t527 = call i32 @fn_is_op(ptr @.str115)
|
|
%t528 = icmp ne i32 %t527, 0
|
|
%t529 = zext i1 %t528 to i32
|
|
store i32 %t529, ptr %t526
|
|
br i1 %t528, label %scend134, label %sc133
|
|
sc133:
|
|
%t530 = call i32 @fn_is_op(ptr @.str116)
|
|
%t531 = icmp ne i32 %t530, 0
|
|
%t532 = zext i1 %t531 to i32
|
|
store i32 %t532, ptr %t526
|
|
br label %scend134
|
|
scend134:
|
|
%t533 = load i32, ptr %t526
|
|
%t534 = icmp ne i32 %t533, 0
|
|
%t535 = zext i1 %t534 to i32
|
|
store i32 %t535, ptr %t525
|
|
br i1 %t534, label %scend136, label %sc135
|
|
sc135:
|
|
%t536 = call i32 @fn_is_op(ptr @.str117)
|
|
%t537 = icmp ne i32 %t536, 0
|
|
%t538 = zext i1 %t537 to i32
|
|
store i32 %t538, ptr %t525
|
|
br label %scend136
|
|
scend136:
|
|
%t539 = load i32, ptr %t525
|
|
%t540 = icmp ne i32 %t539, 0
|
|
%t541 = zext i1 %t540 to i32
|
|
store i32 %t541, ptr %t524
|
|
br i1 %t540, label %scend138, label %sc137
|
|
sc137:
|
|
%t542 = call i32 @fn_is_op(ptr @.str118)
|
|
%t543 = icmp ne i32 %t542, 0
|
|
%t544 = zext i1 %t543 to i32
|
|
store i32 %t544, ptr %t524
|
|
br label %scend138
|
|
scend138:
|
|
%t545 = load i32, ptr %t524
|
|
%t546 = icmp ne i32 %t545, 0
|
|
%t547 = zext i1 %t546 to i32
|
|
store i32 %t547, ptr %t523
|
|
br i1 %t546, label %scend140, label %sc139
|
|
sc139:
|
|
%t548 = call i32 @fn_is_op(ptr @.str119)
|
|
%t549 = icmp ne i32 %t548, 0
|
|
%t550 = zext i1 %t549 to i32
|
|
store i32 %t550, ptr %t523
|
|
br label %scend140
|
|
scend140:
|
|
%t551 = load i32, ptr %t523
|
|
%t552 = icmp ne i32 %t551, 0
|
|
br i1 %t552, label %then141, label %ifend143
|
|
then141:
|
|
%t553 = call ptr @fn_node(i32 11)
|
|
store ptr %t553, ptr %t554
|
|
%t555 = load ptr, ptr %t554
|
|
%t556 = getelementptr inbounds %Cmp_Node, ptr %t555, i32 0, i32 8
|
|
%t557 = load ptr, ptr @g_toks
|
|
%t558 = getelementptr inbounds %LSlice, ptr %t557, i32 0, i32 0
|
|
%t559 = load ptr, ptr %t558
|
|
%t560 = load i32, ptr @g_pi
|
|
%t561 = getelementptr inbounds ptr, ptr %t559, i32 %t560
|
|
%t562 = load ptr, ptr %t561
|
|
%t563 = getelementptr inbounds %Cmp_Tok, ptr %t562, i32 0, i32 3
|
|
%t564 = load i32, ptr %t563
|
|
store i32 %t564, ptr %t556
|
|
%t565 = load ptr, ptr %t554
|
|
%t566 = getelementptr inbounds %Cmp_Node, ptr %t565, i32 0, i32 1
|
|
%t567 = load ptr, ptr @g_toks
|
|
%t568 = getelementptr inbounds %LSlice, ptr %t567, i32 0, i32 0
|
|
%t569 = load ptr, ptr %t568
|
|
%t570 = load i32, ptr @g_pi
|
|
%t571 = getelementptr inbounds ptr, ptr %t569, i32 %t570
|
|
%t572 = load ptr, ptr %t571
|
|
%t573 = getelementptr inbounds %Cmp_Tok, ptr %t572, i32 0, i32 1
|
|
%t574 = load ptr, ptr %t573
|
|
store ptr %t574, ptr %t566
|
|
%t575 = load i32, ptr @g_pi
|
|
%t576 = add i32 %t575, 1
|
|
store i32 %t576, ptr @g_pi
|
|
%t577 = load ptr, ptr %t554
|
|
%t578 = getelementptr inbounds %Cmp_Node, ptr %t577, i32 0, i32 4
|
|
%t579 = load ptr, ptr %t522
|
|
store ptr %t579, ptr %t578
|
|
%t580 = load ptr, ptr %t554
|
|
%t581 = getelementptr inbounds %Cmp_Node, ptr %t580, i32 0, i32 5
|
|
%t582 = call ptr @fn_expr()
|
|
store ptr %t582, ptr %t581
|
|
%t583 = load ptr, ptr %t554
|
|
store ptr %t583, ptr %retval
|
|
br label %ret
|
|
ifend143:
|
|
%t584 = call ptr @fn_node(i32 16)
|
|
store ptr %t584, ptr %t585
|
|
%t586 = load ptr, ptr %t585
|
|
%t587 = getelementptr inbounds %Cmp_Node, ptr %t586, i32 0, i32 4
|
|
%t588 = load ptr, ptr %t522
|
|
store ptr %t588, ptr %t587
|
|
%t589 = load ptr, ptr %t585
|
|
store ptr %t589, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t590 = load ptr, ptr %retval
|
|
ret ptr %t590
|
|
}
|
|
|
|
define ptr @fn_parse_var() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 2)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
call void @fn_eat_op(ptr @.str120)
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3
|
|
%t9 = call ptr @fn_ptype()
|
|
store ptr %t9, ptr %t8
|
|
%t10 = call i32 @fn_is_op(ptr @.str121)
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %then0, label %ifend2
|
|
then0:
|
|
%t12 = load i32, ptr @g_pi
|
|
%t13 = add i32 %t12, 1
|
|
store i32 %t13, ptr @g_pi
|
|
%t14 = load ptr, ptr %t3
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 4
|
|
%t16 = call ptr @fn_expr()
|
|
store ptr %t16, ptr %t15
|
|
br label %ifend2
|
|
ifend2:
|
|
%t17 = load ptr, ptr %t3
|
|
store ptr %t17, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t18 = load ptr, ptr %retval
|
|
ret ptr %t18
|
|
}
|
|
|
|
define ptr @fn_parse_const() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 3)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
call void @fn_eat_op(ptr @.str122)
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3
|
|
%t9 = call ptr @fn_ptype()
|
|
store ptr %t9, ptr %t8
|
|
call void @fn_eat_op(ptr @.str123)
|
|
%t10 = load ptr, ptr %t3
|
|
%t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 4
|
|
%t12 = call ptr @fn_expr()
|
|
store ptr %t12, ptr %t11
|
|
%t13 = load ptr, ptr %t3
|
|
store ptr %t13, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t14 = load ptr, ptr %retval
|
|
ret ptr %t14
|
|
}
|
|
|
|
define ptr @fn_parse_fn() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t12 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 4)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
call void @fn_eat_op(ptr @.str124)
|
|
br label %wcond0
|
|
wcond0:
|
|
%t7 = call i32 @fn_is_op(ptr @.str125)
|
|
%t8 = icmp eq i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t11 = call ptr @fn_node(i32 5)
|
|
store ptr %t11, ptr %t12
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 1
|
|
%t15 = call ptr @fn_eat_id()
|
|
store ptr %t15, ptr %t14
|
|
call void @fn_eat_op(ptr @.str126)
|
|
%t16 = load ptr, ptr %t12
|
|
%t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3
|
|
%t18 = call ptr @fn_ptype()
|
|
store ptr %t18, ptr %t17
|
|
%t19 = load ptr, ptr %t3
|
|
%t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 7
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 2
|
|
%t24 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0
|
|
%t25 = load i32, ptr %t22
|
|
%t26 = load i32, ptr %t23
|
|
%t27 = icmp sge i32 %t25, %t26
|
|
br i1 %t27, label %grow3, label %put4
|
|
grow3:
|
|
%t28 = mul i32 %t26, 2
|
|
%t29 = icmp eq i32 %t26, 0
|
|
%t30 = select i1 %t29, i32 8, i32 %t28
|
|
%t31 = getelementptr ptr, ptr null, i32 1
|
|
%t32 = ptrtoint ptr %t31 to i64
|
|
%t33 = zext i32 %t30 to i64
|
|
%t34 = mul i64 %t33, %t32
|
|
%t35 = load ptr, ptr %t24
|
|
%t36 = call ptr @realloc(ptr %t35, i64 %t34)
|
|
store ptr %t36, ptr %t24
|
|
store i32 %t30, ptr %t23
|
|
br label %put4
|
|
put4:
|
|
%t37 = load ptr, ptr %t12
|
|
%t38 = load ptr, ptr %t24
|
|
%t39 = getelementptr inbounds ptr, ptr %t38, i32 %t25
|
|
store ptr %t37, ptr %t39
|
|
%t40 = add i32 %t25, 1
|
|
store i32 %t40, ptr %t22
|
|
%t41 = call i32 @fn_is_op(ptr @.str127)
|
|
%t42 = icmp ne i32 %t41, 0
|
|
br i1 %t42, label %then5, label %ifend7
|
|
then5:
|
|
%t43 = load i32, ptr @g_pi
|
|
%t44 = add i32 %t43, 1
|
|
store i32 %t44, ptr @g_pi
|
|
br label %ifend7
|
|
ifend7:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str128)
|
|
%t45 = load ptr, ptr %t3
|
|
%t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 3
|
|
store ptr @.str129, ptr %t46
|
|
%t47 = call i32 @fn_is_op(ptr @.str130)
|
|
%t48 = icmp ne i32 %t47, 0
|
|
br i1 %t48, label %then8, label %ifend10
|
|
then8:
|
|
%t49 = load i32, ptr @g_pi
|
|
%t50 = add i32 %t49, 1
|
|
store i32 %t50, ptr @g_pi
|
|
%t51 = load ptr, ptr %t3
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 3
|
|
%t53 = call ptr @fn_ptype()
|
|
store ptr %t53, ptr %t52
|
|
br label %ifend10
|
|
ifend10:
|
|
%t54 = load ptr, ptr %t3
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 4
|
|
%t56 = call ptr @fn_block()
|
|
store ptr %t56, ptr %t55
|
|
%t57 = load ptr, ptr %t3
|
|
store ptr %t57, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t58 = load ptr, ptr %retval
|
|
ret ptr %t58
|
|
}
|
|
|
|
define ptr @fn_parse_main() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 6)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 4
|
|
%t6 = call ptr @fn_block()
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
store ptr %t7, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t8 = load ptr, ptr %retval
|
|
ret ptr %t8
|
|
}
|
|
|
|
define ptr @fn_dir_of(ptr %arg_path) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
store ptr %arg_path, ptr %t0
|
|
%t1 = sub i32 0, 1
|
|
store i32 %t1, ptr %t2
|
|
store i32 0, ptr %t3
|
|
br label %wcond0
|
|
wcond0:
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = load i32, ptr %t3
|
|
%t6 = getelementptr inbounds i8, ptr %t4, i32 %t5
|
|
%t7 = load i8, ptr %t6
|
|
%t8 = zext i8 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = load i32, ptr %t3
|
|
%t14 = getelementptr inbounds i8, ptr %t12, i32 %t13
|
|
%t15 = load i8, ptr %t14
|
|
%t16 = zext i8 %t15 to i32
|
|
%t17 = icmp eq i32 %t16, 47
|
|
%t18 = zext i1 %t17 to i32
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load i32, ptr %t3
|
|
store i32 %t20, ptr %t2
|
|
br label %ifend5
|
|
ifend5:
|
|
%t21 = load i32, ptr %t3
|
|
%t22 = add i32 %t21, 1
|
|
store i32 %t22, ptr %t3
|
|
br label %wcond0
|
|
wend2:
|
|
%t23 = load i32, ptr %t2
|
|
%t24 = icmp slt i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
%t26 = icmp ne i32 %t25, 0
|
|
br i1 %t26, label %then6, label %ifend8
|
|
then6:
|
|
store ptr @.str131, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t27 = load ptr, ptr %t0
|
|
%t28 = load i32, ptr %t2
|
|
%t29 = add i32 %t28, 1
|
|
%t30 = add i32 0, %t29
|
|
%t31 = call ptr @fn_str_slice(ptr %t27, i32 0, i32 %t30)
|
|
store ptr %t31, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t32 = load ptr, ptr %retval
|
|
ret ptr %t32
|
|
}
|
|
|
|
define ptr @fn_path_join(ptr %arg_dir, ptr %arg_rel) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
store ptr %arg_dir, ptr %t0
|
|
store ptr %arg_rel, ptr %t1
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = getelementptr inbounds i8, ptr %t2, i32 0
|
|
%t4 = load i8, ptr %t3
|
|
%t5 = zext i8 %t4 to i32
|
|
%t6 = icmp eq i32 %t5, 47
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %then0, label %ifend2
|
|
then0:
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = load ptr, ptr %t1
|
|
%t12 = call ptr @fn_str_concat(ptr %t10, ptr %t11)
|
|
store ptr %t12, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t13 = load ptr, ptr %retval
|
|
ret ptr %t13
|
|
}
|
|
|
|
define i32 @fn_already_loaded(ptr %arg_full) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_full, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_loaded_paths
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_loaded_paths
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = load ptr, ptr %t0
|
|
%t16 = call i32 @fn_str_eq(ptr %t14, ptr %t15)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %then3, label %ifend5
|
|
then3:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t18 = load i32, ptr %t1
|
|
%t19 = add i32 %t18, 1
|
|
store i32 %t19, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t20 = load i32, ptr %retval
|
|
ret i32 %t20
|
|
}
|
|
|
|
define void @fn_parse_one_decl() {
|
|
entry:
|
|
%t0 = alloca i32
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t8 = alloca ptr
|
|
%t9 = alloca ptr
|
|
%t10 = alloca i32
|
|
%t11 = alloca ptr
|
|
%t12 = alloca i32
|
|
%t13 = alloca i32
|
|
%t14 = alloca ptr
|
|
%t15 = alloca ptr
|
|
%t21 = alloca ptr
|
|
%t92 = alloca i32
|
|
%t118 = alloca ptr
|
|
%t128 = alloca ptr
|
|
%t157 = alloca ptr
|
|
%t169 = alloca ptr
|
|
%t172 = alloca i32
|
|
%t216 = alloca ptr
|
|
%t246 = alloca ptr
|
|
%t367 = alloca ptr
|
|
%t482 = alloca ptr
|
|
store i32 0, ptr %t0
|
|
store ptr null, ptr %t1
|
|
store ptr null, ptr %t2
|
|
store ptr null, ptr %t3
|
|
store ptr null, ptr %t4
|
|
store ptr null, ptr %t5
|
|
store ptr null, ptr %t6
|
|
store ptr null, ptr %t7
|
|
store ptr null, ptr %t8
|
|
store ptr null, ptr %t9
|
|
store i32 0, ptr %t10
|
|
store ptr null, ptr %t11
|
|
store i32 0, ptr %t12
|
|
store i32 0, ptr %t13
|
|
store ptr null, ptr %t14
|
|
store ptr null, ptr %t15
|
|
br label %wcond0
|
|
wcond0:
|
|
%t16 = call i32 @fn_is_op(ptr @.str132)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t18 = load i32, ptr @g_pi
|
|
%t19 = add i32 %t18, 1
|
|
store i32 %t19, ptr @g_pi
|
|
%t20 = call ptr @fn_eat_id()
|
|
store ptr %t20, ptr %t21
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str133)
|
|
%t24 = icmp ne i32 %t23, 0
|
|
br i1 %t24, label %then3, label %else4
|
|
then3:
|
|
store i32 1, ptr %t0
|
|
br label %ifend5
|
|
else4:
|
|
%t25 = load ptr, ptr %t21
|
|
%t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str134)
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %then6, label %else7
|
|
then6:
|
|
store i32 1, ptr %t10
|
|
br label %ifend8
|
|
else7:
|
|
%t28 = load ptr, ptr %t21
|
|
%t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str135)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then9, label %else10
|
|
then9:
|
|
call void @fn_eat_op(ptr @.str136)
|
|
%t31 = call ptr @fn_eat_id()
|
|
store ptr %t31, ptr %t9
|
|
call void @fn_eat_op(ptr @.str137)
|
|
br label %ifend11
|
|
else10:
|
|
%t32 = load ptr, ptr %t21
|
|
%t33 = call i32 @fn_str_eq(ptr %t32, ptr @.str138)
|
|
%t34 = icmp ne i32 %t33, 0
|
|
br i1 %t34, label %then12, label %else13
|
|
then12:
|
|
%t35 = call ptr @fn_parse_queries_anno()
|
|
store ptr %t35, ptr %t1
|
|
br label %ifend14
|
|
else13:
|
|
%t36 = load ptr, ptr %t21
|
|
%t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str139)
|
|
%t38 = icmp ne i32 %t37, 0
|
|
br i1 %t38, label %then15, label %else16
|
|
then15:
|
|
call void @fn_eat_op(ptr @.str140)
|
|
%t39 = call ptr @fn_eat_id()
|
|
store ptr %t39, ptr %t2
|
|
call void @fn_eat_op(ptr @.str141)
|
|
br label %ifend17
|
|
else16:
|
|
%t40 = load ptr, ptr %t21
|
|
%t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str142)
|
|
%t42 = icmp ne i32 %t41, 0
|
|
br i1 %t42, label %then18, label %else19
|
|
then18:
|
|
call void @fn_eat_op(ptr @.str143)
|
|
%t43 = call ptr @fn_eat_id()
|
|
store ptr %t43, ptr %t3
|
|
%t44 = call i32 @fn_is_op(ptr @.str144)
|
|
%t45 = icmp ne i32 %t44, 0
|
|
br i1 %t45, label %then21, label %ifend23
|
|
then21:
|
|
%t46 = load i32, ptr @g_pi
|
|
%t47 = add i32 %t46, 1
|
|
store i32 %t47, ptr @g_pi
|
|
%t48 = call ptr @fn_eat_id()
|
|
call void @fn_eat_op(ptr @.str145)
|
|
%t49 = call ptr @fn_eat_id()
|
|
store ptr %t49, ptr %t4
|
|
br label %ifend23
|
|
ifend23:
|
|
call void @fn_eat_op(ptr @.str146)
|
|
br label %ifend20
|
|
else19:
|
|
%t50 = load ptr, ptr %t21
|
|
%t51 = call i32 @fn_str_eq(ptr %t50, ptr @.str147)
|
|
%t52 = icmp ne i32 %t51, 0
|
|
br i1 %t52, label %then24, label %else25
|
|
then24:
|
|
call void @fn_eat_op(ptr @.str148)
|
|
%t53 = call ptr @fn_eat_id()
|
|
store ptr %t53, ptr %t5
|
|
call void @fn_eat_op(ptr @.str149)
|
|
br label %ifend26
|
|
else25:
|
|
%t54 = load ptr, ptr %t21
|
|
%t55 = call i32 @fn_str_eq(ptr %t54, ptr @.str150)
|
|
%t56 = icmp ne i32 %t55, 0
|
|
br i1 %t56, label %then27, label %else28
|
|
then27:
|
|
call void @fn_eat_op(ptr @.str151)
|
|
%t57 = call ptr @fn_eat_id()
|
|
store ptr %t57, ptr %t6
|
|
call void @fn_eat_op(ptr @.str152)
|
|
br label %ifend29
|
|
else28:
|
|
%t58 = load ptr, ptr %t21
|
|
%t59 = call i32 @fn_str_eq(ptr %t58, ptr @.str153)
|
|
%t60 = icmp ne i32 %t59, 0
|
|
br i1 %t60, label %then30, label %else31
|
|
then30:
|
|
call void @fn_eat_op(ptr @.str154)
|
|
%t61 = call ptr @fn_eat_id()
|
|
store ptr %t61, ptr %t7
|
|
call void @fn_eat_op(ptr @.str155)
|
|
br label %ifend32
|
|
else31:
|
|
%t62 = load ptr, ptr %t21
|
|
%t63 = call i32 @fn_str_eq(ptr %t62, ptr @.str156)
|
|
%t64 = icmp ne i32 %t63, 0
|
|
br i1 %t64, label %then33, label %else34
|
|
then33:
|
|
call void @fn_eat_op(ptr @.str157)
|
|
%t65 = call ptr @fn_eat_id()
|
|
store ptr %t65, ptr %t8
|
|
call void @fn_eat_op(ptr @.str158)
|
|
br label %ifend35
|
|
else34:
|
|
%t66 = load ptr, ptr %t21
|
|
%t67 = call i32 @fn_str_eq(ptr %t66, ptr @.str159)
|
|
%t68 = icmp ne i32 %t67, 0
|
|
br i1 %t68, label %then36, label %else37
|
|
then36:
|
|
store ptr @.str160, ptr %t11
|
|
br label %ifend38
|
|
else37:
|
|
%t69 = load ptr, ptr %t21
|
|
%t70 = call i32 @fn_str_eq(ptr %t69, ptr @.str161)
|
|
%t71 = icmp ne i32 %t70, 0
|
|
br i1 %t71, label %then39, label %else40
|
|
then39:
|
|
store ptr @.str162, ptr %t11
|
|
br label %ifend41
|
|
else40:
|
|
%t72 = load ptr, ptr %t21
|
|
%t73 = call i32 @fn_str_eq(ptr %t72, ptr @.str163)
|
|
%t74 = icmp ne i32 %t73, 0
|
|
br i1 %t74, label %then42, label %else43
|
|
then42:
|
|
store i32 1, ptr %t12
|
|
br label %ifend44
|
|
else43:
|
|
%t75 = load ptr, ptr %t21
|
|
%t76 = call i32 @fn_str_eq(ptr %t75, ptr @.str164)
|
|
%t77 = icmp ne i32 %t76, 0
|
|
br i1 %t77, label %then45, label %else46
|
|
then45:
|
|
store i32 1, ptr %t13
|
|
br label %ifend47
|
|
else46:
|
|
%t78 = load ptr, ptr %t21
|
|
%t79 = call i32 @fn_str_eq(ptr %t78, ptr @.str165)
|
|
%t80 = icmp ne i32 %t79, 0
|
|
br i1 %t80, label %then48, label %else49
|
|
then48:
|
|
store ptr @.str166, ptr %t14
|
|
br label %ifend50
|
|
else49:
|
|
%t81 = load ptr, ptr %t21
|
|
%t82 = call i32 @fn_str_eq(ptr %t81, ptr @.str167)
|
|
%t83 = icmp ne i32 %t82, 0
|
|
br i1 %t83, label %then51, label %else52
|
|
then51:
|
|
store ptr @.str168, ptr %t14
|
|
br label %ifend53
|
|
else52:
|
|
%t84 = load ptr, ptr %t21
|
|
%t85 = call i32 @fn_str_eq(ptr %t84, ptr @.str169)
|
|
%t86 = icmp ne i32 %t85, 0
|
|
br i1 %t86, label %then54, label %else55
|
|
then54:
|
|
store ptr @.str170, ptr %t15
|
|
br label %ifend56
|
|
else55:
|
|
%t87 = load ptr, ptr %t21
|
|
%t88 = call i32 @fn_str_eq(ptr %t87, ptr @.str171)
|
|
%t89 = icmp ne i32 %t88, 0
|
|
br i1 %t89, label %then57, label %else58
|
|
then57:
|
|
store ptr @.str172, ptr %t15
|
|
br label %ifend59
|
|
else58:
|
|
%t90 = call i32 @fn_is_op(ptr @.str173)
|
|
%t91 = icmp ne i32 %t90, 0
|
|
br i1 %t91, label %then60, label %ifend62
|
|
then60:
|
|
store i32 0, ptr %t92
|
|
br label %wcond63
|
|
wcond63:
|
|
%t93 = icmp ne i32 1, 0
|
|
br i1 %t93, label %wbody64, label %wend65
|
|
wbody64:
|
|
%t94 = call i32 @fn_is_op(ptr @.str174)
|
|
%t95 = icmp ne i32 %t94, 0
|
|
br i1 %t95, label %then66, label %ifend68
|
|
then66:
|
|
%t96 = load i32, ptr %t92
|
|
%t97 = add i32 %t96, 1
|
|
store i32 %t97, ptr %t92
|
|
br label %ifend68
|
|
ifend68:
|
|
%t98 = call i32 @fn_is_op(ptr @.str175)
|
|
%t99 = icmp ne i32 %t98, 0
|
|
br i1 %t99, label %then69, label %ifend71
|
|
then69:
|
|
%t100 = load i32, ptr %t92
|
|
%t101 = sub i32 %t100, 1
|
|
store i32 %t101, ptr %t92
|
|
br label %ifend71
|
|
ifend71:
|
|
%t102 = load i32, ptr @g_pi
|
|
%t103 = add i32 %t102, 1
|
|
store i32 %t103, ptr @g_pi
|
|
%t104 = load i32, ptr %t92
|
|
%t105 = icmp eq i32 %t104, 0
|
|
%t106 = zext i1 %t105 to i32
|
|
%t107 = icmp ne i32 %t106, 0
|
|
br i1 %t107, label %then72, label %ifend74
|
|
then72:
|
|
br label %wend65
|
|
ifend74:
|
|
br label %wcond63
|
|
wend65:
|
|
br label %ifend62
|
|
ifend62:
|
|
br label %ifend59
|
|
ifend59:
|
|
br label %ifend56
|
|
ifend56:
|
|
br label %ifend53
|
|
ifend53:
|
|
br label %ifend50
|
|
ifend50:
|
|
br label %ifend47
|
|
ifend47:
|
|
br label %ifend44
|
|
ifend44:
|
|
br label %ifend41
|
|
ifend41:
|
|
br label %ifend38
|
|
ifend38:
|
|
br label %ifend35
|
|
ifend35:
|
|
br label %ifend32
|
|
ifend32:
|
|
br label %ifend29
|
|
ifend29:
|
|
br label %ifend26
|
|
ifend26:
|
|
br label %ifend20
|
|
ifend20:
|
|
br label %ifend17
|
|
ifend17:
|
|
br label %ifend14
|
|
ifend14:
|
|
br label %ifend11
|
|
ifend11:
|
|
br label %ifend8
|
|
ifend8:
|
|
br label %ifend5
|
|
ifend5:
|
|
call void @fn_skipnl()
|
|
br label %wcond0
|
|
wend2:
|
|
%t108 = call i32 @fn_is_id(ptr @.str176)
|
|
%t109 = icmp ne i32 %t108, 0
|
|
br i1 %t109, label %then75, label %ifend77
|
|
then75:
|
|
%t110 = load i32, ptr @g_pi
|
|
%t111 = add i32 %t110, 1
|
|
store i32 %t111, ptr @g_pi
|
|
%t112 = load ptr, ptr @g_toks
|
|
%t113 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0
|
|
%t114 = load ptr, ptr %t113
|
|
%t115 = load i32, ptr @g_pi
|
|
%t116 = getelementptr inbounds ptr, ptr %t114, i32 %t115
|
|
%t117 = load ptr, ptr %t116
|
|
store ptr %t117, ptr %t118
|
|
%t119 = load ptr, ptr %t118
|
|
%t120 = getelementptr inbounds %Cmp_Tok, ptr %t119, i32 0, i32 0
|
|
%t121 = load i32, ptr %t120
|
|
%t122 = icmp ne i32 %t121, 2
|
|
%t123 = zext i1 %t122 to i32
|
|
%t124 = icmp ne i32 %t123, 0
|
|
br i1 %t124, label %then78, label %ifend80
|
|
then78:
|
|
call void @fn_perr(ptr @.str177)
|
|
br label %ifend80
|
|
ifend80:
|
|
%t125 = load ptr, ptr %t118
|
|
%t126 = getelementptr inbounds %Cmp_Tok, ptr %t125, i32 0, i32 1
|
|
%t127 = load ptr, ptr %t126
|
|
store ptr %t127, ptr %t128
|
|
%t129 = load i32, ptr @g_pi
|
|
%t130 = add i32 %t129, 1
|
|
store i32 %t130, ptr @g_pi
|
|
%t131 = load ptr, ptr %t128
|
|
call void @fn_do_import(ptr %t131)
|
|
br label %ret
|
|
ifend77:
|
|
%t132 = call i32 @fn_is_id(ptr @.str178)
|
|
%t133 = icmp ne i32 %t132, 0
|
|
br i1 %t133, label %then81, label %ifend83
|
|
then81:
|
|
%t134 = load ptr, ptr @g_prog
|
|
%t135 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 1
|
|
%t136 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 2
|
|
%t137 = getelementptr inbounds %LSlice, ptr %t134, i32 0, i32 0
|
|
%t138 = load i32, ptr %t135
|
|
%t139 = load i32, ptr %t136
|
|
%t140 = icmp sge i32 %t138, %t139
|
|
br i1 %t140, label %grow84, label %put85
|
|
grow84:
|
|
%t141 = mul i32 %t139, 2
|
|
%t142 = icmp eq i32 %t139, 0
|
|
%t143 = select i1 %t142, i32 8, i32 %t141
|
|
%t144 = getelementptr ptr, ptr null, i32 1
|
|
%t145 = ptrtoint ptr %t144 to i64
|
|
%t146 = zext i32 %t143 to i64
|
|
%t147 = mul i64 %t146, %t145
|
|
%t148 = load ptr, ptr %t137
|
|
%t149 = call ptr @realloc(ptr %t148, i64 %t147)
|
|
store ptr %t149, ptr %t137
|
|
store i32 %t143, ptr %t136
|
|
br label %put85
|
|
put85:
|
|
%t150 = call ptr @fn_parse_enum()
|
|
%t151 = load ptr, ptr %t137
|
|
%t152 = getelementptr inbounds ptr, ptr %t151, i32 %t138
|
|
store ptr %t150, ptr %t152
|
|
%t153 = add i32 %t138, 1
|
|
store i32 %t153, ptr %t135
|
|
br label %ret
|
|
ifend83:
|
|
%t154 = call i32 @fn_is_id(ptr @.str179)
|
|
%t155 = icmp ne i32 %t154, 0
|
|
br i1 %t155, label %then86, label %ifend88
|
|
then86:
|
|
%t156 = call ptr @fn_parse_event()
|
|
store ptr %t156, ptr %t157
|
|
%t158 = load ptr, ptr %t15
|
|
%t159 = icmp ne ptr %t158, null
|
|
%t160 = zext i1 %t159 to i32
|
|
%t161 = icmp ne i32 %t160, 0
|
|
br i1 %t161, label %then89, label %ifend91
|
|
then89:
|
|
%t162 = load ptr, ptr %t157
|
|
%t163 = getelementptr inbounds %Cmp_Node, ptr %t162, i32 0, i32 3
|
|
%t164 = load ptr, ptr %t15
|
|
store ptr %t164, ptr %t163
|
|
br label %ifend91
|
|
ifend91:
|
|
%t165 = load ptr, ptr %t157
|
|
call void @fn_register_event(ptr %t165)
|
|
br label %ret
|
|
ifend88:
|
|
%t166 = call i32 @fn_is_id(ptr @.str180)
|
|
%t167 = icmp ne i32 %t166, 0
|
|
br i1 %t167, label %then92, label %ifend94
|
|
then92:
|
|
%t168 = call ptr @fn_parse_component()
|
|
store ptr %t168, ptr %t169
|
|
%t170 = load i32, ptr %t12
|
|
%t171 = icmp ne i32 %t170, 0
|
|
br i1 %t171, label %then95, label %ifend97
|
|
then95:
|
|
store i32 0, ptr %t172
|
|
br label %wcond98
|
|
wcond98:
|
|
%t173 = load i32, ptr %t172
|
|
%t174 = load ptr, ptr %t169
|
|
%t175 = getelementptr inbounds %Cmp_Node, ptr %t174, i32 0, i32 7
|
|
%t176 = load ptr, ptr %t175
|
|
%t177 = getelementptr inbounds %LSlice, ptr %t176, i32 0, i32 1
|
|
%t178 = load i32, ptr %t177
|
|
%t179 = icmp slt i32 %t173, %t178
|
|
%t180 = zext i1 %t179 to i32
|
|
%t181 = icmp ne i32 %t180, 0
|
|
br i1 %t181, label %wbody99, label %wend100
|
|
wbody99:
|
|
%t182 = load ptr, ptr %t169
|
|
%t183 = getelementptr inbounds %Cmp_Node, ptr %t182, i32 0, i32 7
|
|
%t184 = load ptr, ptr %t183
|
|
%t185 = getelementptr inbounds %LSlice, ptr %t184, i32 0, i32 0
|
|
%t186 = load ptr, ptr %t185
|
|
%t187 = load i32, ptr %t172
|
|
%t188 = getelementptr inbounds ptr, ptr %t186, i32 %t187
|
|
%t189 = load ptr, ptr %t188
|
|
%t190 = getelementptr inbounds %Cmp_Node, ptr %t189, i32 0, i32 2
|
|
store i32 1, ptr %t190
|
|
%t191 = load i32, ptr %t172
|
|
%t192 = add i32 %t191, 1
|
|
store i32 %t192, ptr %t172
|
|
br label %wcond98
|
|
wend100:
|
|
br label %ifend97
|
|
ifend97:
|
|
%t193 = load ptr, ptr @g_prog
|
|
%t194 = getelementptr inbounds %LSlice, ptr %t193, i32 0, i32 1
|
|
%t195 = getelementptr inbounds %LSlice, ptr %t193, i32 0, i32 2
|
|
%t196 = getelementptr inbounds %LSlice, ptr %t193, i32 0, i32 0
|
|
%t197 = load i32, ptr %t194
|
|
%t198 = load i32, ptr %t195
|
|
%t199 = icmp sge i32 %t197, %t198
|
|
br i1 %t199, label %grow101, label %put102
|
|
grow101:
|
|
%t200 = mul i32 %t198, 2
|
|
%t201 = icmp eq i32 %t198, 0
|
|
%t202 = select i1 %t201, i32 8, i32 %t200
|
|
%t203 = getelementptr ptr, ptr null, i32 1
|
|
%t204 = ptrtoint ptr %t203 to i64
|
|
%t205 = zext i32 %t202 to i64
|
|
%t206 = mul i64 %t205, %t204
|
|
%t207 = load ptr, ptr %t196
|
|
%t208 = call ptr @realloc(ptr %t207, i64 %t206)
|
|
store ptr %t208, ptr %t196
|
|
store i32 %t202, ptr %t195
|
|
br label %put102
|
|
put102:
|
|
%t209 = load ptr, ptr %t169
|
|
%t210 = load ptr, ptr %t196
|
|
%t211 = getelementptr inbounds ptr, ptr %t210, i32 %t197
|
|
store ptr %t209, ptr %t211
|
|
%t212 = add i32 %t197, 1
|
|
store i32 %t212, ptr %t194
|
|
br label %ret
|
|
ifend94:
|
|
%t213 = call i32 @fn_is_id(ptr @.str181)
|
|
%t214 = icmp ne i32 %t213, 0
|
|
br i1 %t214, label %then103, label %ifend105
|
|
then103:
|
|
%t215 = call ptr @fn_parse_archetype()
|
|
store ptr %t215, ptr %t216
|
|
%t217 = load i32, ptr %t13
|
|
%t218 = icmp ne i32 %t217, 0
|
|
br i1 %t218, label %then106, label %ifend108
|
|
then106:
|
|
%t219 = load ptr, ptr %t216
|
|
%t220 = getelementptr inbounds %Cmp_Node, ptr %t219, i32 0, i32 2
|
|
store i32 1, ptr %t220
|
|
br label %ifend108
|
|
ifend108:
|
|
%t221 = load ptr, ptr @g_prog
|
|
%t222 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 1
|
|
%t223 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 2
|
|
%t224 = getelementptr inbounds %LSlice, ptr %t221, i32 0, i32 0
|
|
%t225 = load i32, ptr %t222
|
|
%t226 = load i32, ptr %t223
|
|
%t227 = icmp sge i32 %t225, %t226
|
|
br i1 %t227, label %grow109, label %put110
|
|
grow109:
|
|
%t228 = mul i32 %t226, 2
|
|
%t229 = icmp eq i32 %t226, 0
|
|
%t230 = select i1 %t229, i32 8, i32 %t228
|
|
%t231 = getelementptr ptr, ptr null, i32 1
|
|
%t232 = ptrtoint ptr %t231 to i64
|
|
%t233 = zext i32 %t230 to i64
|
|
%t234 = mul i64 %t233, %t232
|
|
%t235 = load ptr, ptr %t224
|
|
%t236 = call ptr @realloc(ptr %t235, i64 %t234)
|
|
store ptr %t236, ptr %t224
|
|
store i32 %t230, ptr %t223
|
|
br label %put110
|
|
put110:
|
|
%t237 = load ptr, ptr %t216
|
|
%t238 = load ptr, ptr %t224
|
|
%t239 = getelementptr inbounds ptr, ptr %t238, i32 %t225
|
|
store ptr %t237, ptr %t239
|
|
%t240 = add i32 %t225, 1
|
|
store i32 %t240, ptr %t222
|
|
br label %ret
|
|
ifend105:
|
|
%t241 = call i32 @fn_is_id(ptr @.str182)
|
|
%t242 = icmp ne i32 %t241, 0
|
|
br i1 %t242, label %then111, label %ifend113
|
|
then111:
|
|
call void @fn_parse_scene()
|
|
br label %ret
|
|
ifend113:
|
|
%t243 = call i32 @fn_is_id(ptr @.str183)
|
|
%t244 = icmp ne i32 %t243, 0
|
|
br i1 %t244, label %then114, label %ifend116
|
|
then114:
|
|
%t245 = call ptr @fn_parse_system()
|
|
store ptr %t245, ptr %t246
|
|
%t247 = load ptr, ptr %t14
|
|
%t248 = icmp ne ptr %t247, null
|
|
%t249 = zext i1 %t248 to i32
|
|
%t250 = icmp ne i32 %t249, 0
|
|
br i1 %t250, label %then117, label %ifend119
|
|
then117:
|
|
%t251 = load ptr, ptr %t14
|
|
%t252 = call i32 @fn_str_eq(ptr %t251, ptr @.str184)
|
|
%t253 = icmp ne i32 %t252, 0
|
|
br i1 %t253, label %then120, label %else121
|
|
then120:
|
|
%t254 = load ptr, ptr %t246
|
|
%t255 = getelementptr inbounds %Cmp_Node, ptr %t254, i32 0, i32 2
|
|
store i32 1, ptr %t255
|
|
br label %ifend122
|
|
else121:
|
|
%t256 = load ptr, ptr %t246
|
|
%t257 = getelementptr inbounds %Cmp_Node, ptr %t256, i32 0, i32 2
|
|
store i32 2, ptr %t257
|
|
br label %ifend122
|
|
ifend122:
|
|
br label %ifend119
|
|
ifend119:
|
|
%t258 = load ptr, ptr %t9
|
|
%t259 = icmp ne ptr %t258, null
|
|
%t260 = zext i1 %t259 to i32
|
|
%t261 = icmp ne i32 %t260, 0
|
|
br i1 %t261, label %then123, label %ifend125
|
|
then123:
|
|
%t262 = load ptr, ptr %t9
|
|
%t263 = load ptr, ptr %t246
|
|
%t264 = getelementptr inbounds %Cmp_Node, ptr %t263, i32 0, i32 4
|
|
%t265 = load ptr, ptr %t264
|
|
call void @fn_register_onlisten(ptr %t262, ptr %t265)
|
|
br label %ret
|
|
ifend125:
|
|
%t266 = load ptr, ptr %t2
|
|
%t267 = icmp ne ptr %t266, null
|
|
%t268 = zext i1 %t267 to i32
|
|
%t269 = icmp ne i32 %t268, 0
|
|
br i1 %t269, label %then126, label %ifend128
|
|
then126:
|
|
%t270 = load ptr, ptr %t2
|
|
%t271 = load ptr, ptr %t246
|
|
%t272 = getelementptr inbounds %Cmp_Node, ptr %t271, i32 0, i32 4
|
|
%t273 = load ptr, ptr %t272
|
|
call void @fn_register_onspawn(ptr %t270, ptr %t273)
|
|
%t274 = load i32, ptr %t10
|
|
%t275 = icmp ne i32 %t274, 0
|
|
br i1 %t275, label %then129, label %ifend131
|
|
then129:
|
|
%t276 = load ptr, ptr %t2
|
|
%t277 = call ptr @fn_str_concat(ptr @.str185, ptr %t276)
|
|
%t278 = call ptr @fn_str_concat(ptr %t277, ptr @.str186)
|
|
call void @fn_ensure_event(ptr %t278, i32 0)
|
|
br label %ifend131
|
|
ifend131:
|
|
br label %ret
|
|
ifend128:
|
|
%t279 = load ptr, ptr %t3
|
|
%t280 = icmp ne ptr %t279, null
|
|
%t281 = zext i1 %t280 to i32
|
|
%t282 = icmp ne i32 %t281, 0
|
|
br i1 %t282, label %then132, label %ifend134
|
|
then132:
|
|
%t283 = load ptr, ptr %t3
|
|
%t284 = load ptr, ptr %t246
|
|
%t285 = getelementptr inbounds %Cmp_Node, ptr %t284, i32 0, i32 4
|
|
%t286 = load ptr, ptr %t285
|
|
%t287 = load ptr, ptr %t4
|
|
call void @fn_register_ondespawn(ptr %t283, ptr %t286, ptr %t287)
|
|
%t288 = load i32, ptr %t10
|
|
%t289 = icmp ne i32 %t288, 0
|
|
br i1 %t289, label %then135, label %ifend137
|
|
then135:
|
|
%t290 = load ptr, ptr %t3
|
|
%t291 = call ptr @fn_str_concat(ptr @.str187, ptr %t290)
|
|
%t292 = call ptr @fn_str_concat(ptr %t291, ptr @.str188)
|
|
call void @fn_ensure_event(ptr %t292, i32 1)
|
|
br label %ifend137
|
|
ifend137:
|
|
br label %ret
|
|
ifend134:
|
|
%t293 = load ptr, ptr %t5
|
|
%t294 = icmp ne ptr %t293, null
|
|
%t295 = zext i1 %t294 to i32
|
|
%t296 = icmp ne i32 %t295, 0
|
|
br i1 %t296, label %then138, label %ifend140
|
|
then138:
|
|
%t297 = load ptr, ptr %t5
|
|
%t298 = load ptr, ptr %t246
|
|
%t299 = getelementptr inbounds %Cmp_Node, ptr %t298, i32 0, i32 4
|
|
%t300 = load ptr, ptr %t299
|
|
call void @fn_register_onattach(ptr %t297, ptr %t300)
|
|
%t301 = load i32, ptr %t10
|
|
%t302 = icmp ne i32 %t301, 0
|
|
br i1 %t302, label %then141, label %ifend143
|
|
then141:
|
|
%t303 = load ptr, ptr %t5
|
|
%t304 = call ptr @fn_str_concat(ptr @.str189, ptr %t303)
|
|
%t305 = call ptr @fn_str_concat(ptr %t304, ptr @.str190)
|
|
call void @fn_ensure_event(ptr %t305, i32 0)
|
|
br label %ifend143
|
|
ifend143:
|
|
br label %ret
|
|
ifend140:
|
|
%t306 = load ptr, ptr %t6
|
|
%t307 = icmp ne ptr %t306, null
|
|
%t308 = zext i1 %t307 to i32
|
|
%t309 = icmp ne i32 %t308, 0
|
|
br i1 %t309, label %then144, label %ifend146
|
|
then144:
|
|
%t310 = load ptr, ptr %t6
|
|
%t311 = load ptr, ptr %t246
|
|
%t312 = getelementptr inbounds %Cmp_Node, ptr %t311, i32 0, i32 4
|
|
%t313 = load ptr, ptr %t312
|
|
call void @fn_register_ondetach(ptr %t310, ptr %t313)
|
|
%t314 = load i32, ptr %t10
|
|
%t315 = icmp ne i32 %t314, 0
|
|
br i1 %t315, label %then147, label %ifend149
|
|
then147:
|
|
%t316 = load ptr, ptr %t6
|
|
%t317 = call ptr @fn_str_concat(ptr @.str191, ptr %t316)
|
|
%t318 = call ptr @fn_str_concat(ptr %t317, ptr @.str192)
|
|
call void @fn_ensure_event(ptr %t318, i32 0)
|
|
br label %ifend149
|
|
ifend149:
|
|
br label %ret
|
|
ifend146:
|
|
%t319 = load ptr, ptr %t7
|
|
%t320 = icmp ne ptr %t319, null
|
|
%t321 = zext i1 %t320 to i32
|
|
%t322 = icmp ne i32 %t321, 0
|
|
br i1 %t322, label %then150, label %ifend152
|
|
then150:
|
|
%t323 = load ptr, ptr %t7
|
|
%t324 = load ptr, ptr %t246
|
|
%t325 = getelementptr inbounds %Cmp_Node, ptr %t324, i32 0, i32 4
|
|
%t326 = load ptr, ptr %t325
|
|
call void @fn_register_onenable(ptr %t323, ptr %t326)
|
|
%t327 = load i32, ptr %t10
|
|
%t328 = icmp ne i32 %t327, 0
|
|
br i1 %t328, label %then153, label %ifend155
|
|
then153:
|
|
%t329 = load ptr, ptr %t7
|
|
%t330 = call ptr @fn_str_concat(ptr @.str193, ptr %t329)
|
|
%t331 = call ptr @fn_str_concat(ptr %t330, ptr @.str194)
|
|
call void @fn_ensure_event(ptr %t331, i32 0)
|
|
br label %ifend155
|
|
ifend155:
|
|
br label %ret
|
|
ifend152:
|
|
%t332 = load ptr, ptr %t8
|
|
%t333 = icmp ne ptr %t332, null
|
|
%t334 = zext i1 %t333 to i32
|
|
%t335 = icmp ne i32 %t334, 0
|
|
br i1 %t335, label %then156, label %ifend158
|
|
then156:
|
|
%t336 = load ptr, ptr %t8
|
|
%t337 = load ptr, ptr %t246
|
|
%t338 = getelementptr inbounds %Cmp_Node, ptr %t337, i32 0, i32 4
|
|
%t339 = load ptr, ptr %t338
|
|
call void @fn_register_ondisable(ptr %t336, ptr %t339)
|
|
%t340 = load i32, ptr %t10
|
|
%t341 = icmp ne i32 %t340, 0
|
|
br i1 %t341, label %then159, label %ifend161
|
|
then159:
|
|
%t342 = load ptr, ptr %t8
|
|
%t343 = call ptr @fn_str_concat(ptr @.str195, ptr %t342)
|
|
%t344 = call ptr @fn_str_concat(ptr %t343, ptr @.str196)
|
|
call void @fn_ensure_event(ptr %t344, i32 0)
|
|
br label %ifend161
|
|
ifend161:
|
|
br label %ret
|
|
ifend158:
|
|
%t345 = load ptr, ptr %t11
|
|
%t346 = icmp ne ptr %t345, null
|
|
%t347 = zext i1 %t346 to i32
|
|
%t348 = icmp ne i32 %t347, 0
|
|
br i1 %t348, label %then162, label %ifend164
|
|
then162:
|
|
%t349 = load ptr, ptr %t246
|
|
%t350 = getelementptr inbounds %Cmp_Node, ptr %t349, i32 0, i32 3
|
|
%t351 = load ptr, ptr %t11
|
|
store ptr %t351, ptr %t350
|
|
%t352 = load i32, ptr %t10
|
|
%t353 = icmp ne i32 %t352, 0
|
|
br i1 %t353, label %then165, label %ifend167
|
|
then165:
|
|
%t354 = load ptr, ptr %t11
|
|
%t355 = call i32 @fn_str_eq(ptr %t354, ptr @.str197)
|
|
%t356 = icmp ne i32 %t355, 0
|
|
br i1 %t356, label %then168, label %else169
|
|
then168:
|
|
call void @fn_ensure_event_empty(ptr @.str198)
|
|
br label %ifend170
|
|
else169:
|
|
call void @fn_ensure_event_empty(ptr @.str199)
|
|
br label %ifend170
|
|
ifend170:
|
|
br label %ifend167
|
|
ifend167:
|
|
br label %ifend164
|
|
ifend164:
|
|
%t357 = load ptr, ptr %t1
|
|
%t358 = icmp ne ptr %t357, null
|
|
%t359 = zext i1 %t358 to i32
|
|
%t360 = icmp ne i32 %t359, 0
|
|
br i1 %t360, label %then171, label %ifend173
|
|
then171:
|
|
%t361 = load ptr, ptr %t1
|
|
%t362 = getelementptr inbounds %Cmp_Node, ptr %t361, i32 0, i32 4
|
|
%t363 = load ptr, ptr %t246
|
|
%t364 = getelementptr inbounds %Cmp_Node, ptr %t363, i32 0, i32 4
|
|
%t365 = load ptr, ptr %t364
|
|
store ptr %t365, ptr %t362
|
|
%t366 = call ptr @fn_node(i32 7)
|
|
store ptr %t366, ptr %t367
|
|
%t368 = load ptr, ptr %t367
|
|
%t369 = getelementptr inbounds %Cmp_Node, ptr %t368, i32 0, i32 7
|
|
%t370 = load ptr, ptr %t369
|
|
%t371 = getelementptr inbounds %LSlice, ptr %t370, i32 0, i32 1
|
|
%t372 = getelementptr inbounds %LSlice, ptr %t370, i32 0, i32 2
|
|
%t373 = getelementptr inbounds %LSlice, ptr %t370, i32 0, i32 0
|
|
%t374 = load i32, ptr %t371
|
|
%t375 = load i32, ptr %t372
|
|
%t376 = icmp sge i32 %t374, %t375
|
|
br i1 %t376, label %grow174, label %put175
|
|
grow174:
|
|
%t377 = mul i32 %t375, 2
|
|
%t378 = icmp eq i32 %t375, 0
|
|
%t379 = select i1 %t378, i32 8, i32 %t377
|
|
%t380 = getelementptr ptr, ptr null, i32 1
|
|
%t381 = ptrtoint ptr %t380 to i64
|
|
%t382 = zext i32 %t379 to i64
|
|
%t383 = mul i64 %t382, %t381
|
|
%t384 = load ptr, ptr %t373
|
|
%t385 = call ptr @realloc(ptr %t384, i64 %t383)
|
|
store ptr %t385, ptr %t373
|
|
store i32 %t379, ptr %t372
|
|
br label %put175
|
|
put175:
|
|
%t386 = load ptr, ptr %t1
|
|
%t387 = load ptr, ptr %t373
|
|
%t388 = getelementptr inbounds ptr, ptr %t387, i32 %t374
|
|
store ptr %t386, ptr %t388
|
|
%t389 = add i32 %t374, 1
|
|
store i32 %t389, ptr %t371
|
|
%t390 = load ptr, ptr %t246
|
|
%t391 = getelementptr inbounds %Cmp_Node, ptr %t390, i32 0, i32 4
|
|
%t392 = load ptr, ptr %t367
|
|
store ptr %t392, ptr %t391
|
|
br label %ifend173
|
|
ifend173:
|
|
%t393 = load ptr, ptr @g_prog
|
|
%t394 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 1
|
|
%t395 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 2
|
|
%t396 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 0
|
|
%t397 = load i32, ptr %t394
|
|
%t398 = load i32, ptr %t395
|
|
%t399 = icmp sge i32 %t397, %t398
|
|
br i1 %t399, label %grow176, label %put177
|
|
grow176:
|
|
%t400 = mul i32 %t398, 2
|
|
%t401 = icmp eq i32 %t398, 0
|
|
%t402 = select i1 %t401, i32 8, i32 %t400
|
|
%t403 = getelementptr ptr, ptr null, i32 1
|
|
%t404 = ptrtoint ptr %t403 to i64
|
|
%t405 = zext i32 %t402 to i64
|
|
%t406 = mul i64 %t405, %t404
|
|
%t407 = load ptr, ptr %t396
|
|
%t408 = call ptr @realloc(ptr %t407, i64 %t406)
|
|
store ptr %t408, ptr %t396
|
|
store i32 %t402, ptr %t395
|
|
br label %put177
|
|
put177:
|
|
%t409 = load ptr, ptr %t246
|
|
%t410 = load ptr, ptr %t396
|
|
%t411 = getelementptr inbounds ptr, ptr %t410, i32 %t397
|
|
store ptr %t409, ptr %t411
|
|
%t412 = add i32 %t397, 1
|
|
store i32 %t412, ptr %t394
|
|
br label %ret
|
|
ifend116:
|
|
%t413 = call i32 @fn_is_id(ptr @.str200)
|
|
%t414 = icmp ne i32 %t413, 0
|
|
br i1 %t414, label %then178, label %ifend180
|
|
then178:
|
|
%t415 = load ptr, ptr @g_prog
|
|
%t416 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 1
|
|
%t417 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 2
|
|
%t418 = getelementptr inbounds %LSlice, ptr %t415, i32 0, i32 0
|
|
%t419 = load i32, ptr %t416
|
|
%t420 = load i32, ptr %t417
|
|
%t421 = icmp sge i32 %t419, %t420
|
|
br i1 %t421, label %grow181, label %put182
|
|
grow181:
|
|
%t422 = mul i32 %t420, 2
|
|
%t423 = icmp eq i32 %t420, 0
|
|
%t424 = select i1 %t423, i32 8, i32 %t422
|
|
%t425 = getelementptr ptr, ptr null, i32 1
|
|
%t426 = ptrtoint ptr %t425 to i64
|
|
%t427 = zext i32 %t424 to i64
|
|
%t428 = mul i64 %t427, %t426
|
|
%t429 = load ptr, ptr %t418
|
|
%t430 = call ptr @realloc(ptr %t429, i64 %t428)
|
|
store ptr %t430, ptr %t418
|
|
store i32 %t424, ptr %t417
|
|
br label %put182
|
|
put182:
|
|
%t431 = call ptr @fn_parse_ui()
|
|
%t432 = load ptr, ptr %t418
|
|
%t433 = getelementptr inbounds ptr, ptr %t432, i32 %t419
|
|
store ptr %t431, ptr %t433
|
|
%t434 = add i32 %t419, 1
|
|
store i32 %t434, ptr %t416
|
|
br label %ret
|
|
ifend180:
|
|
%t435 = call i32 @fn_is_id(ptr @.str201)
|
|
%t436 = icmp ne i32 %t435, 0
|
|
br i1 %t436, label %then183, label %ifend185
|
|
then183:
|
|
%t437 = load ptr, ptr @g_prog
|
|
%t438 = getelementptr inbounds %LSlice, ptr %t437, i32 0, i32 1
|
|
%t439 = getelementptr inbounds %LSlice, ptr %t437, i32 0, i32 2
|
|
%t440 = getelementptr inbounds %LSlice, ptr %t437, i32 0, i32 0
|
|
%t441 = load i32, ptr %t438
|
|
%t442 = load i32, ptr %t439
|
|
%t443 = icmp sge i32 %t441, %t442
|
|
br i1 %t443, label %grow186, label %put187
|
|
grow186:
|
|
%t444 = mul i32 %t442, 2
|
|
%t445 = icmp eq i32 %t442, 0
|
|
%t446 = select i1 %t445, i32 8, i32 %t444
|
|
%t447 = getelementptr ptr, ptr null, i32 1
|
|
%t448 = ptrtoint ptr %t447 to i64
|
|
%t449 = zext i32 %t446 to i64
|
|
%t450 = mul i64 %t449, %t448
|
|
%t451 = load ptr, ptr %t440
|
|
%t452 = call ptr @realloc(ptr %t451, i64 %t450)
|
|
store ptr %t452, ptr %t440
|
|
store i32 %t446, ptr %t439
|
|
br label %put187
|
|
put187:
|
|
%t453 = call ptr @fn_parse_var()
|
|
%t454 = load ptr, ptr %t440
|
|
%t455 = getelementptr inbounds ptr, ptr %t454, i32 %t441
|
|
store ptr %t453, ptr %t455
|
|
%t456 = add i32 %t441, 1
|
|
store i32 %t456, ptr %t438
|
|
br label %ret
|
|
ifend185:
|
|
%t457 = call i32 @fn_is_id(ptr @.str202)
|
|
%t458 = icmp ne i32 %t457, 0
|
|
br i1 %t458, label %then188, label %ifend190
|
|
then188:
|
|
%t459 = load ptr, ptr @g_prog
|
|
%t460 = getelementptr inbounds %LSlice, ptr %t459, i32 0, i32 1
|
|
%t461 = getelementptr inbounds %LSlice, ptr %t459, i32 0, i32 2
|
|
%t462 = getelementptr inbounds %LSlice, ptr %t459, i32 0, i32 0
|
|
%t463 = load i32, ptr %t460
|
|
%t464 = load i32, ptr %t461
|
|
%t465 = icmp sge i32 %t463, %t464
|
|
br i1 %t465, label %grow191, label %put192
|
|
grow191:
|
|
%t466 = mul i32 %t464, 2
|
|
%t467 = icmp eq i32 %t464, 0
|
|
%t468 = select i1 %t467, i32 8, i32 %t466
|
|
%t469 = getelementptr ptr, ptr null, i32 1
|
|
%t470 = ptrtoint ptr %t469 to i64
|
|
%t471 = zext i32 %t468 to i64
|
|
%t472 = mul i64 %t471, %t470
|
|
%t473 = load ptr, ptr %t462
|
|
%t474 = call ptr @realloc(ptr %t473, i64 %t472)
|
|
store ptr %t474, ptr %t462
|
|
store i32 %t468, ptr %t461
|
|
br label %put192
|
|
put192:
|
|
%t475 = call ptr @fn_parse_const()
|
|
%t476 = load ptr, ptr %t462
|
|
%t477 = getelementptr inbounds ptr, ptr %t476, i32 %t463
|
|
store ptr %t475, ptr %t477
|
|
%t478 = add i32 %t463, 1
|
|
store i32 %t478, ptr %t460
|
|
br label %ret
|
|
ifend190:
|
|
%t479 = call i32 @fn_is_id(ptr @.str203)
|
|
%t480 = icmp ne i32 %t479, 0
|
|
br i1 %t480, label %then193, label %ifend195
|
|
then193:
|
|
%t481 = call ptr @fn_parse_fn()
|
|
store ptr %t481, ptr %t482
|
|
%t483 = load i32, ptr %t0
|
|
%t484 = icmp ne i32 %t483, 0
|
|
br i1 %t484, label %then196, label %ifend198
|
|
then196:
|
|
%t485 = load ptr, ptr %t482
|
|
%t486 = getelementptr inbounds %Cmp_Node, ptr %t485, i32 0, i32 2
|
|
store i32 1, ptr %t486
|
|
br label %ifend198
|
|
ifend198:
|
|
%t487 = load ptr, ptr @g_prog
|
|
%t488 = getelementptr inbounds %LSlice, ptr %t487, i32 0, i32 1
|
|
%t489 = getelementptr inbounds %LSlice, ptr %t487, i32 0, i32 2
|
|
%t490 = getelementptr inbounds %LSlice, ptr %t487, i32 0, i32 0
|
|
%t491 = load i32, ptr %t488
|
|
%t492 = load i32, ptr %t489
|
|
%t493 = icmp sge i32 %t491, %t492
|
|
br i1 %t493, label %grow199, label %put200
|
|
grow199:
|
|
%t494 = mul i32 %t492, 2
|
|
%t495 = icmp eq i32 %t492, 0
|
|
%t496 = select i1 %t495, i32 8, i32 %t494
|
|
%t497 = getelementptr ptr, ptr null, i32 1
|
|
%t498 = ptrtoint ptr %t497 to i64
|
|
%t499 = zext i32 %t496 to i64
|
|
%t500 = mul i64 %t499, %t498
|
|
%t501 = load ptr, ptr %t490
|
|
%t502 = call ptr @realloc(ptr %t501, i64 %t500)
|
|
store ptr %t502, ptr %t490
|
|
store i32 %t496, ptr %t489
|
|
br label %put200
|
|
put200:
|
|
%t503 = load ptr, ptr %t482
|
|
%t504 = load ptr, ptr %t490
|
|
%t505 = getelementptr inbounds ptr, ptr %t504, i32 %t491
|
|
store ptr %t503, ptr %t505
|
|
%t506 = add i32 %t491, 1
|
|
store i32 %t506, ptr %t488
|
|
br label %ret
|
|
ifend195:
|
|
%t507 = call i32 @fn_is_id(ptr @.str204)
|
|
%t508 = icmp ne i32 %t507, 0
|
|
br i1 %t508, label %then201, label %ifend203
|
|
then201:
|
|
%t509 = load ptr, ptr @g_prog
|
|
%t510 = getelementptr inbounds %LSlice, ptr %t509, i32 0, i32 1
|
|
%t511 = getelementptr inbounds %LSlice, ptr %t509, i32 0, i32 2
|
|
%t512 = getelementptr inbounds %LSlice, ptr %t509, i32 0, i32 0
|
|
%t513 = load i32, ptr %t510
|
|
%t514 = load i32, ptr %t511
|
|
%t515 = icmp sge i32 %t513, %t514
|
|
br i1 %t515, label %grow204, label %put205
|
|
grow204:
|
|
%t516 = mul i32 %t514, 2
|
|
%t517 = icmp eq i32 %t514, 0
|
|
%t518 = select i1 %t517, i32 8, i32 %t516
|
|
%t519 = getelementptr ptr, ptr null, i32 1
|
|
%t520 = ptrtoint ptr %t519 to i64
|
|
%t521 = zext i32 %t518 to i64
|
|
%t522 = mul i64 %t521, %t520
|
|
%t523 = load ptr, ptr %t512
|
|
%t524 = call ptr @realloc(ptr %t523, i64 %t522)
|
|
store ptr %t524, ptr %t512
|
|
store i32 %t518, ptr %t511
|
|
br label %put205
|
|
put205:
|
|
%t525 = call ptr @fn_parse_extern()
|
|
%t526 = load ptr, ptr %t512
|
|
%t527 = getelementptr inbounds ptr, ptr %t526, i32 %t513
|
|
store ptr %t525, ptr %t527
|
|
%t528 = add i32 %t513, 1
|
|
store i32 %t528, ptr %t510
|
|
br label %ret
|
|
ifend203:
|
|
%t529 = call i32 @fn_is_id(ptr @.str205)
|
|
%t530 = icmp ne i32 %t529, 0
|
|
br i1 %t530, label %then206, label %ifend208
|
|
then206:
|
|
%t531 = load ptr, ptr @g_prog
|
|
%t532 = getelementptr inbounds %LSlice, ptr %t531, i32 0, i32 1
|
|
%t533 = getelementptr inbounds %LSlice, ptr %t531, i32 0, i32 2
|
|
%t534 = getelementptr inbounds %LSlice, ptr %t531, i32 0, i32 0
|
|
%t535 = load i32, ptr %t532
|
|
%t536 = load i32, ptr %t533
|
|
%t537 = icmp sge i32 %t535, %t536
|
|
br i1 %t537, label %grow209, label %put210
|
|
grow209:
|
|
%t538 = mul i32 %t536, 2
|
|
%t539 = icmp eq i32 %t536, 0
|
|
%t540 = select i1 %t539, i32 8, i32 %t538
|
|
%t541 = getelementptr ptr, ptr null, i32 1
|
|
%t542 = ptrtoint ptr %t541 to i64
|
|
%t543 = zext i32 %t540 to i64
|
|
%t544 = mul i64 %t543, %t542
|
|
%t545 = load ptr, ptr %t534
|
|
%t546 = call ptr @realloc(ptr %t545, i64 %t544)
|
|
store ptr %t546, ptr %t534
|
|
store i32 %t540, ptr %t533
|
|
br label %put210
|
|
put210:
|
|
%t547 = call ptr @fn_parse_main()
|
|
%t548 = load ptr, ptr %t534
|
|
%t549 = getelementptr inbounds ptr, ptr %t548, i32 %t535
|
|
store ptr %t547, ptr %t549
|
|
%t550 = add i32 %t535, 1
|
|
store i32 %t550, ptr %t532
|
|
br label %ret
|
|
ifend208:
|
|
call void @fn_perr(ptr @.str206)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_do_import(ptr %arg_rel) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t30 = alloca ptr
|
|
%t38 = alloca ptr
|
|
%t40 = alloca i32
|
|
%t42 = alloca ptr
|
|
store ptr %arg_rel, ptr %t0
|
|
%t1 = load ptr, ptr @g_cur_dir
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call ptr @fn_path_join(ptr %t1, ptr %t2)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = call i32 @fn_already_loaded(ptr %t5)
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %then0, label %ifend2
|
|
then0:
|
|
br label %ret
|
|
ifend2:
|
|
%t8 = load ptr, ptr @g_loaded_paths
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 2
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t12 = load i32, ptr %t9
|
|
%t13 = load i32, ptr %t10
|
|
%t14 = icmp sge i32 %t12, %t13
|
|
br i1 %t14, label %grow3, label %put4
|
|
grow3:
|
|
%t15 = mul i32 %t13, 2
|
|
%t16 = icmp eq i32 %t13, 0
|
|
%t17 = select i1 %t16, i32 8, i32 %t15
|
|
%t18 = getelementptr ptr, ptr null, i32 1
|
|
%t19 = ptrtoint ptr %t18 to i64
|
|
%t20 = zext i32 %t17 to i64
|
|
%t21 = mul i64 %t20, %t19
|
|
%t22 = load ptr, ptr %t11
|
|
%t23 = call ptr @realloc(ptr %t22, i64 %t21)
|
|
store ptr %t23, ptr %t11
|
|
store i32 %t17, ptr %t10
|
|
br label %put4
|
|
put4:
|
|
%t24 = load ptr, ptr %t4
|
|
%t25 = load ptr, ptr %t11
|
|
%t26 = getelementptr inbounds ptr, ptr %t25, i32 %t12
|
|
store ptr %t24, ptr %t26
|
|
%t27 = add i32 %t12, 1
|
|
store i32 %t27, ptr %t9
|
|
%t28 = load ptr, ptr %t4
|
|
%t29 = call ptr @fn_read_file(ptr %t28)
|
|
store ptr %t29, ptr %t30
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = icmp eq ptr %t31, null
|
|
%t33 = zext i1 %t32 to i32
|
|
%t34 = icmp ne i32 %t33, 0
|
|
br i1 %t34, label %then5, label %ifend7
|
|
then5:
|
|
%t35 = load ptr, ptr %t4
|
|
%t36 = call ptr @fn_str_concat(ptr @.str207, ptr %t35)
|
|
call void @fn_perr(ptr %t36)
|
|
br label %ifend7
|
|
ifend7:
|
|
%t37 = load ptr, ptr @g_toks
|
|
store ptr %t37, ptr %t38
|
|
%t39 = load i32, ptr @g_pi
|
|
store i32 %t39, ptr %t40
|
|
%t41 = load ptr, ptr @g_cur_dir
|
|
store ptr %t41, ptr %t42
|
|
%t43 = load ptr, ptr %t4
|
|
%t44 = call ptr @fn_dir_of(ptr %t43)
|
|
store ptr %t44, ptr @g_cur_dir
|
|
%t45 = load ptr, ptr %t30
|
|
call void @fn_lex(ptr %t45)
|
|
store i32 0, ptr @g_pi
|
|
call void @fn_skipnl()
|
|
br label %wcond8
|
|
wcond8:
|
|
%t46 = load ptr, ptr @g_toks
|
|
%t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = load i32, ptr @g_pi
|
|
%t50 = getelementptr inbounds ptr, ptr %t48, i32 %t49
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = getelementptr inbounds %Cmp_Tok, ptr %t51, i32 0, i32 0
|
|
%t53 = load i32, ptr %t52
|
|
%t54 = icmp ne i32 %t53, 5
|
|
%t55 = zext i1 %t54 to i32
|
|
%t56 = icmp ne i32 %t55, 0
|
|
br i1 %t56, label %wbody9, label %wend10
|
|
wbody9:
|
|
call void @fn_parse_one_decl()
|
|
call void @fn_skipnl()
|
|
br label %wcond8
|
|
wend10:
|
|
%t57 = load ptr, ptr %t38
|
|
store ptr %t57, ptr @g_toks
|
|
%t58 = load i32, ptr %t40
|
|
store i32 %t58, ptr @g_pi
|
|
%t59 = load ptr, ptr %t42
|
|
store ptr %t59, ptr @g_cur_dir
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_maybe_splice_runtime() {
|
|
entry:
|
|
%t5 = alloca ptr
|
|
%t0 = call i32 @fn_has_ecs()
|
|
%t1 = icmp eq i32 %t0, 0
|
|
%t2 = zext i1 %t1 to i32
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %then0, label %ifend2
|
|
then0:
|
|
br label %ret
|
|
ifend2:
|
|
%t4 = load ptr, ptr @g_cur_dir
|
|
store ptr %t4, ptr %t5
|
|
store ptr @.str208, ptr @g_cur_dir
|
|
call void @fn_do_import(ptr @.str209)
|
|
%t6 = load ptr, ptr %t5
|
|
store ptr %t6, ptr @g_cur_dir
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_parse_program() {
|
|
entry:
|
|
%t88 = alloca ptr
|
|
%t92 = alloca ptr
|
|
%t101 = alloca ptr
|
|
%t104 = alloca i32
|
|
%t0 = getelementptr %LSlice, ptr null, i32 1
|
|
%t1 = ptrtoint ptr %t0 to i64
|
|
%t2 = call ptr @malloc(i64 %t1)
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0
|
|
store ptr null, ptr %t3
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
store i32 0, ptr %t4
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2
|
|
store i32 0, ptr %t5
|
|
store ptr %t2, ptr @g_prog
|
|
%t6 = getelementptr %LSlice, ptr null, i32 1
|
|
%t7 = ptrtoint ptr %t6 to i64
|
|
%t8 = call ptr @malloc(i64 %t7)
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
store ptr null, ptr %t9
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1
|
|
store i32 0, ptr %t10
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 2
|
|
store i32 0, ptr %t11
|
|
store ptr %t8, ptr @g_g_computed
|
|
%t12 = getelementptr %LSlice, ptr null, i32 1
|
|
%t13 = ptrtoint ptr %t12 to i64
|
|
%t14 = call ptr @malloc(i64 %t13)
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0
|
|
store ptr null, ptr %t15
|
|
%t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1
|
|
store i32 0, ptr %t16
|
|
%t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2
|
|
store i32 0, ptr %t17
|
|
store ptr %t14, ptr @g_g_onspawn
|
|
%t18 = getelementptr %LSlice, ptr null, i32 1
|
|
%t19 = ptrtoint ptr %t18 to i64
|
|
%t20 = call ptr @malloc(i64 %t19)
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
store ptr null, ptr %t21
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1
|
|
store i32 0, ptr %t22
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2
|
|
store i32 0, ptr %t23
|
|
store ptr %t20, ptr @g_g_ondespawn
|
|
%t24 = getelementptr %LSlice, ptr null, i32 1
|
|
%t25 = ptrtoint ptr %t24 to i64
|
|
%t26 = call ptr @malloc(i64 %t25)
|
|
%t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0
|
|
store ptr null, ptr %t27
|
|
%t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1
|
|
store i32 0, ptr %t28
|
|
%t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 2
|
|
store i32 0, ptr %t29
|
|
store ptr %t26, ptr @g_g_onattach
|
|
%t30 = getelementptr %LSlice, ptr null, i32 1
|
|
%t31 = ptrtoint ptr %t30 to i64
|
|
%t32 = call ptr @malloc(i64 %t31)
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0
|
|
store ptr null, ptr %t33
|
|
%t34 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1
|
|
store i32 0, ptr %t34
|
|
%t35 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 2
|
|
store i32 0, ptr %t35
|
|
store ptr %t32, ptr @g_g_ondetach
|
|
%t36 = getelementptr %LSlice, ptr null, i32 1
|
|
%t37 = ptrtoint ptr %t36 to i64
|
|
%t38 = call ptr @malloc(i64 %t37)
|
|
%t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0
|
|
store ptr null, ptr %t39
|
|
%t40 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1
|
|
store i32 0, ptr %t40
|
|
%t41 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 2
|
|
store i32 0, ptr %t41
|
|
store ptr %t38, ptr @g_g_onenable
|
|
%t42 = getelementptr %LSlice, ptr null, i32 1
|
|
%t43 = ptrtoint ptr %t42 to i64
|
|
%t44 = call ptr @malloc(i64 %t43)
|
|
%t45 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0
|
|
store ptr null, ptr %t45
|
|
%t46 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 1
|
|
store i32 0, ptr %t46
|
|
%t47 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 2
|
|
store i32 0, ptr %t47
|
|
store ptr %t44, ptr @g_g_ondisable
|
|
%t48 = getelementptr %LSlice, ptr null, i32 1
|
|
%t49 = ptrtoint ptr %t48 to i64
|
|
%t50 = call ptr @malloc(i64 %t49)
|
|
%t51 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0
|
|
store ptr null, ptr %t51
|
|
%t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1
|
|
store i32 0, ptr %t52
|
|
%t53 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 2
|
|
store i32 0, ptr %t53
|
|
store ptr %t50, ptr @g_g_scenes
|
|
store i32 0, ptr @g_g_scene_count
|
|
store i32 0, ptr @g_g_start_scene
|
|
%t54 = getelementptr %LSlice, ptr null, i32 1
|
|
%t55 = ptrtoint ptr %t54 to i64
|
|
%t56 = call ptr @malloc(i64 %t55)
|
|
%t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0
|
|
store ptr null, ptr %t57
|
|
%t58 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 1
|
|
store i32 0, ptr %t58
|
|
%t59 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 2
|
|
store i32 0, ptr %t59
|
|
store ptr %t56, ptr @g_g_events
|
|
%t60 = getelementptr %LSlice, ptr null, i32 1
|
|
%t61 = ptrtoint ptr %t60 to i64
|
|
%t62 = call ptr @malloc(i64 %t61)
|
|
%t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0
|
|
store ptr null, ptr %t63
|
|
%t64 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 1
|
|
store i32 0, ptr %t64
|
|
%t65 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 2
|
|
store i32 0, ptr %t65
|
|
store ptr %t62, ptr @g_g_onlisten
|
|
%t66 = getelementptr %LSlice, ptr null, i32 1
|
|
%t67 = ptrtoint ptr %t66 to i64
|
|
%t68 = call ptr @malloc(i64 %t67)
|
|
%t69 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 0
|
|
store ptr null, ptr %t69
|
|
%t70 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 1
|
|
store i32 0, ptr %t70
|
|
%t71 = getelementptr inbounds %LSlice, ptr %t68, i32 0, i32 2
|
|
store i32 0, ptr %t71
|
|
store ptr %t68, ptr @g_g_toggled_layers
|
|
%t72 = getelementptr %LSlice, ptr null, i32 1
|
|
%t73 = ptrtoint ptr %t72 to i64
|
|
%t74 = call ptr @malloc(i64 %t73)
|
|
%t75 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0
|
|
store ptr null, ptr %t75
|
|
%t76 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 1
|
|
store i32 0, ptr %t76
|
|
%t77 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 2
|
|
store i32 0, ptr %t77
|
|
store ptr %t74, ptr @g_loaded_paths
|
|
call void @fn_skipnl()
|
|
store ptr @.str210, ptr @g_g_game_name
|
|
br label %wcond0
|
|
wcond0:
|
|
%t78 = call i32 @fn_is_id(ptr @.str211)
|
|
%t79 = icmp ne i32 %t78, 0
|
|
br i1 %t79, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t80 = load i32, ptr @g_pi
|
|
%t81 = add i32 %t80, 1
|
|
store i32 %t81, ptr @g_pi
|
|
%t82 = load ptr, ptr @g_toks
|
|
%t83 = getelementptr inbounds %LSlice, ptr %t82, i32 0, i32 0
|
|
%t84 = load ptr, ptr %t83
|
|
%t85 = load i32, ptr @g_pi
|
|
%t86 = getelementptr inbounds ptr, ptr %t84, i32 %t85
|
|
%t87 = load ptr, ptr %t86
|
|
store ptr %t87, ptr %t88
|
|
%t89 = load ptr, ptr %t88
|
|
%t90 = getelementptr inbounds %Cmp_Tok, ptr %t89, i32 0, i32 1
|
|
%t91 = load ptr, ptr %t90
|
|
store ptr %t91, ptr %t92
|
|
%t93 = load i32, ptr @g_pi
|
|
%t94 = add i32 %t93, 1
|
|
store i32 %t94, ptr @g_pi
|
|
%t95 = load ptr, ptr %t92
|
|
call void @fn_do_import(ptr %t95)
|
|
call void @fn_skipnl()
|
|
br label %wcond0
|
|
wend2:
|
|
br label %wcond3
|
|
wcond3:
|
|
%t96 = call i32 @fn_is_op(ptr @.str212)
|
|
%t97 = icmp ne i32 %t96, 0
|
|
br i1 %t97, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t98 = load i32, ptr @g_pi
|
|
%t99 = add i32 %t98, 1
|
|
store i32 %t99, ptr @g_pi
|
|
%t100 = call ptr @fn_eat_id()
|
|
store ptr %t100, ptr %t101
|
|
%t102 = call i32 @fn_is_op(ptr @.str213)
|
|
%t103 = icmp ne i32 %t102, 0
|
|
br i1 %t103, label %then6, label %ifend8
|
|
then6:
|
|
store i32 0, ptr %t104
|
|
br label %wcond9
|
|
wcond9:
|
|
%t105 = icmp ne i32 1, 0
|
|
br i1 %t105, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t106 = call i32 @fn_is_op(ptr @.str214)
|
|
%t107 = icmp ne i32 %t106, 0
|
|
br i1 %t107, label %then12, label %ifend14
|
|
then12:
|
|
%t108 = load i32, ptr %t104
|
|
%t109 = add i32 %t108, 1
|
|
store i32 %t109, ptr %t104
|
|
br label %ifend14
|
|
ifend14:
|
|
%t110 = call i32 @fn_is_op(ptr @.str215)
|
|
%t111 = icmp ne i32 %t110, 0
|
|
br i1 %t111, label %then15, label %ifend17
|
|
then15:
|
|
%t112 = load i32, ptr %t104
|
|
%t113 = sub i32 %t112, 1
|
|
store i32 %t113, ptr %t104
|
|
br label %ifend17
|
|
ifend17:
|
|
%t114 = load i32, ptr @g_pi
|
|
%t115 = add i32 %t114, 1
|
|
store i32 %t115, ptr @g_pi
|
|
%t116 = load i32, ptr %t104
|
|
%t117 = icmp eq i32 %t116, 0
|
|
%t118 = zext i1 %t117 to i32
|
|
%t119 = icmp ne i32 %t118, 0
|
|
br i1 %t119, label %then18, label %ifend20
|
|
then18:
|
|
br label %wend11
|
|
ifend20:
|
|
br label %wcond9
|
|
wend11:
|
|
br label %ifend8
|
|
ifend8:
|
|
call void @fn_skipnl()
|
|
br label %wcond3
|
|
wend5:
|
|
%t120 = call i32 @fn_is_id(ptr @.str216)
|
|
%t121 = icmp ne i32 %t120, 0
|
|
br i1 %t121, label %then21, label %ifend23
|
|
then21:
|
|
%t122 = load i32, ptr @g_pi
|
|
%t123 = add i32 %t122, 1
|
|
store i32 %t123, ptr @g_pi
|
|
%t124 = call ptr @fn_eat_id()
|
|
store ptr %t124, ptr @g_g_game_name
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str217)
|
|
br label %ifend23
|
|
ifend23:
|
|
br label %wcond24
|
|
wcond24:
|
|
%t125 = icmp ne i32 1, 0
|
|
br i1 %t125, label %wbody25, label %wend26
|
|
wbody25:
|
|
call void @fn_skipnl()
|
|
%t126 = load ptr, ptr @g_toks
|
|
%t127 = getelementptr inbounds %LSlice, ptr %t126, i32 0, i32 0
|
|
%t128 = load ptr, ptr %t127
|
|
%t129 = load i32, ptr @g_pi
|
|
%t130 = getelementptr inbounds ptr, ptr %t128, i32 %t129
|
|
%t131 = load ptr, ptr %t130
|
|
%t132 = getelementptr inbounds %Cmp_Tok, ptr %t131, i32 0, i32 0
|
|
%t133 = load i32, ptr %t132
|
|
%t134 = icmp eq i32 %t133, 5
|
|
%t135 = zext i1 %t134 to i32
|
|
%t136 = icmp ne i32 %t135, 0
|
|
br i1 %t136, label %then27, label %ifend29
|
|
then27:
|
|
br label %wend26
|
|
ifend29:
|
|
%t137 = call i32 @fn_is_op(ptr @.str218)
|
|
%t138 = icmp ne i32 %t137, 0
|
|
br i1 %t138, label %then30, label %ifend32
|
|
then30:
|
|
br label %wend26
|
|
ifend32:
|
|
call void @fn_parse_one_decl()
|
|
br label %wcond24
|
|
wend26:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_parse_component() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t10 = alloca i32
|
|
%t11 = alloca i32
|
|
%t17 = alloca ptr
|
|
%t25 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 8)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str219)
|
|
br label %wcond0
|
|
wcond0:
|
|
%t7 = icmp ne i32 1, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
call void @fn_skipnl()
|
|
%t8 = call i32 @fn_is_op(ptr @.str220)
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then3, label %ifend5
|
|
then3:
|
|
br label %wend2
|
|
ifend5:
|
|
store i32 0, ptr %t10
|
|
store i32 0, ptr %t11
|
|
%t12 = call i32 @fn_is_op(ptr @.str221)
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %then6, label %ifend8
|
|
then6:
|
|
%t14 = load i32, ptr @g_pi
|
|
%t15 = add i32 %t14, 1
|
|
store i32 %t15, ptr @g_pi
|
|
%t16 = call ptr @fn_eat_id()
|
|
store ptr %t16, ptr %t17
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = call i32 @fn_str_eq(ptr %t18, ptr @.str222)
|
|
%t20 = icmp ne i32 %t19, 0
|
|
br i1 %t20, label %then9, label %else10
|
|
then9:
|
|
store i32 1, ptr %t10
|
|
br label %ifend11
|
|
else10:
|
|
%t21 = load ptr, ptr %t17
|
|
%t22 = call i32 @fn_str_eq(ptr %t21, ptr @.str223)
|
|
%t23 = icmp ne i32 %t22, 0
|
|
br i1 %t23, label %then12, label %ifend14
|
|
then12:
|
|
store i32 1, ptr %t11
|
|
br label %ifend14
|
|
ifend14:
|
|
br label %ifend11
|
|
ifend11:
|
|
call void @fn_skipnl()
|
|
br label %ifend8
|
|
ifend8:
|
|
%t24 = call ptr @fn_node(i32 1)
|
|
store ptr %t24, ptr %t25
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1
|
|
%t28 = call ptr @fn_eat_id()
|
|
store ptr %t28, ptr %t27
|
|
call void @fn_eat_op(ptr @.str224)
|
|
%t29 = load ptr, ptr %t25
|
|
%t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 3
|
|
%t31 = call ptr @fn_ptype()
|
|
store ptr %t31, ptr %t30
|
|
%t32 = call i32 @fn_is_op(ptr @.str225)
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then15, label %ifend17
|
|
then15:
|
|
%t34 = load i32, ptr @g_pi
|
|
%t35 = add i32 %t34, 1
|
|
store i32 %t35, ptr @g_pi
|
|
%t36 = load ptr, ptr %t25
|
|
%t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 4
|
|
%t38 = call ptr @fn_expr()
|
|
store ptr %t38, ptr %t37
|
|
br label %ifend17
|
|
ifend17:
|
|
%t39 = load i32, ptr %t11
|
|
%t40 = icmp ne i32 %t39, 0
|
|
br i1 %t40, label %then18, label %ifend20
|
|
then18:
|
|
%t41 = load ptr, ptr %t25
|
|
%t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 2
|
|
store i32 1, ptr %t42
|
|
br label %ifend20
|
|
ifend20:
|
|
%t43 = load i32, ptr %t10
|
|
%t44 = icmp ne i32 %t43, 0
|
|
br i1 %t44, label %then21, label %else22
|
|
then21:
|
|
%t45 = load ptr, ptr %t3
|
|
%t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1
|
|
%t47 = load ptr, ptr %t46
|
|
%t48 = load ptr, ptr %t25
|
|
%t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 1
|
|
%t50 = load ptr, ptr %t49
|
|
%t51 = load ptr, ptr %t25
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 3
|
|
%t53 = load ptr, ptr %t52
|
|
%t54 = load ptr, ptr %t25
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 4
|
|
%t56 = load ptr, ptr %t55
|
|
call void @fn_register_computed(ptr %t47, ptr %t50, ptr %t53, ptr %t56)
|
|
br label %ifend23
|
|
else22:
|
|
%t57 = load ptr, ptr %t3
|
|
%t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 7
|
|
%t59 = load ptr, ptr %t58
|
|
%t60 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 1
|
|
%t61 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 2
|
|
%t62 = getelementptr inbounds %LSlice, ptr %t59, i32 0, i32 0
|
|
%t63 = load i32, ptr %t60
|
|
%t64 = load i32, ptr %t61
|
|
%t65 = icmp sge i32 %t63, %t64
|
|
br i1 %t65, label %grow24, label %put25
|
|
grow24:
|
|
%t66 = mul i32 %t64, 2
|
|
%t67 = icmp eq i32 %t64, 0
|
|
%t68 = select i1 %t67, i32 8, i32 %t66
|
|
%t69 = getelementptr ptr, ptr null, i32 1
|
|
%t70 = ptrtoint ptr %t69 to i64
|
|
%t71 = zext i32 %t68 to i64
|
|
%t72 = mul i64 %t71, %t70
|
|
%t73 = load ptr, ptr %t62
|
|
%t74 = call ptr @realloc(ptr %t73, i64 %t72)
|
|
store ptr %t74, ptr %t62
|
|
store i32 %t68, ptr %t61
|
|
br label %put25
|
|
put25:
|
|
%t75 = load ptr, ptr %t25
|
|
%t76 = load ptr, ptr %t62
|
|
%t77 = getelementptr inbounds ptr, ptr %t76, i32 %t63
|
|
store ptr %t75, ptr %t77
|
|
%t78 = add i32 %t63, 1
|
|
store i32 %t78, ptr %t60
|
|
br label %ifend23
|
|
ifend23:
|
|
%t79 = call i32 @fn_is_op(ptr @.str226)
|
|
%t80 = icmp ne i32 %t79, 0
|
|
br i1 %t80, label %then26, label %ifend28
|
|
then26:
|
|
%t81 = load i32, ptr @g_pi
|
|
%t82 = add i32 %t81, 1
|
|
store i32 %t82, ptr @g_pi
|
|
br label %ifend28
|
|
ifend28:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str227)
|
|
%t83 = load ptr, ptr %t3
|
|
store ptr %t83, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t84 = load ptr, ptr %retval
|
|
ret ptr %t84
|
|
}
|
|
|
|
define ptr @fn_parse_event() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t17 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 48)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = call i32 @fn_is_id(ptr @.str228)
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load i32, ptr @g_pi
|
|
%t7 = add i32 %t6, 1
|
|
store i32 %t7, ptr @g_pi
|
|
%t8 = load ptr, ptr %t3
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 2
|
|
store i32 1, ptr %t9
|
|
br label %ifend2
|
|
ifend2:
|
|
%t10 = load ptr, ptr %t3
|
|
%t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 1
|
|
%t12 = call ptr @fn_eat_id()
|
|
store ptr %t12, ptr %t11
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str229)
|
|
br label %wcond3
|
|
wcond3:
|
|
%t13 = icmp ne i32 1, 0
|
|
br i1 %t13, label %wbody4, label %wend5
|
|
wbody4:
|
|
call void @fn_skipnl()
|
|
%t14 = call i32 @fn_is_op(ptr @.str230)
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then6, label %ifend8
|
|
then6:
|
|
br label %wend5
|
|
ifend8:
|
|
%t16 = call ptr @fn_node(i32 1)
|
|
store ptr %t16, ptr %t17
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1
|
|
%t20 = call ptr @fn_eat_id()
|
|
store ptr %t20, ptr %t19
|
|
call void @fn_eat_op(ptr @.str231)
|
|
%t21 = load ptr, ptr %t17
|
|
%t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 3
|
|
%t23 = call ptr @fn_ptype()
|
|
store ptr %t23, ptr %t22
|
|
%t24 = call i32 @fn_is_op(ptr @.str232)
|
|
%t25 = icmp ne i32 %t24, 0
|
|
br i1 %t25, label %then9, label %ifend11
|
|
then9:
|
|
%t26 = load i32, ptr @g_pi
|
|
%t27 = add i32 %t26, 1
|
|
store i32 %t27, ptr @g_pi
|
|
%t28 = load ptr, ptr %t17
|
|
%t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 4
|
|
%t30 = call ptr @fn_expr()
|
|
store ptr %t30, ptr %t29
|
|
br label %ifend11
|
|
ifend11:
|
|
%t31 = load ptr, ptr %t3
|
|
%t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7
|
|
%t33 = load ptr, ptr %t32
|
|
%t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1
|
|
%t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 2
|
|
%t36 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0
|
|
%t37 = load i32, ptr %t34
|
|
%t38 = load i32, ptr %t35
|
|
%t39 = icmp sge i32 %t37, %t38
|
|
br i1 %t39, label %grow12, label %put13
|
|
grow12:
|
|
%t40 = mul i32 %t38, 2
|
|
%t41 = icmp eq i32 %t38, 0
|
|
%t42 = select i1 %t41, i32 8, i32 %t40
|
|
%t43 = getelementptr ptr, ptr null, i32 1
|
|
%t44 = ptrtoint ptr %t43 to i64
|
|
%t45 = zext i32 %t42 to i64
|
|
%t46 = mul i64 %t45, %t44
|
|
%t47 = load ptr, ptr %t36
|
|
%t48 = call ptr @realloc(ptr %t47, i64 %t46)
|
|
store ptr %t48, ptr %t36
|
|
store i32 %t42, ptr %t35
|
|
br label %put13
|
|
put13:
|
|
%t49 = load ptr, ptr %t17
|
|
%t50 = load ptr, ptr %t36
|
|
%t51 = getelementptr inbounds ptr, ptr %t50, i32 %t37
|
|
store ptr %t49, ptr %t51
|
|
%t52 = add i32 %t37, 1
|
|
store i32 %t52, ptr %t34
|
|
%t53 = call i32 @fn_is_op(ptr @.str233)
|
|
%t54 = icmp ne i32 %t53, 0
|
|
br i1 %t54, label %then14, label %ifend16
|
|
then14:
|
|
%t55 = load i32, ptr @g_pi
|
|
%t56 = add i32 %t55, 1
|
|
store i32 %t56, ptr @g_pi
|
|
br label %ifend16
|
|
ifend16:
|
|
br label %wcond3
|
|
wend5:
|
|
call void @fn_eat_op(ptr @.str234)
|
|
%t57 = load ptr, ptr %t3
|
|
store ptr %t57, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t58 = load ptr, ptr %retval
|
|
ret ptr %t58
|
|
}
|
|
|
|
define ptr @fn_parse_system() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t15 = alloca ptr
|
|
%t18 = alloca i32
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 9)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3
|
|
store ptr @.str235, ptr %t8
|
|
br label %wcond0
|
|
wcond0:
|
|
%t9 = icmp ne i32 1, 0
|
|
br i1 %t9, label %wbody1, label %wend2
|
|
wbody1:
|
|
call void @fn_skipnl()
|
|
%t10 = call i32 @fn_is_op(ptr @.str236)
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %then3, label %ifend5
|
|
then3:
|
|
%t12 = load i32, ptr @g_pi
|
|
%t13 = add i32 %t12, 1
|
|
store i32 %t13, ptr @g_pi
|
|
%t14 = call ptr @fn_eat_id()
|
|
store ptr %t14, ptr %t15
|
|
%t16 = call i32 @fn_is_op(ptr @.str237)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %then6, label %ifend8
|
|
then6:
|
|
store i32 0, ptr %t18
|
|
br label %wcond9
|
|
wcond9:
|
|
%t19 = icmp ne i32 1, 0
|
|
br i1 %t19, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t20 = call i32 @fn_is_op(ptr @.str238)
|
|
%t21 = icmp ne i32 %t20, 0
|
|
br i1 %t21, label %then12, label %ifend14
|
|
then12:
|
|
%t22 = load i32, ptr %t18
|
|
%t23 = add i32 %t22, 1
|
|
store i32 %t23, ptr %t18
|
|
br label %ifend14
|
|
ifend14:
|
|
%t24 = call i32 @fn_is_op(ptr @.str239)
|
|
%t25 = icmp ne i32 %t24, 0
|
|
br i1 %t25, label %then15, label %ifend17
|
|
then15:
|
|
%t26 = load i32, ptr %t18
|
|
%t27 = sub i32 %t26, 1
|
|
store i32 %t27, ptr %t18
|
|
br label %ifend17
|
|
ifend17:
|
|
%t28 = load i32, ptr @g_pi
|
|
%t29 = add i32 %t28, 1
|
|
store i32 %t29, ptr @g_pi
|
|
%t30 = load i32, ptr %t18
|
|
%t31 = icmp eq i32 %t30, 0
|
|
%t32 = zext i1 %t31 to i32
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then18, label %ifend20
|
|
then18:
|
|
br label %wend11
|
|
ifend20:
|
|
br label %wcond9
|
|
wend11:
|
|
br label %ifend8
|
|
ifend8:
|
|
br label %wcond0
|
|
ifend5:
|
|
%t34 = call i32 @fn_is_id(ptr @.str240)
|
|
%t35 = icmp ne i32 %t34, 0
|
|
br i1 %t35, label %then21, label %ifend23
|
|
then21:
|
|
%t36 = load i32, ptr @g_pi
|
|
%t37 = add i32 %t36, 1
|
|
store i32 %t37, ptr @g_pi
|
|
%t38 = load ptr, ptr %t3
|
|
%t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 3
|
|
%t40 = call ptr @fn_eat_id()
|
|
store ptr %t40, ptr %t39
|
|
br label %wcond0
|
|
ifend23:
|
|
br label %wend2
|
|
wend2:
|
|
call void @fn_skipnl()
|
|
%t41 = load ptr, ptr %t3
|
|
%t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 4
|
|
%t43 = call ptr @fn_block()
|
|
store ptr %t43, ptr %t42
|
|
%t44 = load ptr, ptr %t3
|
|
store ptr %t44, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t45 = load ptr, ptr %retval
|
|
ret ptr %t45
|
|
}
|
|
|
|
define ptr @fn_parse_query_tail() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t11 = alloca ptr
|
|
%t40 = alloca ptr
|
|
call void @fn_eat_op(ptr @.str241)
|
|
%t0 = call ptr @fn_node(i32 7)
|
|
store ptr %t0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = call i32 @fn_is_op(ptr @.str242)
|
|
%t3 = icmp eq i32 %t2, 0
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t6 = call i32 @fn_is_op(ptr @.str243)
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %then3, label %else4
|
|
then3:
|
|
%t8 = load i32, ptr @g_pi
|
|
%t9 = add i32 %t8, 1
|
|
store i32 %t9, ptr @g_pi
|
|
%t10 = call ptr @fn_node(i32 33)
|
|
store ptr %t10, ptr %t11
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1
|
|
%t14 = call ptr @fn_eat_id()
|
|
store ptr %t14, ptr %t13
|
|
%t15 = load ptr, ptr %t11
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 2
|
|
store i32 1, ptr %t16
|
|
%t17 = load ptr, ptr %t1
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7
|
|
%t19 = load ptr, ptr %t18
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 2
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0
|
|
%t23 = load i32, ptr %t20
|
|
%t24 = load i32, ptr %t21
|
|
%t25 = icmp sge i32 %t23, %t24
|
|
br i1 %t25, label %grow6, label %put7
|
|
grow6:
|
|
%t26 = mul i32 %t24, 2
|
|
%t27 = icmp eq i32 %t24, 0
|
|
%t28 = select i1 %t27, i32 8, i32 %t26
|
|
%t29 = getelementptr ptr, ptr null, i32 1
|
|
%t30 = ptrtoint ptr %t29 to i64
|
|
%t31 = zext i32 %t28 to i64
|
|
%t32 = mul i64 %t31, %t30
|
|
%t33 = load ptr, ptr %t22
|
|
%t34 = call ptr @realloc(ptr %t33, i64 %t32)
|
|
store ptr %t34, ptr %t22
|
|
store i32 %t28, ptr %t21
|
|
br label %put7
|
|
put7:
|
|
%t35 = load ptr, ptr %t11
|
|
%t36 = load ptr, ptr %t22
|
|
%t37 = getelementptr inbounds ptr, ptr %t36, i32 %t23
|
|
store ptr %t35, ptr %t37
|
|
%t38 = add i32 %t23, 1
|
|
store i32 %t38, ptr %t20
|
|
call void @fn_eat_op(ptr @.str244)
|
|
br label %ifend5
|
|
else4:
|
|
%t39 = call ptr @fn_node(i32 33)
|
|
store ptr %t39, ptr %t40
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1
|
|
%t43 = call ptr @fn_eat_id()
|
|
store ptr %t43, ptr %t42
|
|
%t44 = load ptr, ptr %t40
|
|
%t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 2
|
|
store i32 0, ptr %t45
|
|
%t46 = load ptr, ptr %t1
|
|
%t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 7
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1
|
|
%t50 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 2
|
|
%t51 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 0
|
|
%t52 = load i32, ptr %t49
|
|
%t53 = load i32, ptr %t50
|
|
%t54 = icmp sge i32 %t52, %t53
|
|
br i1 %t54, label %grow8, label %put9
|
|
grow8:
|
|
%t55 = mul i32 %t53, 2
|
|
%t56 = icmp eq i32 %t53, 0
|
|
%t57 = select i1 %t56, i32 8, i32 %t55
|
|
%t58 = getelementptr ptr, ptr null, i32 1
|
|
%t59 = ptrtoint ptr %t58 to i64
|
|
%t60 = zext i32 %t57 to i64
|
|
%t61 = mul i64 %t60, %t59
|
|
%t62 = load ptr, ptr %t51
|
|
%t63 = call ptr @realloc(ptr %t62, i64 %t61)
|
|
store ptr %t63, ptr %t51
|
|
store i32 %t57, ptr %t50
|
|
br label %put9
|
|
put9:
|
|
%t64 = load ptr, ptr %t40
|
|
%t65 = load ptr, ptr %t51
|
|
%t66 = getelementptr inbounds ptr, ptr %t65, i32 %t52
|
|
store ptr %t64, ptr %t66
|
|
%t67 = add i32 %t52, 1
|
|
store i32 %t67, ptr %t49
|
|
br label %ifend5
|
|
ifend5:
|
|
%t68 = call i32 @fn_is_op(ptr @.str245)
|
|
%t69 = icmp ne i32 %t68, 0
|
|
br i1 %t69, label %then10, label %ifend12
|
|
then10:
|
|
%t70 = load i32, ptr @g_pi
|
|
%t71 = add i32 %t70, 1
|
|
store i32 %t71, ptr @g_pi
|
|
br label %ifend12
|
|
ifend12:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str246)
|
|
%t72 = call i32 @fn_is_id(ptr @.str247)
|
|
%t73 = icmp ne i32 %t72, 0
|
|
br i1 %t73, label %then13, label %ifend15
|
|
then13:
|
|
%t74 = load i32, ptr @g_pi
|
|
%t75 = add i32 %t74, 1
|
|
store i32 %t75, ptr @g_pi
|
|
%t76 = load ptr, ptr %t1
|
|
%t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 4
|
|
%t78 = call ptr @fn_expr()
|
|
store ptr %t78, ptr %t77
|
|
br label %ifend15
|
|
ifend15:
|
|
%t79 = load ptr, ptr %t1
|
|
store ptr %t79, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t80 = load ptr, ptr %retval
|
|
ret ptr %t80
|
|
}
|
|
|
|
define ptr @fn_parse_query_for() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t38 = alloca ptr
|
|
%t0 = call ptr @fn_node(i32 21)
|
|
store ptr %t0, ptr %t1
|
|
call void @fn_eat_op(ptr @.str248)
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = call i32 @fn_is_op(ptr @.str249)
|
|
%t3 = icmp eq i32 %t2, 0
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t6 = call ptr @fn_node(i32 33)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1
|
|
%t10 = call ptr @fn_eat_id()
|
|
store ptr %t10, ptr %t9
|
|
%t11 = load ptr, ptr %t1
|
|
%t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 7
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 2
|
|
%t16 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0
|
|
%t17 = load i32, ptr %t14
|
|
%t18 = load i32, ptr %t15
|
|
%t19 = icmp sge i32 %t17, %t18
|
|
br i1 %t19, label %grow3, label %put4
|
|
grow3:
|
|
%t20 = mul i32 %t18, 2
|
|
%t21 = icmp eq i32 %t18, 0
|
|
%t22 = select i1 %t21, i32 8, i32 %t20
|
|
%t23 = getelementptr ptr, ptr null, i32 1
|
|
%t24 = ptrtoint ptr %t23 to i64
|
|
%t25 = zext i32 %t22 to i64
|
|
%t26 = mul i64 %t25, %t24
|
|
%t27 = load ptr, ptr %t16
|
|
%t28 = call ptr @realloc(ptr %t27, i64 %t26)
|
|
store ptr %t28, ptr %t16
|
|
store i32 %t22, ptr %t15
|
|
br label %put4
|
|
put4:
|
|
%t29 = load ptr, ptr %t7
|
|
%t30 = load ptr, ptr %t16
|
|
%t31 = getelementptr inbounds ptr, ptr %t30, i32 %t17
|
|
store ptr %t29, ptr %t31
|
|
%t32 = add i32 %t17, 1
|
|
store i32 %t32, ptr %t14
|
|
%t33 = call i32 @fn_is_op(ptr @.str250)
|
|
%t34 = icmp ne i32 %t33, 0
|
|
br i1 %t34, label %then5, label %ifend7
|
|
then5:
|
|
%t35 = load i32, ptr @g_pi
|
|
%t36 = add i32 %t35, 1
|
|
store i32 %t36, ptr @g_pi
|
|
br label %ifend7
|
|
ifend7:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str251)
|
|
%t37 = call ptr @fn_eat_id()
|
|
store ptr %t37, ptr %t38
|
|
%t39 = call i32 @fn_is_id(ptr @.str252)
|
|
%t40 = icmp eq i32 %t39, 0
|
|
%t41 = zext i1 %t40 to i32
|
|
%t42 = icmp ne i32 %t41, 0
|
|
br i1 %t42, label %then8, label %ifend10
|
|
then8:
|
|
call void @fn_perr(ptr @.str253)
|
|
br label %ifend10
|
|
ifend10:
|
|
%t43 = load i32, ptr @g_pi
|
|
%t44 = add i32 %t43, 1
|
|
store i32 %t44, ptr @g_pi
|
|
%t45 = load ptr, ptr %t1
|
|
%t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 6
|
|
%t47 = call ptr @fn_parse_query_tail()
|
|
store ptr %t47, ptr %t46
|
|
%t48 = load ptr, ptr %t1
|
|
%t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 5
|
|
%t50 = load ptr, ptr %t1
|
|
%t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 6
|
|
%t52 = load ptr, ptr %t51
|
|
%t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 4
|
|
%t54 = load ptr, ptr %t53
|
|
store ptr %t54, ptr %t49
|
|
%t55 = load ptr, ptr %t1
|
|
%t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 4
|
|
%t57 = call ptr @fn_block()
|
|
store ptr %t57, ptr %t56
|
|
%t58 = load ptr, ptr %t1
|
|
store ptr %t58, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t59 = load ptr, ptr %retval
|
|
ret ptr %t59
|
|
}
|
|
|
|
define ptr @fn_mk_and(ptr %arg_a, ptr %arg_b) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t8 = alloca ptr
|
|
store ptr %arg_a, ptr %t0
|
|
store ptr %arg_b, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = icmp eq ptr %t2, null
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load ptr, ptr %t1
|
|
store ptr %t6, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t7 = call ptr @fn_node(i32 37)
|
|
store ptr %t7, ptr %t8
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 1
|
|
store ptr @.str254, ptr %t10
|
|
%t11 = load ptr, ptr %t8
|
|
%t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 4
|
|
%t13 = load ptr, ptr %t0
|
|
store ptr %t13, ptr %t12
|
|
%t14 = load ptr, ptr %t8
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 5
|
|
%t16 = load ptr, ptr %t1
|
|
store ptr %t16, ptr %t15
|
|
%t17 = load ptr, ptr %t8
|
|
store ptr %t17, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t18 = load ptr, ptr %retval
|
|
ret ptr %t18
|
|
}
|
|
|
|
define ptr @fn_qualify_fields(ptr %arg_e, ptr %arg_base) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t14 = alloca ptr
|
|
%t31 = alloca ptr
|
|
%t59 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
store ptr %arg_base, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = icmp eq ptr %t2, null
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load ptr, ptr %t0
|
|
store ptr %t6, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0
|
|
%t9 = load i32, ptr %t8
|
|
%t10 = icmp eq i32 %t9, 33
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then3, label %ifend5
|
|
then3:
|
|
%t13 = call ptr @fn_node(i32 35)
|
|
store ptr %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4
|
|
%t17 = load ptr, ptr %t1
|
|
store ptr %t17, ptr %t16
|
|
%t18 = load ptr, ptr %t14
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1
|
|
%t20 = load ptr, ptr %t0
|
|
%t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 1
|
|
%t22 = load ptr, ptr %t21
|
|
store ptr %t22, ptr %t19
|
|
%t23 = load ptr, ptr %t14
|
|
store ptr %t23, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t24 = load ptr, ptr %t0
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 0
|
|
%t26 = load i32, ptr %t25
|
|
%t27 = icmp eq i32 %t26, 37
|
|
%t28 = zext i1 %t27 to i32
|
|
%t29 = icmp ne i32 %t28, 0
|
|
br i1 %t29, label %then6, label %ifend8
|
|
then6:
|
|
%t30 = call ptr @fn_node(i32 37)
|
|
store ptr %t30, ptr %t31
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1
|
|
%t34 = load ptr, ptr %t0
|
|
%t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1
|
|
%t36 = load ptr, ptr %t35
|
|
store ptr %t36, ptr %t33
|
|
%t37 = load ptr, ptr %t31
|
|
%t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 4
|
|
%t39 = load ptr, ptr %t0
|
|
%t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 4
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = load ptr, ptr %t1
|
|
%t43 = call ptr @fn_qualify_fields(ptr %t41, ptr %t42)
|
|
store ptr %t43, ptr %t38
|
|
%t44 = load ptr, ptr %t31
|
|
%t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 5
|
|
%t46 = load ptr, ptr %t0
|
|
%t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 5
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = load ptr, ptr %t1
|
|
%t50 = call ptr @fn_qualify_fields(ptr %t48, ptr %t49)
|
|
store ptr %t50, ptr %t45
|
|
%t51 = load ptr, ptr %t31
|
|
store ptr %t51, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t52 = load ptr, ptr %t0
|
|
%t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 0
|
|
%t54 = load i32, ptr %t53
|
|
%t55 = icmp eq i32 %t54, 38
|
|
%t56 = zext i1 %t55 to i32
|
|
%t57 = icmp ne i32 %t56, 0
|
|
br i1 %t57, label %then9, label %ifend11
|
|
then9:
|
|
%t58 = call ptr @fn_node(i32 38)
|
|
store ptr %t58, ptr %t59
|
|
%t60 = load ptr, ptr %t59
|
|
%t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 1
|
|
%t62 = load ptr, ptr %t0
|
|
%t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1
|
|
%t64 = load ptr, ptr %t63
|
|
store ptr %t64, ptr %t61
|
|
%t65 = load ptr, ptr %t59
|
|
%t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 4
|
|
%t67 = load ptr, ptr %t0
|
|
%t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 4
|
|
%t69 = load ptr, ptr %t68
|
|
%t70 = load ptr, ptr %t1
|
|
%t71 = call ptr @fn_qualify_fields(ptr %t69, ptr %t70)
|
|
store ptr %t71, ptr %t66
|
|
%t72 = load ptr, ptr %t59
|
|
store ptr %t72, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t73 = load ptr, ptr %t0
|
|
store ptr %t73, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t74 = load ptr, ptr %retval
|
|
ret ptr %t74
|
|
}
|
|
|
|
define ptr @fn_parse_queries_anno() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t12 = alloca ptr
|
|
%t21 = alloca ptr
|
|
%t23 = alloca ptr
|
|
%t50 = alloca ptr
|
|
%t83 = alloca ptr
|
|
%t85 = alloca ptr
|
|
%t102 = alloca ptr
|
|
%t104 = alloca ptr
|
|
call void @fn_eat_op(ptr @.str255)
|
|
%t0 = call ptr @fn_node(i32 21)
|
|
store ptr %t0, ptr %t1
|
|
%t2 = call ptr @fn_node(i32 7)
|
|
store ptr %t2, ptr %t3
|
|
store ptr null, ptr %t4
|
|
br label %wcond0
|
|
wcond0:
|
|
%t5 = call i32 @fn_is_op(ptr @.str256)
|
|
%t6 = icmp eq i32 %t5, 0
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
call void @fn_skipnl()
|
|
%t9 = call i32 @fn_is_op(ptr @.str257)
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %then3, label %ifend5
|
|
then3:
|
|
br label %wend2
|
|
ifend5:
|
|
%t11 = call ptr @fn_eat_id()
|
|
store ptr %t11, ptr %t12
|
|
call void @fn_eat_op(ptr @.str258)
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str259)
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then6, label %else7
|
|
then6:
|
|
call void @fn_eat_op(ptr @.str260)
|
|
call void @fn_skipnl()
|
|
br label %wcond9
|
|
wcond9:
|
|
%t16 = call i32 @fn_is_op(ptr @.str261)
|
|
%t17 = icmp eq i32 %t16, 0
|
|
%t18 = zext i1 %t17 to i32
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t20 = call ptr @fn_eat_id()
|
|
store ptr %t20, ptr %t21
|
|
%t22 = call ptr @fn_node(i32 33)
|
|
store ptr %t22, ptr %t23
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1
|
|
%t26 = load ptr, ptr %t21
|
|
store ptr %t26, ptr %t25
|
|
%t27 = load ptr, ptr %t1
|
|
%t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 7
|
|
%t29 = load ptr, ptr %t28
|
|
%t30 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 1
|
|
%t31 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 2
|
|
%t32 = getelementptr inbounds %LSlice, ptr %t29, i32 0, i32 0
|
|
%t33 = load i32, ptr %t30
|
|
%t34 = load i32, ptr %t31
|
|
%t35 = icmp sge i32 %t33, %t34
|
|
br i1 %t35, label %grow12, label %put13
|
|
grow12:
|
|
%t36 = mul i32 %t34, 2
|
|
%t37 = icmp eq i32 %t34, 0
|
|
%t38 = select i1 %t37, i32 8, i32 %t36
|
|
%t39 = getelementptr ptr, ptr null, i32 1
|
|
%t40 = ptrtoint ptr %t39 to i64
|
|
%t41 = zext i32 %t38 to i64
|
|
%t42 = mul i64 %t41, %t40
|
|
%t43 = load ptr, ptr %t32
|
|
%t44 = call ptr @realloc(ptr %t43, i64 %t42)
|
|
store ptr %t44, ptr %t32
|
|
store i32 %t38, ptr %t31
|
|
br label %put13
|
|
put13:
|
|
%t45 = load ptr, ptr %t23
|
|
%t46 = load ptr, ptr %t32
|
|
%t47 = getelementptr inbounds ptr, ptr %t46, i32 %t33
|
|
store ptr %t45, ptr %t47
|
|
%t48 = add i32 %t33, 1
|
|
store i32 %t48, ptr %t30
|
|
%t49 = call ptr @fn_node(i32 33)
|
|
store ptr %t49, ptr %t50
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1
|
|
%t53 = load ptr, ptr %t21
|
|
store ptr %t53, ptr %t52
|
|
%t54 = load ptr, ptr %t50
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 2
|
|
store i32 0, ptr %t55
|
|
%t56 = load ptr, ptr %t3
|
|
%t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 7
|
|
%t58 = load ptr, ptr %t57
|
|
%t59 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1
|
|
%t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 2
|
|
%t61 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0
|
|
%t62 = load i32, ptr %t59
|
|
%t63 = load i32, ptr %t60
|
|
%t64 = icmp sge i32 %t62, %t63
|
|
br i1 %t64, label %grow14, label %put15
|
|
grow14:
|
|
%t65 = mul i32 %t63, 2
|
|
%t66 = icmp eq i32 %t63, 0
|
|
%t67 = select i1 %t66, i32 8, i32 %t65
|
|
%t68 = getelementptr ptr, ptr null, i32 1
|
|
%t69 = ptrtoint ptr %t68 to i64
|
|
%t70 = zext i32 %t67 to i64
|
|
%t71 = mul i64 %t70, %t69
|
|
%t72 = load ptr, ptr %t61
|
|
%t73 = call ptr @realloc(ptr %t72, i64 %t71)
|
|
store ptr %t73, ptr %t61
|
|
store i32 %t67, ptr %t60
|
|
br label %put15
|
|
put15:
|
|
%t74 = load ptr, ptr %t50
|
|
%t75 = load ptr, ptr %t61
|
|
%t76 = getelementptr inbounds ptr, ptr %t75, i32 %t62
|
|
store ptr %t74, ptr %t76
|
|
%t77 = add i32 %t62, 1
|
|
store i32 %t77, ptr %t59
|
|
%t78 = call i32 @fn_is_op(ptr @.str262)
|
|
%t79 = icmp ne i32 %t78, 0
|
|
br i1 %t79, label %then16, label %ifend18
|
|
then16:
|
|
%t80 = load i32, ptr @g_pi
|
|
%t81 = add i32 %t80, 1
|
|
store i32 %t81, ptr @g_pi
|
|
%t82 = call ptr @fn_expr()
|
|
store ptr %t82, ptr %t83
|
|
call void @fn_eat_op(ptr @.str263)
|
|
%t84 = call ptr @fn_node(i32 33)
|
|
store ptr %t84, ptr %t85
|
|
%t86 = load ptr, ptr %t85
|
|
%t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 1
|
|
%t88 = load ptr, ptr %t21
|
|
store ptr %t88, ptr %t87
|
|
%t89 = load ptr, ptr %t4
|
|
%t90 = load ptr, ptr %t83
|
|
%t91 = load ptr, ptr %t85
|
|
%t92 = call ptr @fn_qualify_fields(ptr %t90, ptr %t91)
|
|
%t93 = call ptr @fn_mk_and(ptr %t89, ptr %t92)
|
|
store ptr %t93, ptr %t4
|
|
br label %ifend18
|
|
ifend18:
|
|
%t94 = call i32 @fn_is_op(ptr @.str264)
|
|
%t95 = icmp ne i32 %t94, 0
|
|
br i1 %t95, label %then19, label %ifend21
|
|
then19:
|
|
%t96 = load i32, ptr @g_pi
|
|
%t97 = add i32 %t96, 1
|
|
store i32 %t97, ptr @g_pi
|
|
br label %ifend21
|
|
ifend21:
|
|
call void @fn_skipnl()
|
|
br label %wcond9
|
|
wend11:
|
|
call void @fn_eat_op(ptr @.str265)
|
|
br label %ifend8
|
|
else7:
|
|
%t98 = load ptr, ptr %t12
|
|
%t99 = call i32 @fn_str_eq(ptr %t98, ptr @.str266)
|
|
%t100 = icmp ne i32 %t99, 0
|
|
br i1 %t100, label %then22, label %else23
|
|
then22:
|
|
%t101 = call ptr @fn_eat_id()
|
|
store ptr %t101, ptr %t102
|
|
%t103 = call ptr @fn_node(i32 33)
|
|
store ptr %t103, ptr %t104
|
|
%t105 = load ptr, ptr %t104
|
|
%t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 1
|
|
%t107 = load ptr, ptr %t102
|
|
store ptr %t107, ptr %t106
|
|
%t108 = load ptr, ptr %t104
|
|
%t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 2
|
|
store i32 1, ptr %t109
|
|
%t110 = load ptr, ptr %t3
|
|
%t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 7
|
|
%t112 = load ptr, ptr %t111
|
|
%t113 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 1
|
|
%t114 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 2
|
|
%t115 = getelementptr inbounds %LSlice, ptr %t112, i32 0, i32 0
|
|
%t116 = load i32, ptr %t113
|
|
%t117 = load i32, ptr %t114
|
|
%t118 = icmp sge i32 %t116, %t117
|
|
br i1 %t118, label %grow25, label %put26
|
|
grow25:
|
|
%t119 = mul i32 %t117, 2
|
|
%t120 = icmp eq i32 %t117, 0
|
|
%t121 = select i1 %t120, i32 8, i32 %t119
|
|
%t122 = getelementptr ptr, ptr null, i32 1
|
|
%t123 = ptrtoint ptr %t122 to i64
|
|
%t124 = zext i32 %t121 to i64
|
|
%t125 = mul i64 %t124, %t123
|
|
%t126 = load ptr, ptr %t115
|
|
%t127 = call ptr @realloc(ptr %t126, i64 %t125)
|
|
store ptr %t127, ptr %t115
|
|
store i32 %t121, ptr %t114
|
|
br label %put26
|
|
put26:
|
|
%t128 = load ptr, ptr %t104
|
|
%t129 = load ptr, ptr %t115
|
|
%t130 = getelementptr inbounds ptr, ptr %t129, i32 %t116
|
|
store ptr %t128, ptr %t130
|
|
%t131 = add i32 %t116, 1
|
|
store i32 %t131, ptr %t113
|
|
br label %ifend24
|
|
else23:
|
|
%t132 = call ptr @fn_expr()
|
|
br label %ifend24
|
|
ifend24:
|
|
br label %ifend8
|
|
ifend8:
|
|
%t133 = call i32 @fn_is_op(ptr @.str267)
|
|
%t134 = icmp ne i32 %t133, 0
|
|
br i1 %t134, label %then27, label %ifend29
|
|
then27:
|
|
%t135 = load i32, ptr @g_pi
|
|
%t136 = add i32 %t135, 1
|
|
store i32 %t136, ptr @g_pi
|
|
br label %ifend29
|
|
ifend29:
|
|
call void @fn_skipnl()
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str268)
|
|
%t137 = load ptr, ptr %t1
|
|
%t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 6
|
|
%t139 = load ptr, ptr %t3
|
|
store ptr %t139, ptr %t138
|
|
%t140 = load ptr, ptr %t1
|
|
%t141 = getelementptr inbounds %Cmp_Node, ptr %t140, i32 0, i32 5
|
|
%t142 = load ptr, ptr %t4
|
|
store ptr %t142, ptr %t141
|
|
%t143 = load ptr, ptr %t1
|
|
store ptr %t143, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t144 = load ptr, ptr %retval
|
|
ret ptr %t144
|
|
}
|
|
|
|
define ptr @fn_parse_spawn() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t11 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 22)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str269)
|
|
br label %wcond0
|
|
wcond0:
|
|
%t7 = icmp ne i32 1, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
call void @fn_skipnl()
|
|
%t8 = call i32 @fn_is_op(ptr @.str270)
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then3, label %ifend5
|
|
then3:
|
|
br label %wend2
|
|
ifend5:
|
|
%t10 = call ptr @fn_node(i32 42)
|
|
store ptr %t10, ptr %t11
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1
|
|
%t14 = call ptr @fn_eat_id()
|
|
store ptr %t14, ptr %t13
|
|
%t15 = load ptr, ptr %t11
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4
|
|
%t17 = call ptr @fn_record()
|
|
store ptr %t17, ptr %t16
|
|
%t18 = load ptr, ptr %t3
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t24 = load i32, ptr %t21
|
|
%t25 = load i32, ptr %t22
|
|
%t26 = icmp sge i32 %t24, %t25
|
|
br i1 %t26, label %grow6, label %put7
|
|
grow6:
|
|
%t27 = mul i32 %t25, 2
|
|
%t28 = icmp eq i32 %t25, 0
|
|
%t29 = select i1 %t28, i32 8, i32 %t27
|
|
%t30 = getelementptr ptr, ptr null, i32 1
|
|
%t31 = ptrtoint ptr %t30 to i64
|
|
%t32 = zext i32 %t29 to i64
|
|
%t33 = mul i64 %t32, %t31
|
|
%t34 = load ptr, ptr %t23
|
|
%t35 = call ptr @realloc(ptr %t34, i64 %t33)
|
|
store ptr %t35, ptr %t23
|
|
store i32 %t29, ptr %t22
|
|
br label %put7
|
|
put7:
|
|
%t36 = load ptr, ptr %t11
|
|
%t37 = load ptr, ptr %t23
|
|
%t38 = getelementptr inbounds ptr, ptr %t37, i32 %t24
|
|
store ptr %t36, ptr %t38
|
|
%t39 = add i32 %t24, 1
|
|
store i32 %t39, ptr %t21
|
|
%t40 = call i32 @fn_is_op(ptr @.str271)
|
|
%t41 = icmp ne i32 %t40, 0
|
|
br i1 %t41, label %then8, label %ifend10
|
|
then8:
|
|
%t42 = load i32, ptr @g_pi
|
|
%t43 = add i32 %t42, 1
|
|
store i32 %t43, ptr @g_pi
|
|
br label %ifend10
|
|
ifend10:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str272)
|
|
%t44 = load ptr, ptr %t3
|
|
store ptr %t44, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t45 = load ptr, ptr %retval
|
|
ret ptr %t45
|
|
}
|
|
|
|
define void @fn_parse_scene() {
|
|
entry:
|
|
%t3 = alloca ptr
|
|
%t10 = alloca i32
|
|
%t11 = alloca i32
|
|
%t49 = alloca ptr
|
|
%t67 = alloca ptr
|
|
%t79 = alloca ptr
|
|
%t91 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 45)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 2
|
|
%t9 = load i32, ptr @g_g_scene_count
|
|
store i32 %t9, ptr %t8
|
|
store i32 0, ptr %t10
|
|
br label %wcond0
|
|
wcond0:
|
|
%t12 = call i32 @fn_is_id(ptr @.str273)
|
|
%t13 = icmp ne i32 %t12, 0
|
|
%t14 = zext i1 %t13 to i32
|
|
store i32 %t14, ptr %t11
|
|
br i1 %t13, label %scend4, label %sc3
|
|
sc3:
|
|
%t15 = call i32 @fn_is_id(ptr @.str274)
|
|
%t16 = icmp ne i32 %t15, 0
|
|
%t17 = zext i1 %t16 to i32
|
|
store i32 %t17, ptr %t11
|
|
br label %scend4
|
|
scend4:
|
|
%t18 = load i32, ptr %t11
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t20 = call i32 @fn_is_id(ptr @.str275)
|
|
%t21 = icmp ne i32 %t20, 0
|
|
br i1 %t21, label %then5, label %else6
|
|
then5:
|
|
%t22 = load i32, ptr @g_pi
|
|
%t23 = add i32 %t22, 1
|
|
store i32 %t23, ptr @g_pi
|
|
%t24 = load i32, ptr @g_g_scene_count
|
|
store i32 %t24, ptr @g_g_start_scene
|
|
br label %ifend7
|
|
else6:
|
|
%t25 = load i32, ptr @g_pi
|
|
%t26 = add i32 %t25, 1
|
|
store i32 %t26, ptr @g_pi
|
|
store i32 1, ptr %t10
|
|
br label %ifend7
|
|
ifend7:
|
|
br label %wcond0
|
|
wend2:
|
|
%t27 = load i32, ptr @g_g_scene_count
|
|
%t28 = add i32 %t27, 1
|
|
store i32 %t28, ptr @g_g_scene_count
|
|
%t29 = load i32, ptr %t10
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then8, label %ifend10
|
|
then8:
|
|
%t31 = load ptr, ptr %t3
|
|
%t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1
|
|
%t33 = load ptr, ptr %t32
|
|
%t34 = call ptr @fn_str_concat(ptr @.str276, ptr %t33)
|
|
%t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str277)
|
|
call void @fn_ensure_event_empty(ptr %t35)
|
|
%t36 = load ptr, ptr %t3
|
|
%t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 1
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = call ptr @fn_str_concat(ptr @.str278, ptr %t38)
|
|
%t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str279)
|
|
call void @fn_ensure_event_empty(ptr %t40)
|
|
br label %ifend10
|
|
ifend10:
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str280)
|
|
br label %wcond11
|
|
wcond11:
|
|
%t41 = icmp ne i32 1, 0
|
|
br i1 %t41, label %wbody12, label %wend13
|
|
wbody12:
|
|
call void @fn_skipnl()
|
|
%t42 = call i32 @fn_is_op(ptr @.str281)
|
|
%t43 = icmp ne i32 %t42, 0
|
|
br i1 %t43, label %then14, label %ifend16
|
|
then14:
|
|
br label %wend13
|
|
ifend16:
|
|
%t44 = call i32 @fn_is_id(ptr @.str282)
|
|
%t45 = icmp ne i32 %t44, 0
|
|
br i1 %t45, label %then17, label %ifend19
|
|
then17:
|
|
%t46 = load i32, ptr @g_pi
|
|
%t47 = add i32 %t46, 1
|
|
store i32 %t47, ptr @g_pi
|
|
%t48 = call ptr @fn_eat_id()
|
|
store ptr %t48, ptr %t49
|
|
call void @fn_skipnl()
|
|
%t50 = load ptr, ptr %t49
|
|
%t51 = call i32 @fn_str_eq(ptr %t50, ptr @.str283)
|
|
%t52 = icmp ne i32 %t51, 0
|
|
br i1 %t52, label %then20, label %else21
|
|
then20:
|
|
%t53 = load ptr, ptr %t3
|
|
%t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 4
|
|
%t55 = call ptr @fn_block()
|
|
store ptr %t55, ptr %t54
|
|
br label %ifend22
|
|
else21:
|
|
%t56 = load ptr, ptr %t49
|
|
%t57 = call i32 @fn_str_eq(ptr %t56, ptr @.str284)
|
|
%t58 = icmp ne i32 %t57, 0
|
|
br i1 %t58, label %then23, label %else24
|
|
then23:
|
|
%t59 = load ptr, ptr %t3
|
|
%t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 5
|
|
%t61 = call ptr @fn_block()
|
|
store ptr %t61, ptr %t60
|
|
br label %ifend25
|
|
else24:
|
|
call void @fn_perr(ptr @.str285)
|
|
br label %ifend25
|
|
ifend25:
|
|
br label %ifend22
|
|
ifend22:
|
|
br label %wcond11
|
|
ifend19:
|
|
%t62 = call i32 @fn_is_id(ptr @.str286)
|
|
%t63 = icmp ne i32 %t62, 0
|
|
br i1 %t63, label %then26, label %ifend28
|
|
then26:
|
|
%t64 = load i32, ptr @g_pi
|
|
%t65 = add i32 %t64, 1
|
|
store i32 %t65, ptr @g_pi
|
|
%t66 = call ptr @fn_eat_id()
|
|
store ptr %t66, ptr %t67
|
|
%t68 = call i32 @fn_is_id(ptr @.str287)
|
|
%t69 = icmp ne i32 %t68, 0
|
|
br i1 %t69, label %then29, label %ifend31
|
|
then29:
|
|
%t70 = load i32, ptr @g_pi
|
|
%t71 = add i32 %t70, 1
|
|
store i32 %t71, ptr @g_pi
|
|
%t72 = load ptr, ptr %t67
|
|
%t73 = call ptr @fn_str_concat(ptr @.str288, ptr %t72)
|
|
%t74 = call ptr @fn_str_concat(ptr %t73, ptr @.str289)
|
|
call void @fn_ensure_event_empty(ptr %t74)
|
|
%t75 = load ptr, ptr %t67
|
|
%t76 = call ptr @fn_str_concat(ptr @.str290, ptr %t75)
|
|
%t77 = call ptr @fn_str_concat(ptr %t76, ptr @.str291)
|
|
call void @fn_ensure_event_empty(ptr %t77)
|
|
br label %ifend31
|
|
ifend31:
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str292)
|
|
%t78 = call ptr @fn_node(i32 33)
|
|
store ptr %t78, ptr %t79
|
|
%t80 = load ptr, ptr %t79
|
|
%t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 1
|
|
%t82 = load ptr, ptr %t67
|
|
store ptr %t82, ptr %t81
|
|
br label %wcond32
|
|
wcond32:
|
|
%t83 = icmp ne i32 1, 0
|
|
br i1 %t83, label %wbody33, label %wend34
|
|
wbody33:
|
|
call void @fn_skipnl()
|
|
%t84 = call i32 @fn_is_op(ptr @.str293)
|
|
%t85 = icmp ne i32 %t84, 0
|
|
br i1 %t85, label %then35, label %ifend37
|
|
then35:
|
|
br label %wend34
|
|
ifend37:
|
|
%t86 = call i32 @fn_is_id(ptr @.str294)
|
|
%t87 = icmp eq i32 %t86, 0
|
|
%t88 = zext i1 %t87 to i32
|
|
%t89 = icmp ne i32 %t88, 0
|
|
br i1 %t89, label %then38, label %ifend40
|
|
then38:
|
|
call void @fn_perr(ptr @.str295)
|
|
br label %ifend40
|
|
ifend40:
|
|
%t90 = call ptr @fn_parse_system()
|
|
store ptr %t90, ptr %t91
|
|
%t92 = load ptr, ptr %t91
|
|
%t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 6
|
|
%t94 = load ptr, ptr %t3
|
|
store ptr %t94, ptr %t93
|
|
%t95 = load ptr, ptr %t91
|
|
%t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 5
|
|
%t97 = load ptr, ptr %t79
|
|
store ptr %t97, ptr %t96
|
|
%t98 = load ptr, ptr @g_prog
|
|
%t99 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 1
|
|
%t100 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 2
|
|
%t101 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0
|
|
%t102 = load i32, ptr %t99
|
|
%t103 = load i32, ptr %t100
|
|
%t104 = icmp sge i32 %t102, %t103
|
|
br i1 %t104, label %grow41, label %put42
|
|
grow41:
|
|
%t105 = mul i32 %t103, 2
|
|
%t106 = icmp eq i32 %t103, 0
|
|
%t107 = select i1 %t106, i32 8, i32 %t105
|
|
%t108 = getelementptr ptr, ptr null, i32 1
|
|
%t109 = ptrtoint ptr %t108 to i64
|
|
%t110 = zext i32 %t107 to i64
|
|
%t111 = mul i64 %t110, %t109
|
|
%t112 = load ptr, ptr %t101
|
|
%t113 = call ptr @realloc(ptr %t112, i64 %t111)
|
|
store ptr %t113, ptr %t101
|
|
store i32 %t107, ptr %t100
|
|
br label %put42
|
|
put42:
|
|
%t114 = load ptr, ptr %t91
|
|
%t115 = load ptr, ptr %t101
|
|
%t116 = getelementptr inbounds ptr, ptr %t115, i32 %t102
|
|
store ptr %t114, ptr %t116
|
|
%t117 = add i32 %t102, 1
|
|
store i32 %t117, ptr %t99
|
|
call void @fn_skipnl()
|
|
br label %wcond32
|
|
wend34:
|
|
call void @fn_eat_op(ptr @.str296)
|
|
br label %wcond11
|
|
ifend28:
|
|
call void @fn_perr(ptr @.str297)
|
|
br label %wcond11
|
|
wend13:
|
|
call void @fn_eat_op(ptr @.str298)
|
|
%t118 = load ptr, ptr @g_g_scenes
|
|
%t119 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 1
|
|
%t120 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 2
|
|
%t121 = getelementptr inbounds %LSlice, ptr %t118, i32 0, i32 0
|
|
%t122 = load i32, ptr %t119
|
|
%t123 = load i32, ptr %t120
|
|
%t124 = icmp sge i32 %t122, %t123
|
|
br i1 %t124, label %grow43, label %put44
|
|
grow43:
|
|
%t125 = mul i32 %t123, 2
|
|
%t126 = icmp eq i32 %t123, 0
|
|
%t127 = select i1 %t126, i32 8, i32 %t125
|
|
%t128 = getelementptr ptr, ptr null, i32 1
|
|
%t129 = ptrtoint ptr %t128 to i64
|
|
%t130 = zext i32 %t127 to i64
|
|
%t131 = mul i64 %t130, %t129
|
|
%t132 = load ptr, ptr %t121
|
|
%t133 = call ptr @realloc(ptr %t132, i64 %t131)
|
|
store ptr %t133, ptr %t121
|
|
store i32 %t127, ptr %t120
|
|
br label %put44
|
|
put44:
|
|
%t134 = load ptr, ptr %t3
|
|
%t135 = load ptr, ptr %t121
|
|
%t136 = getelementptr inbounds ptr, ptr %t135, i32 %t122
|
|
store ptr %t134, ptr %t136
|
|
%t137 = add i32 %t122, 1
|
|
store i32 %t137, ptr %t119
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_parse_enum() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t11 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 27)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str299)
|
|
br label %wcond0
|
|
wcond0:
|
|
%t7 = icmp ne i32 1, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
call void @fn_skipnl()
|
|
%t8 = call i32 @fn_is_op(ptr @.str300)
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then3, label %ifend5
|
|
then3:
|
|
br label %wend2
|
|
ifend5:
|
|
%t10 = call ptr @fn_node(i32 33)
|
|
store ptr %t10, ptr %t11
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1
|
|
%t14 = call ptr @fn_eat_id()
|
|
store ptr %t14, ptr %t13
|
|
%t15 = load ptr, ptr %t3
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 7
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 2
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0
|
|
%t21 = load i32, ptr %t18
|
|
%t22 = load i32, ptr %t19
|
|
%t23 = icmp sge i32 %t21, %t22
|
|
br i1 %t23, label %grow6, label %put7
|
|
grow6:
|
|
%t24 = mul i32 %t22, 2
|
|
%t25 = icmp eq i32 %t22, 0
|
|
%t26 = select i1 %t25, i32 8, i32 %t24
|
|
%t27 = getelementptr ptr, ptr null, i32 1
|
|
%t28 = ptrtoint ptr %t27 to i64
|
|
%t29 = zext i32 %t26 to i64
|
|
%t30 = mul i64 %t29, %t28
|
|
%t31 = load ptr, ptr %t20
|
|
%t32 = call ptr @realloc(ptr %t31, i64 %t30)
|
|
store ptr %t32, ptr %t20
|
|
store i32 %t26, ptr %t19
|
|
br label %put7
|
|
put7:
|
|
%t33 = load ptr, ptr %t11
|
|
%t34 = load ptr, ptr %t20
|
|
%t35 = getelementptr inbounds ptr, ptr %t34, i32 %t21
|
|
store ptr %t33, ptr %t35
|
|
%t36 = add i32 %t21, 1
|
|
store i32 %t36, ptr %t18
|
|
%t37 = call i32 @fn_is_op(ptr @.str301)
|
|
%t38 = icmp ne i32 %t37, 0
|
|
br i1 %t38, label %then8, label %ifend10
|
|
then8:
|
|
%t39 = load i32, ptr @g_pi
|
|
%t40 = add i32 %t39, 1
|
|
store i32 %t40, ptr @g_pi
|
|
br label %ifend10
|
|
ifend10:
|
|
call void @fn_skipnl()
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str302)
|
|
%t41 = load ptr, ptr %t3
|
|
store ptr %t41, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t42 = load ptr, ptr %retval
|
|
ret ptr %t42
|
|
}
|
|
|
|
define ptr @fn_parse_archetype() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t11 = alloca ptr
|
|
%t17 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 10)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str303)
|
|
br label %wcond0
|
|
wcond0:
|
|
%t7 = icmp ne i32 1, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
call void @fn_skipnl()
|
|
%t8 = call i32 @fn_is_op(ptr @.str304)
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then3, label %ifend5
|
|
then3:
|
|
br label %wend2
|
|
ifend5:
|
|
%t10 = call ptr @fn_node(i32 33)
|
|
store ptr %t10, ptr %t11
|
|
%t12 = call i32 @fn_is_op(ptr @.str305)
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %then6, label %ifend8
|
|
then6:
|
|
%t14 = load i32, ptr @g_pi
|
|
%t15 = add i32 %t14, 1
|
|
store i32 %t15, ptr @g_pi
|
|
%t16 = call ptr @fn_eat_id()
|
|
store ptr %t16, ptr %t17
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = call i32 @fn_str_eq(ptr %t18, ptr @.str306)
|
|
%t20 = icmp ne i32 %t19, 0
|
|
br i1 %t20, label %then9, label %ifend11
|
|
then9:
|
|
%t21 = load ptr, ptr %t11
|
|
%t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 2
|
|
store i32 1, ptr %t22
|
|
br label %ifend11
|
|
ifend11:
|
|
call void @fn_skipnl()
|
|
br label %ifend8
|
|
ifend8:
|
|
%t23 = load ptr, ptr %t11
|
|
%t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1
|
|
%t25 = call ptr @fn_eat_id()
|
|
store ptr %t25, ptr %t24
|
|
%t26 = load ptr, ptr %t3
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 7
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1
|
|
%t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 2
|
|
%t31 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0
|
|
%t32 = load i32, ptr %t29
|
|
%t33 = load i32, ptr %t30
|
|
%t34 = icmp sge i32 %t32, %t33
|
|
br i1 %t34, label %grow12, label %put13
|
|
grow12:
|
|
%t35 = mul i32 %t33, 2
|
|
%t36 = icmp eq i32 %t33, 0
|
|
%t37 = select i1 %t36, i32 8, i32 %t35
|
|
%t38 = getelementptr ptr, ptr null, i32 1
|
|
%t39 = ptrtoint ptr %t38 to i64
|
|
%t40 = zext i32 %t37 to i64
|
|
%t41 = mul i64 %t40, %t39
|
|
%t42 = load ptr, ptr %t31
|
|
%t43 = call ptr @realloc(ptr %t42, i64 %t41)
|
|
store ptr %t43, ptr %t31
|
|
store i32 %t37, ptr %t30
|
|
br label %put13
|
|
put13:
|
|
%t44 = load ptr, ptr %t11
|
|
%t45 = load ptr, ptr %t31
|
|
%t46 = getelementptr inbounds ptr, ptr %t45, i32 %t32
|
|
store ptr %t44, ptr %t46
|
|
%t47 = add i32 %t32, 1
|
|
store i32 %t47, ptr %t29
|
|
%t48 = call i32 @fn_is_op(ptr @.str307)
|
|
%t49 = icmp ne i32 %t48, 0
|
|
br i1 %t49, label %then14, label %ifend16
|
|
then14:
|
|
%t50 = load i32, ptr @g_pi
|
|
%t51 = add i32 %t50, 1
|
|
store i32 %t51, ptr @g_pi
|
|
br label %ifend16
|
|
ifend16:
|
|
call void @fn_skipnl()
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str308)
|
|
%t52 = load ptr, ptr %t3
|
|
store ptr %t52, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t53 = load ptr, ptr %retval
|
|
ret ptr %t53
|
|
}
|
|
|
|
define ptr @fn_parse_extern() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t14 = alloca ptr
|
|
%t62 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_eat_id()
|
|
store ptr %t2, ptr %t3
|
|
%t4 = call ptr @fn_node(i32 11)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1
|
|
%t8 = call ptr @fn_eat_id()
|
|
store ptr %t8, ptr %t7
|
|
call void @fn_eat_op(ptr @.str309)
|
|
br label %wcond0
|
|
wcond0:
|
|
%t9 = call i32 @fn_is_op(ptr @.str310)
|
|
%t10 = icmp eq i32 %t9, 0
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t13 = call ptr @fn_node(i32 5)
|
|
store ptr %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1
|
|
%t17 = call ptr @fn_eat_id()
|
|
store ptr %t17, ptr %t16
|
|
call void @fn_eat_op(ptr @.str311)
|
|
%t18 = load ptr, ptr %t14
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 3
|
|
%t20 = call ptr @fn_ptype()
|
|
store ptr %t20, ptr %t19
|
|
%t21 = load ptr, ptr %t5
|
|
%t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 7
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1
|
|
%t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2
|
|
%t26 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0
|
|
%t27 = load i32, ptr %t24
|
|
%t28 = load i32, ptr %t25
|
|
%t29 = icmp sge i32 %t27, %t28
|
|
br i1 %t29, label %grow3, label %put4
|
|
grow3:
|
|
%t30 = mul i32 %t28, 2
|
|
%t31 = icmp eq i32 %t28, 0
|
|
%t32 = select i1 %t31, i32 8, i32 %t30
|
|
%t33 = getelementptr ptr, ptr null, i32 1
|
|
%t34 = ptrtoint ptr %t33 to i64
|
|
%t35 = zext i32 %t32 to i64
|
|
%t36 = mul i64 %t35, %t34
|
|
%t37 = load ptr, ptr %t26
|
|
%t38 = call ptr @realloc(ptr %t37, i64 %t36)
|
|
store ptr %t38, ptr %t26
|
|
store i32 %t32, ptr %t25
|
|
br label %put4
|
|
put4:
|
|
%t39 = load ptr, ptr %t14
|
|
%t40 = load ptr, ptr %t26
|
|
%t41 = getelementptr inbounds ptr, ptr %t40, i32 %t27
|
|
store ptr %t39, ptr %t41
|
|
%t42 = add i32 %t27, 1
|
|
store i32 %t42, ptr %t24
|
|
%t43 = call i32 @fn_is_op(ptr @.str312)
|
|
%t44 = icmp ne i32 %t43, 0
|
|
br i1 %t44, label %then5, label %ifend7
|
|
then5:
|
|
%t45 = load i32, ptr @g_pi
|
|
%t46 = add i32 %t45, 1
|
|
store i32 %t46, ptr @g_pi
|
|
br label %ifend7
|
|
ifend7:
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_eat_op(ptr @.str313)
|
|
%t47 = load ptr, ptr %t5
|
|
%t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 3
|
|
store ptr @.str314, ptr %t48
|
|
%t49 = call i32 @fn_is_op(ptr @.str315)
|
|
%t50 = icmp ne i32 %t49, 0
|
|
br i1 %t50, label %then8, label %ifend10
|
|
then8:
|
|
%t51 = load i32, ptr @g_pi
|
|
%t52 = add i32 %t51, 1
|
|
store i32 %t52, ptr @g_pi
|
|
%t53 = load ptr, ptr %t5
|
|
%t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 3
|
|
%t55 = call ptr @fn_ptype()
|
|
store ptr %t55, ptr %t54
|
|
br label %ifend10
|
|
ifend10:
|
|
call void @fn_eat_op(ptr @.str316)
|
|
%t56 = load ptr, ptr @g_toks
|
|
%t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0
|
|
%t58 = load ptr, ptr %t57
|
|
%t59 = load i32, ptr @g_pi
|
|
%t60 = getelementptr inbounds ptr, ptr %t58, i32 %t59
|
|
%t61 = load ptr, ptr %t60
|
|
store ptr %t61, ptr %t62
|
|
%t63 = load ptr, ptr %t5
|
|
%t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 4
|
|
%t65 = call ptr @fn_node(i32 31)
|
|
store ptr %t65, ptr %t64
|
|
%t66 = load ptr, ptr %t5
|
|
%t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 4
|
|
%t68 = load ptr, ptr %t67
|
|
%t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1
|
|
%t70 = load ptr, ptr %t62
|
|
%t71 = getelementptr inbounds %Cmp_Tok, ptr %t70, i32 0, i32 1
|
|
%t72 = load ptr, ptr %t71
|
|
store ptr %t72, ptr %t69
|
|
%t73 = load i32, ptr @g_pi
|
|
%t74 = add i32 %t73, 1
|
|
store i32 %t74, ptr @g_pi
|
|
%t75 = load ptr, ptr %t5
|
|
store ptr %t75, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t76 = load ptr, ptr %retval
|
|
ret ptr %t76
|
|
}
|
|
|
|
define ptr @fn_parse_widget() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t8 = alloca i32
|
|
%t9 = alloca i32
|
|
%t53 = alloca ptr
|
|
%t0 = call ptr @fn_node(i32 12)
|
|
store ptr %t0, ptr %t1
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 1
|
|
%t4 = call ptr @fn_eat_id()
|
|
store ptr %t4, ptr %t3
|
|
%t5 = load ptr, ptr %t1
|
|
%t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 5
|
|
%t7 = call ptr @fn_node(i32 7)
|
|
store ptr %t7, ptr %t6
|
|
br label %wcond0
|
|
wcond0:
|
|
%t10 = load ptr, ptr @g_toks
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = load i32, ptr @g_pi
|
|
%t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %Cmp_Tok, ptr %t15, i32 0, i32 0
|
|
%t17 = load i32, ptr %t16
|
|
%t18 = icmp eq i32 %t17, 0
|
|
%t19 = zext i1 %t18 to i32
|
|
%t20 = icmp ne i32 %t19, 0
|
|
%t21 = zext i1 %t20 to i32
|
|
store i32 %t21, ptr %t9
|
|
br i1 %t20, label %sc3, label %scend4
|
|
sc3:
|
|
%t22 = load ptr, ptr @g_toks
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = load i32, ptr @g_pi
|
|
%t26 = add i32 %t25, 1
|
|
%t27 = getelementptr inbounds ptr, ptr %t24, i32 %t26
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = getelementptr inbounds %Cmp_Tok, ptr %t28, i32 0, i32 0
|
|
%t30 = load i32, ptr %t29
|
|
%t31 = icmp eq i32 %t30, 3
|
|
%t32 = zext i1 %t31 to i32
|
|
%t33 = icmp ne i32 %t32, 0
|
|
%t34 = zext i1 %t33 to i32
|
|
store i32 %t34, ptr %t9
|
|
br label %scend4
|
|
scend4:
|
|
%t35 = load i32, ptr %t9
|
|
%t36 = icmp ne i32 %t35, 0
|
|
%t37 = zext i1 %t36 to i32
|
|
store i32 %t37, ptr %t8
|
|
br i1 %t36, label %sc5, label %scend6
|
|
sc5:
|
|
%t38 = load ptr, ptr @g_toks
|
|
%t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = load i32, ptr @g_pi
|
|
%t42 = add i32 %t41, 1
|
|
%t43 = getelementptr inbounds ptr, ptr %t40, i32 %t42
|
|
%t44 = load ptr, ptr %t43
|
|
%t45 = getelementptr inbounds %Cmp_Tok, ptr %t44, i32 0, i32 1
|
|
%t46 = load ptr, ptr %t45
|
|
%t47 = call i32 @fn_str_eq(ptr %t46, ptr @.str317)
|
|
%t48 = icmp ne i32 %t47, 0
|
|
%t49 = zext i1 %t48 to i32
|
|
store i32 %t49, ptr %t8
|
|
br label %scend6
|
|
scend6:
|
|
%t50 = load i32, ptr %t8
|
|
%t51 = icmp ne i32 %t50, 0
|
|
br i1 %t51, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t52 = call ptr @fn_node(i32 42)
|
|
store ptr %t52, ptr %t53
|
|
%t54 = load ptr, ptr %t53
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1
|
|
%t56 = call ptr @fn_eat_id()
|
|
store ptr %t56, ptr %t55
|
|
call void @fn_eat_op(ptr @.str318)
|
|
%t57 = load ptr, ptr %t53
|
|
%t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 4
|
|
%t59 = call ptr @fn_expr()
|
|
store ptr %t59, ptr %t58
|
|
%t60 = load ptr, ptr %t1
|
|
%t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 5
|
|
%t62 = load ptr, ptr %t61
|
|
%t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 7
|
|
%t64 = load ptr, ptr %t63
|
|
%t65 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 1
|
|
%t66 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 2
|
|
%t67 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0
|
|
%t68 = load i32, ptr %t65
|
|
%t69 = load i32, ptr %t66
|
|
%t70 = icmp sge i32 %t68, %t69
|
|
br i1 %t70, label %grow7, label %put8
|
|
grow7:
|
|
%t71 = mul i32 %t69, 2
|
|
%t72 = icmp eq i32 %t69, 0
|
|
%t73 = select i1 %t72, i32 8, i32 %t71
|
|
%t74 = getelementptr ptr, ptr null, i32 1
|
|
%t75 = ptrtoint ptr %t74 to i64
|
|
%t76 = zext i32 %t73 to i64
|
|
%t77 = mul i64 %t76, %t75
|
|
%t78 = load ptr, ptr %t67
|
|
%t79 = call ptr @realloc(ptr %t78, i64 %t77)
|
|
store ptr %t79, ptr %t67
|
|
store i32 %t73, ptr %t66
|
|
br label %put8
|
|
put8:
|
|
%t80 = load ptr, ptr %t53
|
|
%t81 = load ptr, ptr %t67
|
|
%t82 = getelementptr inbounds ptr, ptr %t81, i32 %t68
|
|
store ptr %t80, ptr %t82
|
|
%t83 = add i32 %t68, 1
|
|
store i32 %t83, ptr %t65
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_skipnl()
|
|
%t84 = call i32 @fn_is_op(ptr @.str319)
|
|
%t85 = icmp ne i32 %t84, 0
|
|
br i1 %t85, label %then9, label %ifend11
|
|
then9:
|
|
%t86 = load i32, ptr @g_pi
|
|
%t87 = add i32 %t86, 1
|
|
store i32 %t87, ptr @g_pi
|
|
br label %wcond12
|
|
wcond12:
|
|
%t88 = icmp ne i32 1, 0
|
|
br i1 %t88, label %wbody13, label %wend14
|
|
wbody13:
|
|
call void @fn_skipnl()
|
|
%t89 = call i32 @fn_is_op(ptr @.str320)
|
|
%t90 = icmp ne i32 %t89, 0
|
|
br i1 %t90, label %then15, label %ifend17
|
|
then15:
|
|
br label %wend14
|
|
ifend17:
|
|
%t91 = load ptr, ptr %t1
|
|
%t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 7
|
|
%t93 = load ptr, ptr %t92
|
|
%t94 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 1
|
|
%t95 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 2
|
|
%t96 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 0
|
|
%t97 = load i32, ptr %t94
|
|
%t98 = load i32, ptr %t95
|
|
%t99 = icmp sge i32 %t97, %t98
|
|
br i1 %t99, label %grow18, label %put19
|
|
grow18:
|
|
%t100 = mul i32 %t98, 2
|
|
%t101 = icmp eq i32 %t98, 0
|
|
%t102 = select i1 %t101, i32 8, i32 %t100
|
|
%t103 = getelementptr ptr, ptr null, i32 1
|
|
%t104 = ptrtoint ptr %t103 to i64
|
|
%t105 = zext i32 %t102 to i64
|
|
%t106 = mul i64 %t105, %t104
|
|
%t107 = load ptr, ptr %t96
|
|
%t108 = call ptr @realloc(ptr %t107, i64 %t106)
|
|
store ptr %t108, ptr %t96
|
|
store i32 %t102, ptr %t95
|
|
br label %put19
|
|
put19:
|
|
%t109 = call ptr @fn_parse_widget()
|
|
%t110 = load ptr, ptr %t96
|
|
%t111 = getelementptr inbounds ptr, ptr %t110, i32 %t97
|
|
store ptr %t109, ptr %t111
|
|
%t112 = add i32 %t97, 1
|
|
store i32 %t112, ptr %t94
|
|
br label %wcond12
|
|
wend14:
|
|
call void @fn_eat_op(ptr @.str321)
|
|
br label %ifend11
|
|
ifend11:
|
|
%t113 = load ptr, ptr %t1
|
|
store ptr %t113, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t114 = load ptr, ptr %retval
|
|
ret ptr %t114
|
|
}
|
|
|
|
define ptr @fn_parse_ui() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t0 = load i32, ptr @g_pi
|
|
%t1 = add i32 %t0, 1
|
|
store i32 %t1, ptr @g_pi
|
|
%t2 = call ptr @fn_node(i32 12)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = call ptr @fn_eat_id()
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 2
|
|
store i32 1, ptr %t8
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str322)
|
|
call void @fn_skipnl()
|
|
%t9 = load ptr, ptr %t3
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4
|
|
%t11 = call ptr @fn_parse_widget()
|
|
store ptr %t11, ptr %t10
|
|
call void @fn_skipnl()
|
|
call void @fn_eat_op(ptr @.str323)
|
|
%t12 = load ptr, ptr %t3
|
|
store ptr %t12, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t13 = load ptr, ptr %retval
|
|
ret ptr %t13
|
|
}
|
|
|
|
define ptr @fn_val(ptr %arg_code, ptr %arg_ty) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t7 = alloca ptr
|
|
store ptr %arg_code, ptr %t0
|
|
store ptr %arg_ty, ptr %t1
|
|
%t2 = getelementptr %Cmp_Val, ptr null, i32 1
|
|
%t3 = ptrtoint ptr %t2 to i64
|
|
%t4 = call ptr @malloc(i64 %t3)
|
|
%t5 = getelementptr inbounds %Cmp_Val, ptr %t4, i32 0, i32 0
|
|
store ptr null, ptr %t5
|
|
%t6 = getelementptr inbounds %Cmp_Val, ptr %t4, i32 0, i32 1
|
|
store ptr null, ptr %t6
|
|
store ptr %t4, ptr %t7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds %Cmp_Val, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t0
|
|
store ptr %t10, ptr %t9
|
|
%t11 = load ptr, ptr %t7
|
|
%t12 = getelementptr inbounds %Cmp_Val, ptr %t11, i32 0, i32 1
|
|
%t13 = load ptr, ptr %t1
|
|
store ptr %t13, ptr %t12
|
|
%t14 = load ptr, ptr %t7
|
|
store ptr %t14, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t15 = load ptr, ptr %retval
|
|
ret ptr %t15
|
|
}
|
|
|
|
define ptr @fn_find_scene(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_scenes
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_scenes
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load ptr, ptr @g_g_scenes
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t1
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
store ptr %t25, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t26 = load i32, ptr %t1
|
|
%t27 = add i32 %t26, 1
|
|
store i32 %t27, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t28 = load ptr, ptr %retval
|
|
ret ptr %t28
|
|
}
|
|
|
|
define void @fn_emit(ptr %arg_s) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
store ptr %arg_s, ptr %t0
|
|
%t1 = load ptr, ptr @g_code
|
|
%t2 = load ptr, ptr %t0
|
|
call void @fn_buf_puts(ptr %t1, ptr %t2)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emith(ptr %arg_s) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
store ptr %arg_s, ptr %t0
|
|
%t1 = load ptr, ptr @g_head
|
|
%t2 = load ptr, ptr %t0
|
|
call void @fn_buf_puts(ptr %t1, ptr %t2)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_emit_alloca(ptr %arg_llt) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t4 = alloca ptr
|
|
store ptr %arg_llt, ptr %t0
|
|
%t1 = load i32, ptr @g_ll_t
|
|
%t2 = call ptr @fn_itoa(i32 %t1)
|
|
%t3 = call ptr @fn_str_concat(ptr @.str324, ptr %t2)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load i32, ptr @g_ll_t
|
|
%t6 = add i32 %t5, 1
|
|
store i32 %t6, ptr @g_ll_t
|
|
%t7 = load ptr, ptr @g_falloc
|
|
call void @fn_buf_puts(ptr %t7, ptr @.str325)
|
|
%t8 = load ptr, ptr @g_falloc
|
|
%t9 = load ptr, ptr %t4
|
|
call void @fn_buf_puts(ptr %t8, ptr %t9)
|
|
%t10 = load ptr, ptr @g_falloc
|
|
call void @fn_buf_puts(ptr %t10, ptr @.str326)
|
|
%t11 = load ptr, ptr @g_falloc
|
|
%t12 = load ptr, ptr %t0
|
|
call void @fn_buf_puts(ptr %t11, ptr %t12)
|
|
%t13 = load ptr, ptr @g_falloc
|
|
call void @fn_buf_puts(ptr %t13, ptr @.str327)
|
|
%t14 = load ptr, ptr %t4
|
|
store ptr %t14, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t15 = load ptr, ptr %retval
|
|
ret ptr %t15
|
|
}
|
|
|
|
define ptr @fn_nreg() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t0 = load i32, ptr @g_ll_t
|
|
%t1 = call ptr @fn_itoa(i32 %t0)
|
|
%t2 = call ptr @fn_str_concat(ptr @.str328, ptr %t1)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load i32, ptr @g_ll_t
|
|
%t5 = add i32 %t4, 1
|
|
store i32 %t5, ptr @g_ll_t
|
|
%t6 = load ptr, ptr %t3
|
|
store ptr %t6, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t7 = load ptr, ptr %retval
|
|
ret ptr %t7
|
|
}
|
|
|
|
define ptr @fn_lbl(ptr %arg_pfx) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
store ptr %arg_pfx, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = load i32, ptr @g_ll_lbl
|
|
%t3 = call ptr @fn_itoa(i32 %t2)
|
|
%t4 = call ptr @fn_str_concat(ptr %t1, ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load i32, ptr @g_ll_lbl
|
|
%t7 = add i32 %t6, 1
|
|
store i32 %t7, ptr @g_ll_lbl
|
|
%t8 = load ptr, ptr %t5
|
|
store ptr %t8, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t9 = load ptr, ptr %retval
|
|
ret ptr %t9
|
|
}
|
|
|
|
define ptr @fn_llty(ptr %arg_t) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t31 = alloca i32
|
|
%t32 = alloca i32
|
|
store ptr %arg_t, ptr %t0
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str329)
|
|
%t6 = icmp ne i32 %t5, 0
|
|
%t7 = zext i1 %t6 to i32
|
|
store i32 %t7, ptr %t3
|
|
br i1 %t6, label %scend1, label %sc0
|
|
sc0:
|
|
%t8 = load ptr, ptr %t0
|
|
%t9 = call i32 @fn_str_eq(ptr %t8, ptr @.str330)
|
|
%t10 = icmp ne i32 %t9, 0
|
|
%t11 = zext i1 %t10 to i32
|
|
store i32 %t11, ptr %t3
|
|
br label %scend1
|
|
scend1:
|
|
%t12 = load i32, ptr %t3
|
|
%t13 = icmp ne i32 %t12, 0
|
|
%t14 = zext i1 %t13 to i32
|
|
store i32 %t14, ptr %t2
|
|
br i1 %t13, label %scend3, label %sc2
|
|
sc2:
|
|
%t15 = load ptr, ptr %t0
|
|
%t16 = call i32 @fn_str_eq(ptr %t15, ptr @.str331)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
%t18 = zext i1 %t17 to i32
|
|
store i32 %t18, ptr %t2
|
|
br label %scend3
|
|
scend3:
|
|
%t19 = load i32, ptr %t2
|
|
%t20 = icmp ne i32 %t19, 0
|
|
%t21 = zext i1 %t20 to i32
|
|
store i32 %t21, ptr %t1
|
|
br i1 %t20, label %scend5, label %sc4
|
|
sc4:
|
|
%t22 = load ptr, ptr %t0
|
|
%t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str332)
|
|
%t24 = icmp ne i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
store i32 %t25, ptr %t1
|
|
br label %scend5
|
|
scend5:
|
|
%t26 = load i32, ptr %t1
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %then6, label %ifend8
|
|
then6:
|
|
store ptr @.str333, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str334)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then9, label %ifend11
|
|
then9:
|
|
store ptr @.str335, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t33 = load ptr, ptr %t0
|
|
%t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str336)
|
|
%t35 = icmp ne i32 %t34, 0
|
|
%t36 = zext i1 %t35 to i32
|
|
store i32 %t36, ptr %t32
|
|
br i1 %t35, label %scend13, label %sc12
|
|
sc12:
|
|
%t37 = load ptr, ptr %t0
|
|
%t38 = call i32 @fn_str_eq(ptr %t37, ptr @.str337)
|
|
%t39 = icmp ne i32 %t38, 0
|
|
%t40 = zext i1 %t39 to i32
|
|
store i32 %t40, ptr %t32
|
|
br label %scend13
|
|
scend13:
|
|
%t41 = load i32, ptr %t32
|
|
%t42 = icmp ne i32 %t41, 0
|
|
%t43 = zext i1 %t42 to i32
|
|
store i32 %t43, ptr %t31
|
|
br i1 %t42, label %scend15, label %sc14
|
|
sc14:
|
|
%t44 = load ptr, ptr %t0
|
|
%t45 = call i32 @fn_str_eq(ptr %t44, ptr @.str338)
|
|
%t46 = icmp ne i32 %t45, 0
|
|
%t47 = zext i1 %t46 to i32
|
|
store i32 %t47, ptr %t31
|
|
br label %scend15
|
|
scend15:
|
|
%t48 = load i32, ptr %t31
|
|
%t49 = icmp ne i32 %t48, 0
|
|
br i1 %t49, label %then16, label %ifend18
|
|
then16:
|
|
store ptr @.str339, ptr %retval
|
|
br label %ret
|
|
ifend18:
|
|
%t50 = load ptr, ptr %t0
|
|
%t51 = call i32 @fn_str_eq(ptr %t50, ptr @.str340)
|
|
%t52 = icmp ne i32 %t51, 0
|
|
br i1 %t52, label %then19, label %ifend21
|
|
then19:
|
|
store ptr @.str341, ptr %retval
|
|
br label %ret
|
|
ifend21:
|
|
store ptr @.str342, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t53 = load ptr, ptr %retval
|
|
ret ptr %t53
|
|
}
|
|
|
|
define i32 @fn_is_slice_ty(ptr %arg_t) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_t, ptr %t0
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = getelementptr inbounds i8, ptr %t2, i32 0
|
|
%t4 = load i8, ptr %t3
|
|
%t5 = zext i8 %t4 to i32
|
|
%t6 = icmp eq i32 %t5, 91
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
store i32 %t9, ptr %t1
|
|
br i1 %t8, label %sc0, label %scend1
|
|
sc0:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = getelementptr inbounds i8, ptr %t10, i32 1
|
|
%t12 = load i8, ptr %t11
|
|
%t13 = zext i8 %t12 to i32
|
|
%t14 = icmp eq i32 %t13, 93
|
|
%t15 = zext i1 %t14 to i32
|
|
%t16 = icmp ne i32 %t15, 0
|
|
%t17 = zext i1 %t16 to i32
|
|
store i32 %t17, ptr %t1
|
|
br label %scend1
|
|
scend1:
|
|
%t18 = load i32, ptr %t1
|
|
store i32 %t18, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t19 = load i32, ptr %retval
|
|
ret i32 %t19
|
|
}
|
|
|
|
define ptr @fn_slice_elem(ptr %arg_t) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
store ptr %arg_t, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call i64 @strlen(ptr %t2)
|
|
%t4 = trunc i64 %t3 to i32
|
|
%t5 = call ptr @fn_str_slice(ptr %t1, i32 2, i32 %t4)
|
|
store ptr %t5, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t6 = load ptr, ptr %retval
|
|
ret ptr %t6
|
|
}
|
|
|
|
define ptr @fn_find_arch(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t15 = alloca ptr
|
|
%t16 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_prog
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_prog
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
store ptr %t14, ptr %t15
|
|
%t17 = load ptr, ptr %t15
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0
|
|
%t19 = load i32, ptr %t18
|
|
%t20 = icmp eq i32 %t19, 10
|
|
%t21 = zext i1 %t20 to i32
|
|
%t22 = icmp ne i32 %t21, 0
|
|
%t23 = zext i1 %t22 to i32
|
|
store i32 %t23, ptr %t16
|
|
br i1 %t22, label %sc3, label %scend4
|
|
sc3:
|
|
%t24 = load ptr, ptr %t15
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = load ptr, ptr %t0
|
|
%t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27)
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
store i32 %t30, ptr %t16
|
|
br label %scend4
|
|
scend4:
|
|
%t31 = load i32, ptr %t16
|
|
%t32 = icmp ne i32 %t31, 0
|
|
br i1 %t32, label %then5, label %ifend7
|
|
then5:
|
|
%t33 = load ptr, ptr %t15
|
|
store ptr %t33, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t34 = load i32, ptr %t1
|
|
%t35 = add i32 %t34, 1
|
|
store i32 %t35, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t36 = load ptr, ptr %retval
|
|
ret ptr %t36
|
|
}
|
|
|
|
define ptr @fn_find_comp(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t15 = alloca ptr
|
|
%t16 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_prog
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_prog
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
store ptr %t14, ptr %t15
|
|
%t17 = load ptr, ptr %t15
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0
|
|
%t19 = load i32, ptr %t18
|
|
%t20 = icmp eq i32 %t19, 8
|
|
%t21 = zext i1 %t20 to i32
|
|
%t22 = icmp ne i32 %t21, 0
|
|
%t23 = zext i1 %t22 to i32
|
|
store i32 %t23, ptr %t16
|
|
br i1 %t22, label %sc3, label %scend4
|
|
sc3:
|
|
%t24 = load ptr, ptr %t15
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = load ptr, ptr %t0
|
|
%t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27)
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
store i32 %t30, ptr %t16
|
|
br label %scend4
|
|
scend4:
|
|
%t31 = load i32, ptr %t16
|
|
%t32 = icmp ne i32 %t31, 0
|
|
br i1 %t32, label %then5, label %ifend7
|
|
then5:
|
|
%t33 = load ptr, ptr %t15
|
|
store ptr %t33, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t34 = load i32, ptr %t1
|
|
%t35 = add i32 %t34, 1
|
|
store i32 %t35, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t36 = load ptr, ptr %retval
|
|
ret ptr %t36
|
|
}
|
|
|
|
define ptr @fn_layout_node(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call ptr @fn_find_comp(ptr %t1)
|
|
store ptr %t2, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t3 = load ptr, ptr %retval
|
|
ret ptr %t3
|
|
}
|
|
|
|
define ptr @fn_layout_ty(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call ptr @fn_str_concat(ptr @.str343, ptr %t1)
|
|
store ptr %t2, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t3 = load ptr, ptr %retval
|
|
ret ptr %t3
|
|
}
|
|
|
|
define i32 @fn_field_index(ptr %arg_s, ptr %arg_fname) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
store ptr %arg_s, ptr %t0
|
|
store ptr %arg_fname, ptr %t1
|
|
store i32 0, ptr %t2
|
|
br label %wcond0
|
|
wcond0:
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = icmp slt i32 %t3, %t8
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load i32, ptr %t2
|
|
%t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17
|
|
%t19 = load ptr, ptr %t18
|
|
%t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 1
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = load ptr, ptr %t1
|
|
%t23 = call i32 @fn_str_eq(ptr %t21, ptr %t22)
|
|
%t24 = icmp ne i32 %t23, 0
|
|
br i1 %t24, label %then3, label %ifend5
|
|
then3:
|
|
%t25 = load i32, ptr %t2
|
|
store i32 %t25, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t26 = load i32, ptr %t2
|
|
%t27 = add i32 %t26, 1
|
|
store i32 %t27, ptr %t2
|
|
br label %wcond0
|
|
wend2:
|
|
%t28 = sub i32 0, 1
|
|
store i32 %t28, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t29 = load i32, ptr %retval
|
|
ret i32 %t29
|
|
}
|
|
|
|
define ptr @fn_field_type(ptr %arg_s, ptr %arg_fname) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
store ptr %arg_s, ptr %t0
|
|
store ptr %arg_fname, ptr %t1
|
|
store i32 0, ptr %t2
|
|
br label %wcond0
|
|
wcond0:
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = icmp slt i32 %t3, %t8
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load i32, ptr %t2
|
|
%t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17
|
|
%t19 = load ptr, ptr %t18
|
|
%t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 1
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = load ptr, ptr %t1
|
|
%t23 = call i32 @fn_str_eq(ptr %t21, ptr %t22)
|
|
%t24 = icmp ne i32 %t23, 0
|
|
br i1 %t24, label %then3, label %ifend5
|
|
then3:
|
|
%t25 = load ptr, ptr %t0
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 7
|
|
%t27 = load ptr, ptr %t26
|
|
%t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0
|
|
%t29 = load ptr, ptr %t28
|
|
%t30 = load i32, ptr %t2
|
|
%t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 3
|
|
%t34 = load ptr, ptr %t33
|
|
store ptr %t34, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t35 = load i32, ptr %t2
|
|
%t36 = add i32 %t35, 1
|
|
store i32 %t36, ptr %t2
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr @.str344, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t37 = load ptr, ptr %retval
|
|
ret ptr %t37
|
|
}
|
|
|
|
define ptr @fn_find_global(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t15 = alloca ptr
|
|
%t16 = alloca i32
|
|
%t34 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_prog
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_prog
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
store ptr %t14, ptr %t15
|
|
%t17 = load ptr, ptr %t15
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0
|
|
%t19 = load i32, ptr %t18
|
|
%t20 = icmp eq i32 %t19, 2
|
|
%t21 = zext i1 %t20 to i32
|
|
%t22 = icmp ne i32 %t21, 0
|
|
%t23 = zext i1 %t22 to i32
|
|
store i32 %t23, ptr %t16
|
|
br i1 %t22, label %sc3, label %scend4
|
|
sc3:
|
|
%t24 = load ptr, ptr %t15
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = load ptr, ptr %t0
|
|
%t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27)
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
store i32 %t30, ptr %t16
|
|
br label %scend4
|
|
scend4:
|
|
%t31 = load i32, ptr %t16
|
|
%t32 = icmp ne i32 %t31, 0
|
|
br i1 %t32, label %then5, label %ifend7
|
|
then5:
|
|
%t33 = load ptr, ptr %t15
|
|
store ptr %t33, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t35 = load ptr, ptr %t15
|
|
%t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 0
|
|
%t37 = load i32, ptr %t36
|
|
%t38 = icmp eq i32 %t37, 3
|
|
%t39 = zext i1 %t38 to i32
|
|
%t40 = icmp ne i32 %t39, 0
|
|
%t41 = zext i1 %t40 to i32
|
|
store i32 %t41, ptr %t34
|
|
br i1 %t40, label %sc8, label %scend9
|
|
sc8:
|
|
%t42 = load ptr, ptr %t15
|
|
%t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 1
|
|
%t44 = load ptr, ptr %t43
|
|
%t45 = load ptr, ptr %t0
|
|
%t46 = call i32 @fn_str_eq(ptr %t44, ptr %t45)
|
|
%t47 = icmp ne i32 %t46, 0
|
|
%t48 = zext i1 %t47 to i32
|
|
store i32 %t48, ptr %t34
|
|
br label %scend9
|
|
scend9:
|
|
%t49 = load i32, ptr %t34
|
|
%t50 = icmp ne i32 %t49, 0
|
|
br i1 %t50, label %then10, label %ifend12
|
|
then10:
|
|
%t51 = load ptr, ptr %t15
|
|
store ptr %t51, ptr %retval
|
|
br label %ret
|
|
ifend12:
|
|
%t52 = load i32, ptr %t1
|
|
%t53 = add i32 %t52, 1
|
|
store i32 %t53, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t54 = load ptr, ptr %retval
|
|
ret ptr %t54
|
|
}
|
|
|
|
define i32 @fn_enum_ordinal(ptr %arg_ename, ptr %arg_vname) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t16 = alloca ptr
|
|
%t17 = alloca i32
|
|
%t34 = alloca i32
|
|
store ptr %arg_ename, ptr %t0
|
|
store ptr %arg_vname, ptr %t1
|
|
store i32 0, ptr %t2
|
|
br label %wcond0
|
|
wcond0:
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = load ptr, ptr @g_prog
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1
|
|
%t6 = load i32, ptr %t5
|
|
%t7 = icmp slt i32 %t3, %t6
|
|
%t8 = zext i1 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t10 = load ptr, ptr @g_prog
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = load i32, ptr %t2
|
|
%t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13
|
|
%t15 = load ptr, ptr %t14
|
|
store ptr %t15, ptr %t16
|
|
%t18 = load ptr, ptr %t16
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0
|
|
%t20 = load i32, ptr %t19
|
|
%t21 = icmp eq i32 %t20, 27
|
|
%t22 = zext i1 %t21 to i32
|
|
%t23 = icmp ne i32 %t22, 0
|
|
%t24 = zext i1 %t23 to i32
|
|
store i32 %t24, ptr %t17
|
|
br i1 %t23, label %sc3, label %scend4
|
|
sc3:
|
|
%t25 = load ptr, ptr %t16
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1
|
|
%t27 = load ptr, ptr %t26
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = call i32 @fn_str_eq(ptr %t27, ptr %t28)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
%t31 = zext i1 %t30 to i32
|
|
store i32 %t31, ptr %t17
|
|
br label %scend4
|
|
scend4:
|
|
%t32 = load i32, ptr %t17
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then5, label %ifend7
|
|
then5:
|
|
store i32 0, ptr %t34
|
|
br label %wcond8
|
|
wcond8:
|
|
%t35 = load i32, ptr %t34
|
|
%t36 = load ptr, ptr %t16
|
|
%t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1
|
|
%t40 = load i32, ptr %t39
|
|
%t41 = icmp slt i32 %t35, %t40
|
|
%t42 = zext i1 %t41 to i32
|
|
%t43 = icmp ne i32 %t42, 0
|
|
br i1 %t43, label %wbody9, label %wend10
|
|
wbody9:
|
|
%t44 = load ptr, ptr %t16
|
|
%t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7
|
|
%t46 = load ptr, ptr %t45
|
|
%t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = load i32, ptr %t34
|
|
%t50 = getelementptr inbounds ptr, ptr %t48, i32 %t49
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1
|
|
%t53 = load ptr, ptr %t52
|
|
%t54 = load ptr, ptr %t1
|
|
%t55 = call i32 @fn_str_eq(ptr %t53, ptr %t54)
|
|
%t56 = icmp ne i32 %t55, 0
|
|
br i1 %t56, label %then11, label %ifend13
|
|
then11:
|
|
%t57 = load i32, ptr %t34
|
|
store i32 %t57, ptr %retval
|
|
br label %ret
|
|
ifend13:
|
|
%t58 = load i32, ptr %t34
|
|
%t59 = add i32 %t58, 1
|
|
store i32 %t59, ptr %t34
|
|
br label %wcond8
|
|
wend10:
|
|
br label %ifend7
|
|
ifend7:
|
|
%t60 = load i32, ptr %t2
|
|
%t61 = add i32 %t60, 1
|
|
store i32 %t61, ptr %t2
|
|
br label %wcond0
|
|
wend2:
|
|
%t62 = load ptr, ptr %t0
|
|
%t63 = call i32 @fn_str_eq(ptr %t62, ptr @.str345)
|
|
%t64 = icmp ne i32 %t63, 0
|
|
br i1 %t64, label %then14, label %ifend16
|
|
then14:
|
|
%t65 = load ptr, ptr %t1
|
|
%t66 = call i32 @fn_str_eq(ptr %t65, ptr @.str346)
|
|
%t67 = icmp ne i32 %t66, 0
|
|
br i1 %t67, label %then17, label %ifend19
|
|
then17:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ifend19:
|
|
%t68 = load ptr, ptr %t1
|
|
%t69 = call i32 @fn_str_eq(ptr %t68, ptr @.str347)
|
|
%t70 = icmp ne i32 %t69, 0
|
|
br i1 %t70, label %then20, label %ifend22
|
|
then20:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend22:
|
|
%t71 = load ptr, ptr %t1
|
|
%t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str348)
|
|
%t73 = icmp ne i32 %t72, 0
|
|
br i1 %t73, label %then23, label %ifend25
|
|
then23:
|
|
store i32 2, ptr %retval
|
|
br label %ret
|
|
ifend25:
|
|
br label %ifend16
|
|
ifend16:
|
|
%t74 = sub i32 0, 1
|
|
store i32 %t74, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t75 = load i32, ptr %retval
|
|
ret i32 %t75
|
|
}
|
|
|
|
define ptr @fn_find_fn(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t15 = alloca ptr
|
|
%t16 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_prog
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_prog
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
store ptr %t14, ptr %t15
|
|
%t17 = load ptr, ptr %t15
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0
|
|
%t19 = load i32, ptr %t18
|
|
%t20 = icmp eq i32 %t19, 4
|
|
%t21 = zext i1 %t20 to i32
|
|
%t22 = icmp ne i32 %t21, 0
|
|
%t23 = zext i1 %t22 to i32
|
|
store i32 %t23, ptr %t16
|
|
br i1 %t22, label %sc3, label %scend4
|
|
sc3:
|
|
%t24 = load ptr, ptr %t15
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = load ptr, ptr %t0
|
|
%t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27)
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
store i32 %t30, ptr %t16
|
|
br label %scend4
|
|
scend4:
|
|
%t31 = load i32, ptr %t16
|
|
%t32 = icmp ne i32 %t31, 0
|
|
br i1 %t32, label %then5, label %ifend7
|
|
then5:
|
|
%t33 = load ptr, ptr %t15
|
|
store ptr %t33, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t34 = load i32, ptr %t1
|
|
%t35 = add i32 %t34, 1
|
|
store i32 %t35, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t36 = load ptr, ptr %retval
|
|
ret ptr %t36
|
|
}
|
|
|
|
define ptr @fn_find_extern(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t15 = alloca ptr
|
|
%t16 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_prog
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_prog
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
store ptr %t14, ptr %t15
|
|
%t17 = load ptr, ptr %t15
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0
|
|
%t19 = load i32, ptr %t18
|
|
%t20 = icmp eq i32 %t19, 11
|
|
%t21 = zext i1 %t20 to i32
|
|
%t22 = icmp ne i32 %t21, 0
|
|
%t23 = zext i1 %t22 to i32
|
|
store i32 %t23, ptr %t16
|
|
br i1 %t22, label %sc3, label %scend4
|
|
sc3:
|
|
%t24 = load ptr, ptr %t15
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = load ptr, ptr %t0
|
|
%t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27)
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
store i32 %t30, ptr %t16
|
|
br label %scend4
|
|
scend4:
|
|
%t31 = load i32, ptr %t16
|
|
%t32 = icmp ne i32 %t31, 0
|
|
br i1 %t32, label %then5, label %ifend7
|
|
then5:
|
|
%t33 = load ptr, ptr %t15
|
|
store ptr %t33, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t34 = load i32, ptr %t1
|
|
%t35 = add i32 %t34, 1
|
|
store i32 %t35, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t36 = load ptr, ptr %retval
|
|
ret ptr %t36
|
|
}
|
|
|
|
define void @fn_register_computed(ptr %arg_prop, ptr %arg_field, ptr %arg_ty, ptr %arg_e) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t5 = alloca ptr
|
|
store ptr %arg_prop, ptr %t0
|
|
store ptr %arg_field, ptr %t1
|
|
store ptr %arg_ty, ptr %t2
|
|
store ptr %arg_e, ptr %t3
|
|
%t4 = call ptr @fn_node(i32 1)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1
|
|
%t8 = load ptr, ptr %t0
|
|
%t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str349)
|
|
%t10 = load ptr, ptr %t1
|
|
%t11 = call ptr @fn_str_concat(ptr %t9, ptr %t10)
|
|
store ptr %t11, ptr %t7
|
|
%t12 = load ptr, ptr %t5
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 3
|
|
%t14 = load ptr, ptr %t2
|
|
store ptr %t14, ptr %t13
|
|
%t15 = load ptr, ptr %t5
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4
|
|
%t17 = load ptr, ptr %t3
|
|
store ptr %t17, ptr %t16
|
|
%t18 = load ptr, ptr @g_g_computed
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 2
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0
|
|
%t22 = load i32, ptr %t19
|
|
%t23 = load i32, ptr %t20
|
|
%t24 = icmp sge i32 %t22, %t23
|
|
br i1 %t24, label %grow0, label %put1
|
|
grow0:
|
|
%t25 = mul i32 %t23, 2
|
|
%t26 = icmp eq i32 %t23, 0
|
|
%t27 = select i1 %t26, i32 8, i32 %t25
|
|
%t28 = getelementptr ptr, ptr null, i32 1
|
|
%t29 = ptrtoint ptr %t28 to i64
|
|
%t30 = zext i32 %t27 to i64
|
|
%t31 = mul i64 %t30, %t29
|
|
%t32 = load ptr, ptr %t21
|
|
%t33 = call ptr @realloc(ptr %t32, i64 %t31)
|
|
store ptr %t33, ptr %t21
|
|
store i32 %t27, ptr %t20
|
|
br label %put1
|
|
put1:
|
|
%t34 = load ptr, ptr %t5
|
|
%t35 = load ptr, ptr %t21
|
|
%t36 = getelementptr inbounds ptr, ptr %t35, i32 %t22
|
|
store ptr %t34, ptr %t36
|
|
%t37 = add i32 %t22, 1
|
|
store i32 %t37, ptr %t19
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_computed_expr(ptr %arg_prop, ptr %arg_field) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t10 = alloca ptr
|
|
%t11 = alloca i32
|
|
store ptr %arg_prop, ptr %t0
|
|
store ptr %arg_field, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = icmp eq ptr %t2, null
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = call ptr @fn_str_concat(ptr %t6, ptr @.str350)
|
|
%t8 = load ptr, ptr %t1
|
|
%t9 = call ptr @fn_str_concat(ptr %t7, ptr %t8)
|
|
store ptr %t9, ptr %t10
|
|
store i32 0, ptr %t11
|
|
br label %wcond3
|
|
wcond3:
|
|
%t12 = load i32, ptr %t11
|
|
%t13 = load ptr, ptr @g_g_computed
|
|
%t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = icmp slt i32 %t12, %t15
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t19 = load ptr, ptr @g_g_computed
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = load i32, ptr %t11
|
|
%t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 1
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = load ptr, ptr %t10
|
|
%t28 = call i32 @fn_str_eq(ptr %t26, ptr %t27)
|
|
%t29 = icmp ne i32 %t28, 0
|
|
br i1 %t29, label %then6, label %ifend8
|
|
then6:
|
|
%t30 = load ptr, ptr @g_g_computed
|
|
%t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = load i32, ptr %t11
|
|
%t34 = getelementptr inbounds ptr, ptr %t32, i32 %t33
|
|
%t35 = load ptr, ptr %t34
|
|
%t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 4
|
|
%t37 = load ptr, ptr %t36
|
|
store ptr %t37, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t38 = load i32, ptr %t11
|
|
%t39 = add i32 %t38, 1
|
|
store i32 %t39, ptr %t11
|
|
br label %wcond3
|
|
wend5:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t40 = load ptr, ptr %retval
|
|
ret ptr %t40
|
|
}
|
|
|
|
define ptr @fn_static_type(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t11 = alloca i32
|
|
store ptr %arg_e, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 0
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = icmp eq i32 %t3, 33
|
|
%t5 = zext i1 %t4 to i32
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then0, label %ifend2
|
|
then0:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = call i32 @fn_loc_find(ptr %t9)
|
|
store i32 %t10, ptr %t11
|
|
%t12 = load i32, ptr %t11
|
|
%t13 = icmp sge i32 %t12, 0
|
|
%t14 = zext i1 %t13 to i32
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then3, label %ifend5
|
|
then3:
|
|
%t16 = load ptr, ptr @g_loc_ty
|
|
%t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = load i32, ptr %t11
|
|
%t20 = getelementptr inbounds ptr, ptr %t18, i32 %t19
|
|
%t21 = load ptr, ptr %t20
|
|
store ptr %t21, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
br label %ifend2
|
|
ifend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t22 = load ptr, ptr %retval
|
|
ret ptr %t22
|
|
}
|
|
|
|
define void @fn_register_onspawn(ptr %arg_model, ptr %arg_body) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t3 = alloca ptr
|
|
store ptr %arg_model, ptr %t0
|
|
store ptr %arg_body, ptr %t1
|
|
%t2 = call ptr @fn_node(i32 7)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = load ptr, ptr %t0
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %t8
|
|
%t10 = load ptr, ptr @g_g_onspawn
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t14 = load i32, ptr %t11
|
|
%t15 = load i32, ptr %t12
|
|
%t16 = icmp sge i32 %t14, %t15
|
|
br i1 %t16, label %grow0, label %put1
|
|
grow0:
|
|
%t17 = mul i32 %t15, 2
|
|
%t18 = icmp eq i32 %t15, 0
|
|
%t19 = select i1 %t18, i32 8, i32 %t17
|
|
%t20 = getelementptr ptr, ptr null, i32 1
|
|
%t21 = ptrtoint ptr %t20 to i64
|
|
%t22 = zext i32 %t19 to i64
|
|
%t23 = mul i64 %t22, %t21
|
|
%t24 = load ptr, ptr %t13
|
|
%t25 = call ptr @realloc(ptr %t24, i64 %t23)
|
|
store ptr %t25, ptr %t13
|
|
store i32 %t19, ptr %t12
|
|
br label %put1
|
|
put1:
|
|
%t26 = load ptr, ptr %t3
|
|
%t27 = load ptr, ptr %t13
|
|
%t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14
|
|
store ptr %t26, ptr %t28
|
|
%t29 = add i32 %t14, 1
|
|
store i32 %t29, ptr %t11
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_onspawn_body(ptr %arg_model) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_model, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_onspawn
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_onspawn
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load ptr, ptr @g_g_onspawn
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t1
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4
|
|
%t27 = load ptr, ptr %t26
|
|
store ptr %t27, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t28 = load i32, ptr %t1
|
|
%t29 = add i32 %t28, 1
|
|
store i32 %t29, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t30 = load ptr, ptr %retval
|
|
ret ptr %t30
|
|
}
|
|
|
|
define void @fn_register_ondespawn(ptr %arg_model, ptr %arg_body, ptr %arg_reason) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t4 = alloca ptr
|
|
store ptr %arg_model, ptr %t0
|
|
store ptr %arg_body, ptr %t1
|
|
store ptr %arg_reason, ptr %t2
|
|
%t3 = call ptr @fn_node(i32 7)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 1
|
|
%t7 = load ptr, ptr %t0
|
|
store ptr %t7, ptr %t6
|
|
%t8 = load ptr, ptr %t4
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4
|
|
%t10 = load ptr, ptr %t1
|
|
store ptr %t10, ptr %t9
|
|
%t11 = load ptr, ptr %t4
|
|
%t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 3
|
|
%t13 = load ptr, ptr %t2
|
|
store ptr %t13, ptr %t12
|
|
%t14 = load ptr, ptr @g_g_ondespawn
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1
|
|
%t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2
|
|
%t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0
|
|
%t18 = load i32, ptr %t15
|
|
%t19 = load i32, ptr %t16
|
|
%t20 = icmp sge i32 %t18, %t19
|
|
br i1 %t20, label %grow0, label %put1
|
|
grow0:
|
|
%t21 = mul i32 %t19, 2
|
|
%t22 = icmp eq i32 %t19, 0
|
|
%t23 = select i1 %t22, i32 8, i32 %t21
|
|
%t24 = getelementptr ptr, ptr null, i32 1
|
|
%t25 = ptrtoint ptr %t24 to i64
|
|
%t26 = zext i32 %t23 to i64
|
|
%t27 = mul i64 %t26, %t25
|
|
%t28 = load ptr, ptr %t17
|
|
%t29 = call ptr @realloc(ptr %t28, i64 %t27)
|
|
store ptr %t29, ptr %t17
|
|
store i32 %t23, ptr %t16
|
|
br label %put1
|
|
put1:
|
|
%t30 = load ptr, ptr %t4
|
|
%t31 = load ptr, ptr %t17
|
|
%t32 = getelementptr inbounds ptr, ptr %t31, i32 %t18
|
|
store ptr %t30, ptr %t32
|
|
%t33 = add i32 %t18, 1
|
|
store i32 %t33, ptr %t15
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_ondespawn_body(ptr %arg_model) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_model, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_ondespawn
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_ondespawn
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load ptr, ptr @g_g_ondespawn
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t1
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4
|
|
%t27 = load ptr, ptr %t26
|
|
store ptr %t27, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t28 = load i32, ptr %t1
|
|
%t29 = add i32 %t28, 1
|
|
store i32 %t29, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t30 = load ptr, ptr %retval
|
|
ret ptr %t30
|
|
}
|
|
|
|
define void @fn_register_onattach(ptr %arg_prop, ptr %arg_body) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t3 = alloca ptr
|
|
store ptr %arg_prop, ptr %t0
|
|
store ptr %arg_body, ptr %t1
|
|
%t2 = call ptr @fn_node(i32 7)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = load ptr, ptr %t0
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %t8
|
|
%t10 = load ptr, ptr @g_g_onattach
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t14 = load i32, ptr %t11
|
|
%t15 = load i32, ptr %t12
|
|
%t16 = icmp sge i32 %t14, %t15
|
|
br i1 %t16, label %grow0, label %put1
|
|
grow0:
|
|
%t17 = mul i32 %t15, 2
|
|
%t18 = icmp eq i32 %t15, 0
|
|
%t19 = select i1 %t18, i32 8, i32 %t17
|
|
%t20 = getelementptr ptr, ptr null, i32 1
|
|
%t21 = ptrtoint ptr %t20 to i64
|
|
%t22 = zext i32 %t19 to i64
|
|
%t23 = mul i64 %t22, %t21
|
|
%t24 = load ptr, ptr %t13
|
|
%t25 = call ptr @realloc(ptr %t24, i64 %t23)
|
|
store ptr %t25, ptr %t13
|
|
store i32 %t19, ptr %t12
|
|
br label %put1
|
|
put1:
|
|
%t26 = load ptr, ptr %t3
|
|
%t27 = load ptr, ptr %t13
|
|
%t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14
|
|
store ptr %t26, ptr %t28
|
|
%t29 = add i32 %t14, 1
|
|
store i32 %t29, ptr %t11
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_onattach_body(ptr %arg_prop) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_prop, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_onattach
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_onattach
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load ptr, ptr @g_g_onattach
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t1
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4
|
|
%t27 = load ptr, ptr %t26
|
|
store ptr %t27, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t28 = load i32, ptr %t1
|
|
%t29 = add i32 %t28, 1
|
|
store i32 %t29, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t30 = load ptr, ptr %retval
|
|
ret ptr %t30
|
|
}
|
|
|
|
define void @fn_register_ondetach(ptr %arg_prop, ptr %arg_body) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t3 = alloca ptr
|
|
store ptr %arg_prop, ptr %t0
|
|
store ptr %arg_body, ptr %t1
|
|
%t2 = call ptr @fn_node(i32 7)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = load ptr, ptr %t0
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %t8
|
|
%t10 = load ptr, ptr @g_g_ondetach
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t14 = load i32, ptr %t11
|
|
%t15 = load i32, ptr %t12
|
|
%t16 = icmp sge i32 %t14, %t15
|
|
br i1 %t16, label %grow0, label %put1
|
|
grow0:
|
|
%t17 = mul i32 %t15, 2
|
|
%t18 = icmp eq i32 %t15, 0
|
|
%t19 = select i1 %t18, i32 8, i32 %t17
|
|
%t20 = getelementptr ptr, ptr null, i32 1
|
|
%t21 = ptrtoint ptr %t20 to i64
|
|
%t22 = zext i32 %t19 to i64
|
|
%t23 = mul i64 %t22, %t21
|
|
%t24 = load ptr, ptr %t13
|
|
%t25 = call ptr @realloc(ptr %t24, i64 %t23)
|
|
store ptr %t25, ptr %t13
|
|
store i32 %t19, ptr %t12
|
|
br label %put1
|
|
put1:
|
|
%t26 = load ptr, ptr %t3
|
|
%t27 = load ptr, ptr %t13
|
|
%t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14
|
|
store ptr %t26, ptr %t28
|
|
%t29 = add i32 %t14, 1
|
|
store i32 %t29, ptr %t11
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_ondetach_body(ptr %arg_prop) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_prop, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_ondetach
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_ondetach
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load ptr, ptr @g_g_ondetach
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t1
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4
|
|
%t27 = load ptr, ptr %t26
|
|
store ptr %t27, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t28 = load i32, ptr %t1
|
|
%t29 = add i32 %t28, 1
|
|
store i32 %t29, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t30 = load ptr, ptr %retval
|
|
ret ptr %t30
|
|
}
|
|
|
|
define void @fn_register_onenable(ptr %arg_prop, ptr %arg_body) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t3 = alloca ptr
|
|
store ptr %arg_prop, ptr %t0
|
|
store ptr %arg_body, ptr %t1
|
|
%t2 = call ptr @fn_node(i32 7)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = load ptr, ptr %t0
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %t8
|
|
%t10 = load ptr, ptr @g_g_onenable
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t14 = load i32, ptr %t11
|
|
%t15 = load i32, ptr %t12
|
|
%t16 = icmp sge i32 %t14, %t15
|
|
br i1 %t16, label %grow0, label %put1
|
|
grow0:
|
|
%t17 = mul i32 %t15, 2
|
|
%t18 = icmp eq i32 %t15, 0
|
|
%t19 = select i1 %t18, i32 8, i32 %t17
|
|
%t20 = getelementptr ptr, ptr null, i32 1
|
|
%t21 = ptrtoint ptr %t20 to i64
|
|
%t22 = zext i32 %t19 to i64
|
|
%t23 = mul i64 %t22, %t21
|
|
%t24 = load ptr, ptr %t13
|
|
%t25 = call ptr @realloc(ptr %t24, i64 %t23)
|
|
store ptr %t25, ptr %t13
|
|
store i32 %t19, ptr %t12
|
|
br label %put1
|
|
put1:
|
|
%t26 = load ptr, ptr %t3
|
|
%t27 = load ptr, ptr %t13
|
|
%t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14
|
|
store ptr %t26, ptr %t28
|
|
%t29 = add i32 %t14, 1
|
|
store i32 %t29, ptr %t11
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_register_ondisable(ptr %arg_prop, ptr %arg_body) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t3 = alloca ptr
|
|
store ptr %arg_prop, ptr %t0
|
|
store ptr %arg_body, ptr %t1
|
|
%t2 = call ptr @fn_node(i32 7)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = load ptr, ptr %t0
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %t8
|
|
%t10 = load ptr, ptr @g_g_ondisable
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t14 = load i32, ptr %t11
|
|
%t15 = load i32, ptr %t12
|
|
%t16 = icmp sge i32 %t14, %t15
|
|
br i1 %t16, label %grow0, label %put1
|
|
grow0:
|
|
%t17 = mul i32 %t15, 2
|
|
%t18 = icmp eq i32 %t15, 0
|
|
%t19 = select i1 %t18, i32 8, i32 %t17
|
|
%t20 = getelementptr ptr, ptr null, i32 1
|
|
%t21 = ptrtoint ptr %t20 to i64
|
|
%t22 = zext i32 %t19 to i64
|
|
%t23 = mul i64 %t22, %t21
|
|
%t24 = load ptr, ptr %t13
|
|
%t25 = call ptr @realloc(ptr %t24, i64 %t23)
|
|
store ptr %t25, ptr %t13
|
|
store i32 %t19, ptr %t12
|
|
br label %put1
|
|
put1:
|
|
%t26 = load ptr, ptr %t3
|
|
%t27 = load ptr, ptr %t13
|
|
%t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14
|
|
store ptr %t26, ptr %t28
|
|
%t29 = add i32 %t14, 1
|
|
store i32 %t29, ptr %t11
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_onenable_body(ptr %arg_prop) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_prop, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_onenable
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_onenable
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load ptr, ptr @g_g_onenable
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t1
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4
|
|
%t27 = load ptr, ptr %t26
|
|
store ptr %t27, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t28 = load i32, ptr %t1
|
|
%t29 = add i32 %t28, 1
|
|
store i32 %t29, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t30 = load ptr, ptr %retval
|
|
ret ptr %t30
|
|
}
|
|
|
|
define ptr @fn_ondisable_body(ptr %arg_prop) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_prop, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_ondisable
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_ondisable
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load ptr, ptr @g_g_ondisable
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t1
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4
|
|
%t27 = load ptr, ptr %t26
|
|
store ptr %t27, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t28 = load i32, ptr %t1
|
|
%t29 = add i32 %t28, 1
|
|
store i32 %t29, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t30 = load ptr, ptr %retval
|
|
ret ptr %t30
|
|
}
|
|
|
|
define void @fn_register_event(ptr %arg_n) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
store ptr %arg_n, ptr %t0
|
|
%t1 = load ptr, ptr @g_g_events
|
|
%t2 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 1
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 2
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t1, i32 0, i32 0
|
|
%t5 = load i32, ptr %t2
|
|
%t6 = load i32, ptr %t3
|
|
%t7 = icmp sge i32 %t5, %t6
|
|
br i1 %t7, label %grow0, label %put1
|
|
grow0:
|
|
%t8 = mul i32 %t6, 2
|
|
%t9 = icmp eq i32 %t6, 0
|
|
%t10 = select i1 %t9, i32 8, i32 %t8
|
|
%t11 = getelementptr ptr, ptr null, i32 1
|
|
%t12 = ptrtoint ptr %t11 to i64
|
|
%t13 = zext i32 %t10 to i64
|
|
%t14 = mul i64 %t13, %t12
|
|
%t15 = load ptr, ptr %t4
|
|
%t16 = call ptr @realloc(ptr %t15, i64 %t14)
|
|
store ptr %t16, ptr %t4
|
|
store i32 %t10, ptr %t3
|
|
br label %put1
|
|
put1:
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = load ptr, ptr %t4
|
|
%t19 = getelementptr inbounds ptr, ptr %t18, i32 %t5
|
|
store ptr %t17, ptr %t19
|
|
%t20 = add i32 %t5, 1
|
|
store i32 %t20, ptr %t2
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_find_event(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_events
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_events
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load ptr, ptr @g_g_events
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t1
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
store ptr %t25, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t26 = load i32, ptr %t1
|
|
%t27 = add i32 %t26, 1
|
|
store i32 %t27, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t28 = load ptr, ptr %retval
|
|
ret ptr %t28
|
|
}
|
|
|
|
define void @fn_register_onlisten(ptr %arg_evt, ptr %arg_body) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t3 = alloca ptr
|
|
store ptr %arg_evt, ptr %t0
|
|
store ptr %arg_body, ptr %t1
|
|
%t2 = call ptr @fn_node(i32 7)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 1
|
|
%t6 = load ptr, ptr %t0
|
|
store ptr %t6, ptr %t5
|
|
%t7 = load ptr, ptr %t3
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %t8
|
|
%t10 = load ptr, ptr @g_g_onlisten
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t14 = load i32, ptr %t11
|
|
%t15 = load i32, ptr %t12
|
|
%t16 = icmp sge i32 %t14, %t15
|
|
br i1 %t16, label %grow0, label %put1
|
|
grow0:
|
|
%t17 = mul i32 %t15, 2
|
|
%t18 = icmp eq i32 %t15, 0
|
|
%t19 = select i1 %t18, i32 8, i32 %t17
|
|
%t20 = getelementptr ptr, ptr null, i32 1
|
|
%t21 = ptrtoint ptr %t20 to i64
|
|
%t22 = zext i32 %t19 to i64
|
|
%t23 = mul i64 %t22, %t21
|
|
%t24 = load ptr, ptr %t13
|
|
%t25 = call ptr @realloc(ptr %t24, i64 %t23)
|
|
store ptr %t25, ptr %t13
|
|
store i32 %t19, ptr %t12
|
|
br label %put1
|
|
put1:
|
|
%t26 = load ptr, ptr %t3
|
|
%t27 = load ptr, ptr %t13
|
|
%t28 = getelementptr inbounds ptr, ptr %t27, i32 %t14
|
|
store ptr %t26, ptr %t28
|
|
%t29 = add i32 %t14, 1
|
|
store i32 %t29, ptr %t11
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_ensure_event(ptr %arg_name, i32 %arg_with_reason) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t8 = alloca ptr
|
|
%t13 = alloca ptr
|
|
%t43 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 %arg_with_reason, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call ptr @fn_find_event(ptr %t2)
|
|
%t4 = icmp ne ptr %t3, null
|
|
%t5 = zext i1 %t4 to i32
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then0, label %ifend2
|
|
then0:
|
|
br label %ret
|
|
ifend2:
|
|
%t7 = call ptr @fn_node(i32 48)
|
|
store ptr %t7, ptr %t8
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 1
|
|
%t11 = load ptr, ptr %t0
|
|
store ptr %t11, ptr %t10
|
|
%t12 = call ptr @fn_node(i32 1)
|
|
store ptr %t12, ptr %t13
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
store ptr @.str351, ptr %t15
|
|
%t16 = load ptr, ptr %t13
|
|
%t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3
|
|
store ptr @.str352, ptr %t17
|
|
%t18 = load ptr, ptr %t8
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t24 = load i32, ptr %t21
|
|
%t25 = load i32, ptr %t22
|
|
%t26 = icmp sge i32 %t24, %t25
|
|
br i1 %t26, label %grow3, label %put4
|
|
grow3:
|
|
%t27 = mul i32 %t25, 2
|
|
%t28 = icmp eq i32 %t25, 0
|
|
%t29 = select i1 %t28, i32 8, i32 %t27
|
|
%t30 = getelementptr ptr, ptr null, i32 1
|
|
%t31 = ptrtoint ptr %t30 to i64
|
|
%t32 = zext i32 %t29 to i64
|
|
%t33 = mul i64 %t32, %t31
|
|
%t34 = load ptr, ptr %t23
|
|
%t35 = call ptr @realloc(ptr %t34, i64 %t33)
|
|
store ptr %t35, ptr %t23
|
|
store i32 %t29, ptr %t22
|
|
br label %put4
|
|
put4:
|
|
%t36 = load ptr, ptr %t13
|
|
%t37 = load ptr, ptr %t23
|
|
%t38 = getelementptr inbounds ptr, ptr %t37, i32 %t24
|
|
store ptr %t36, ptr %t38
|
|
%t39 = add i32 %t24, 1
|
|
store i32 %t39, ptr %t21
|
|
%t40 = load i32, ptr %t1
|
|
%t41 = icmp ne i32 %t40, 0
|
|
br i1 %t41, label %then5, label %ifend7
|
|
then5:
|
|
%t42 = call ptr @fn_node(i32 1)
|
|
store ptr %t42, ptr %t43
|
|
%t44 = load ptr, ptr %t43
|
|
%t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 1
|
|
store ptr @.str353, ptr %t45
|
|
%t46 = load ptr, ptr %t43
|
|
%t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 3
|
|
store ptr @.str354, ptr %t47
|
|
%t48 = load ptr, ptr %t8
|
|
%t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 7
|
|
%t50 = load ptr, ptr %t49
|
|
%t51 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1
|
|
%t52 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 2
|
|
%t53 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 0
|
|
%t54 = load i32, ptr %t51
|
|
%t55 = load i32, ptr %t52
|
|
%t56 = icmp sge i32 %t54, %t55
|
|
br i1 %t56, label %grow8, label %put9
|
|
grow8:
|
|
%t57 = mul i32 %t55, 2
|
|
%t58 = icmp eq i32 %t55, 0
|
|
%t59 = select i1 %t58, i32 8, i32 %t57
|
|
%t60 = getelementptr ptr, ptr null, i32 1
|
|
%t61 = ptrtoint ptr %t60 to i64
|
|
%t62 = zext i32 %t59 to i64
|
|
%t63 = mul i64 %t62, %t61
|
|
%t64 = load ptr, ptr %t53
|
|
%t65 = call ptr @realloc(ptr %t64, i64 %t63)
|
|
store ptr %t65, ptr %t53
|
|
store i32 %t59, ptr %t52
|
|
br label %put9
|
|
put9:
|
|
%t66 = load ptr, ptr %t43
|
|
%t67 = load ptr, ptr %t53
|
|
%t68 = getelementptr inbounds ptr, ptr %t67, i32 %t54
|
|
store ptr %t66, ptr %t68
|
|
%t69 = add i32 %t54, 1
|
|
store i32 %t69, ptr %t51
|
|
br label %ifend7
|
|
ifend7:
|
|
%t70 = load ptr, ptr %t8
|
|
call void @fn_register_event(ptr %t70)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_ensure_event_empty(ptr %arg_name) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t7 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call ptr @fn_find_event(ptr %t1)
|
|
%t3 = icmp ne ptr %t2, null
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
br label %ret
|
|
ifend2:
|
|
%t6 = call ptr @fn_node(i32 48)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1
|
|
%t10 = load ptr, ptr %t0
|
|
store ptr %t10, ptr %t9
|
|
%t11 = load ptr, ptr %t7
|
|
call void @fn_register_event(ptr %t11)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_note_toggled_layer(ptr %arg_name) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_toggled_layers
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_toggled_layers
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = load ptr, ptr %t0
|
|
%t16 = call i32 @fn_str_eq(ptr %t14, ptr %t15)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %then3, label %ifend5
|
|
then3:
|
|
br label %ret
|
|
ifend5:
|
|
%t18 = load i32, ptr %t1
|
|
%t19 = add i32 %t18, 1
|
|
store i32 %t19, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
%t20 = load ptr, ptr @g_g_toggled_layers
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 2
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t24 = load i32, ptr %t21
|
|
%t25 = load i32, ptr %t22
|
|
%t26 = icmp sge i32 %t24, %t25
|
|
br i1 %t26, label %grow6, label %put7
|
|
grow6:
|
|
%t27 = mul i32 %t25, 2
|
|
%t28 = icmp eq i32 %t25, 0
|
|
%t29 = select i1 %t28, i32 8, i32 %t27
|
|
%t30 = getelementptr ptr, ptr null, i32 1
|
|
%t31 = ptrtoint ptr %t30 to i64
|
|
%t32 = zext i32 %t29 to i64
|
|
%t33 = mul i64 %t32, %t31
|
|
%t34 = load ptr, ptr %t23
|
|
%t35 = call ptr @realloc(ptr %t34, i64 %t33)
|
|
store ptr %t35, ptr %t23
|
|
store i32 %t29, ptr %t22
|
|
br label %put7
|
|
put7:
|
|
%t36 = load ptr, ptr %t0
|
|
%t37 = load ptr, ptr %t23
|
|
%t38 = getelementptr inbounds ptr, ptr %t37, i32 %t24
|
|
store ptr %t36, ptr %t38
|
|
%t39 = add i32 %t24, 1
|
|
store i32 %t39, ptr %t21
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_is_toggled_layer(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_toggled_layers
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_toggled_layers
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = load ptr, ptr %t0
|
|
%t16 = call i32 @fn_str_eq(ptr %t14, ptr %t15)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %then3, label %ifend5
|
|
then3:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t18 = load i32, ptr %t1
|
|
%t19 = add i32 %t18, 1
|
|
store i32 %t19, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t20 = load i32, ptr %retval
|
|
ret i32 %t20
|
|
}
|
|
|
|
define i32 @fn_is_model(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i32 @fn_find_arch_id(ptr %t1)
|
|
%t3 = icmp sgt i32 %t2, 0
|
|
%t4 = zext i1 %t3 to i32
|
|
store i32 %t4, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t5 = load i32, ptr %retval
|
|
ret i32 %t5
|
|
}
|
|
|
|
define void @fn_loc_reset() {
|
|
entry:
|
|
store i32 0, ptr @g_nloc
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_loc_push(ptr %arg_name, ptr %arg_r, ptr %arg_ty) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
store ptr %arg_r, ptr %t1
|
|
store ptr %arg_ty, ptr %t2
|
|
%t3 = load i32, ptr @g_nloc
|
|
%t4 = load ptr, ptr @g_loc_name
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1
|
|
%t6 = load i32, ptr %t5
|
|
%t7 = icmp slt i32 %t3, %t6
|
|
%t8 = zext i1 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then0, label %else1
|
|
then0:
|
|
%t10 = load ptr, ptr @g_loc_name
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = load i32, ptr @g_nloc
|
|
%t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13
|
|
%t15 = load ptr, ptr %t0
|
|
store ptr %t15, ptr %t14
|
|
%t16 = load ptr, ptr @g_loc_reg
|
|
%t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = load i32, ptr @g_nloc
|
|
%t20 = getelementptr inbounds ptr, ptr %t18, i32 %t19
|
|
%t21 = load ptr, ptr %t1
|
|
store ptr %t21, ptr %t20
|
|
%t22 = load ptr, ptr @g_loc_ty
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = load i32, ptr @g_nloc
|
|
%t26 = getelementptr inbounds ptr, ptr %t24, i32 %t25
|
|
%t27 = load ptr, ptr %t2
|
|
store ptr %t27, ptr %t26
|
|
%t28 = load ptr, ptr @g_loc_mut
|
|
%t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = load i32, ptr @g_nloc
|
|
%t32 = getelementptr inbounds i32, ptr %t30, i32 %t31
|
|
store i32 1, ptr %t32
|
|
br label %ifend2
|
|
else1:
|
|
%t33 = load ptr, ptr @g_loc_name
|
|
%t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1
|
|
%t35 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 2
|
|
%t36 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0
|
|
%t37 = load i32, ptr %t34
|
|
%t38 = load i32, ptr %t35
|
|
%t39 = icmp sge i32 %t37, %t38
|
|
br i1 %t39, label %grow3, label %put4
|
|
grow3:
|
|
%t40 = mul i32 %t38, 2
|
|
%t41 = icmp eq i32 %t38, 0
|
|
%t42 = select i1 %t41, i32 8, i32 %t40
|
|
%t43 = getelementptr ptr, ptr null, i32 1
|
|
%t44 = ptrtoint ptr %t43 to i64
|
|
%t45 = zext i32 %t42 to i64
|
|
%t46 = mul i64 %t45, %t44
|
|
%t47 = load ptr, ptr %t36
|
|
%t48 = call ptr @realloc(ptr %t47, i64 %t46)
|
|
store ptr %t48, ptr %t36
|
|
store i32 %t42, ptr %t35
|
|
br label %put4
|
|
put4:
|
|
%t49 = load ptr, ptr %t0
|
|
%t50 = load ptr, ptr %t36
|
|
%t51 = getelementptr inbounds ptr, ptr %t50, i32 %t37
|
|
store ptr %t49, ptr %t51
|
|
%t52 = add i32 %t37, 1
|
|
store i32 %t52, ptr %t34
|
|
%t53 = load ptr, ptr @g_loc_reg
|
|
%t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1
|
|
%t55 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 2
|
|
%t56 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 0
|
|
%t57 = load i32, ptr %t54
|
|
%t58 = load i32, ptr %t55
|
|
%t59 = icmp sge i32 %t57, %t58
|
|
br i1 %t59, label %grow5, label %put6
|
|
grow5:
|
|
%t60 = mul i32 %t58, 2
|
|
%t61 = icmp eq i32 %t58, 0
|
|
%t62 = select i1 %t61, i32 8, i32 %t60
|
|
%t63 = getelementptr ptr, ptr null, i32 1
|
|
%t64 = ptrtoint ptr %t63 to i64
|
|
%t65 = zext i32 %t62 to i64
|
|
%t66 = mul i64 %t65, %t64
|
|
%t67 = load ptr, ptr %t56
|
|
%t68 = call ptr @realloc(ptr %t67, i64 %t66)
|
|
store ptr %t68, ptr %t56
|
|
store i32 %t62, ptr %t55
|
|
br label %put6
|
|
put6:
|
|
%t69 = load ptr, ptr %t1
|
|
%t70 = load ptr, ptr %t56
|
|
%t71 = getelementptr inbounds ptr, ptr %t70, i32 %t57
|
|
store ptr %t69, ptr %t71
|
|
%t72 = add i32 %t57, 1
|
|
store i32 %t72, ptr %t54
|
|
%t73 = load ptr, ptr @g_loc_ty
|
|
%t74 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 1
|
|
%t75 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 2
|
|
%t76 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 0
|
|
%t77 = load i32, ptr %t74
|
|
%t78 = load i32, ptr %t75
|
|
%t79 = icmp sge i32 %t77, %t78
|
|
br i1 %t79, label %grow7, label %put8
|
|
grow7:
|
|
%t80 = mul i32 %t78, 2
|
|
%t81 = icmp eq i32 %t78, 0
|
|
%t82 = select i1 %t81, i32 8, i32 %t80
|
|
%t83 = getelementptr ptr, ptr null, i32 1
|
|
%t84 = ptrtoint ptr %t83 to i64
|
|
%t85 = zext i32 %t82 to i64
|
|
%t86 = mul i64 %t85, %t84
|
|
%t87 = load ptr, ptr %t76
|
|
%t88 = call ptr @realloc(ptr %t87, i64 %t86)
|
|
store ptr %t88, ptr %t76
|
|
store i32 %t82, ptr %t75
|
|
br label %put8
|
|
put8:
|
|
%t89 = load ptr, ptr %t2
|
|
%t90 = load ptr, ptr %t76
|
|
%t91 = getelementptr inbounds ptr, ptr %t90, i32 %t77
|
|
store ptr %t89, ptr %t91
|
|
%t92 = add i32 %t77, 1
|
|
store i32 %t92, ptr %t74
|
|
%t93 = load ptr, ptr @g_loc_mut
|
|
%t94 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 1
|
|
%t95 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 2
|
|
%t96 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 0
|
|
%t97 = load i32, ptr %t94
|
|
%t98 = load i32, ptr %t95
|
|
%t99 = icmp sge i32 %t97, %t98
|
|
br i1 %t99, label %grow9, label %put10
|
|
grow9:
|
|
%t100 = mul i32 %t98, 2
|
|
%t101 = icmp eq i32 %t98, 0
|
|
%t102 = select i1 %t101, i32 8, i32 %t100
|
|
%t103 = getelementptr i32, ptr null, i32 1
|
|
%t104 = ptrtoint ptr %t103 to i64
|
|
%t105 = zext i32 %t102 to i64
|
|
%t106 = mul i64 %t105, %t104
|
|
%t107 = load ptr, ptr %t96
|
|
%t108 = call ptr @realloc(ptr %t107, i64 %t106)
|
|
store ptr %t108, ptr %t96
|
|
store i32 %t102, ptr %t95
|
|
br label %put10
|
|
put10:
|
|
%t109 = load ptr, ptr %t96
|
|
%t110 = getelementptr inbounds i32, ptr %t109, i32 %t97
|
|
store i32 1, ptr %t110
|
|
%t111 = add i32 %t97, 1
|
|
store i32 %t111, ptr %t94
|
|
br label %ifend2
|
|
ifend2:
|
|
%t112 = load i32, ptr @g_nloc
|
|
%t113 = add i32 %t112, 1
|
|
store i32 %t113, ptr @g_nloc
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_loc_set_mut(i32 %arg_m) {
|
|
entry:
|
|
%t0 = alloca i32
|
|
store i32 %arg_m, ptr %t0
|
|
%t1 = load i32, ptr @g_nloc
|
|
%t2 = icmp sgt i32 %t1, 0
|
|
%t3 = zext i1 %t2 to i32
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
%t5 = load ptr, ptr @g_loc_mut
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = load i32, ptr @g_nloc
|
|
%t9 = sub i32 %t8, 1
|
|
%t10 = getelementptr inbounds i32, ptr %t7, i32 %t9
|
|
%t11 = load i32, ptr %t0
|
|
store i32 %t11, ptr %t10
|
|
br label %ifend2
|
|
ifend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_loc_find(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t3 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
%t1 = load i32, ptr @g_nloc
|
|
%t2 = sub i32 %t1, 1
|
|
store i32 %t2, ptr %t3
|
|
br label %wcond0
|
|
wcond0:
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp sge i32 %t4, 0
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_loc_name
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t3
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = load ptr, ptr %t0
|
|
%t15 = call i32 @fn_str_eq(ptr %t13, ptr %t14)
|
|
%t16 = icmp ne i32 %t15, 0
|
|
br i1 %t16, label %then3, label %ifend5
|
|
then3:
|
|
%t17 = load i32, ptr %t3
|
|
store i32 %t17, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t18 = load i32, ptr %t3
|
|
%t19 = sub i32 %t18, 1
|
|
store i32 %t19, ptr %t3
|
|
br label %wcond0
|
|
wend2:
|
|
%t20 = sub i32 0, 1
|
|
store i32 %t20, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t21 = load i32, ptr %retval
|
|
ret i32 %t21
|
|
}
|
|
|
|
define i32 @fn_hexdig(i32 %arg_n) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
store i32 %arg_n, ptr %t0
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = icmp slt i32 %t1, 10
|
|
%t3 = zext i1 %t2 to i32
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
%t5 = load i32, ptr %t0
|
|
%t6 = add i32 48, %t5
|
|
store i32 %t6, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t7 = load i32, ptr %t0
|
|
%t8 = add i32 55, %t7
|
|
store i32 %t8, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t9 = load i32, ptr %retval
|
|
ret i32 %t9
|
|
}
|
|
|
|
define ptr @fn_emit_str_const(ptr %arg_s) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t10 = alloca i32
|
|
%t15 = alloca i32
|
|
%t26 = alloca i32
|
|
%t27 = alloca i32
|
|
%t28 = alloca i32
|
|
%t29 = alloca i32
|
|
store ptr %arg_s, ptr %t0
|
|
%t1 = load i32, ptr @g_ll_str
|
|
%t2 = call ptr @fn_itoa(i32 %t1)
|
|
%t3 = call ptr @fn_str_concat(ptr @.str355, ptr %t2)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load i32, ptr @g_ll_str
|
|
%t6 = add i32 %t5, 1
|
|
store i32 %t6, ptr @g_ll_str
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = call i64 @strlen(ptr %t7)
|
|
%t9 = trunc i64 %t8 to i32
|
|
store i32 %t9, ptr %t10
|
|
%t11 = load ptr, ptr %t4
|
|
call void @fn_emith(ptr %t11)
|
|
call void @fn_emith(ptr @.str356)
|
|
%t12 = load i32, ptr %t10
|
|
%t13 = add i32 %t12, 1
|
|
%t14 = call ptr @fn_itoa(i32 %t13)
|
|
call void @fn_emith(ptr %t14)
|
|
call void @fn_emith(ptr @.str357)
|
|
store i32 0, ptr %t15
|
|
br label %wcond0
|
|
wcond0:
|
|
%t16 = load i32, ptr %t15
|
|
%t17 = load i32, ptr %t10
|
|
%t18 = icmp slt i32 %t16, %t17
|
|
%t19 = zext i1 %t18 to i32
|
|
%t20 = icmp ne i32 %t19, 0
|
|
br i1 %t20, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t21 = load ptr, ptr %t0
|
|
%t22 = load i32, ptr %t15
|
|
%t23 = getelementptr inbounds i8, ptr %t21, i32 %t22
|
|
%t24 = load i8, ptr %t23
|
|
%t25 = zext i8 %t24 to i32
|
|
store i32 %t25, ptr %t26
|
|
%t30 = load i32, ptr %t26
|
|
%t31 = icmp eq i32 %t30, 34
|
|
%t32 = zext i1 %t31 to i32
|
|
%t33 = icmp ne i32 %t32, 0
|
|
%t34 = zext i1 %t33 to i32
|
|
store i32 %t34, ptr %t29
|
|
br i1 %t33, label %scend4, label %sc3
|
|
sc3:
|
|
%t35 = load i32, ptr %t26
|
|
%t36 = icmp eq i32 %t35, 92
|
|
%t37 = zext i1 %t36 to i32
|
|
%t38 = icmp ne i32 %t37, 0
|
|
%t39 = zext i1 %t38 to i32
|
|
store i32 %t39, ptr %t29
|
|
br label %scend4
|
|
scend4:
|
|
%t40 = load i32, ptr %t29
|
|
%t41 = icmp ne i32 %t40, 0
|
|
%t42 = zext i1 %t41 to i32
|
|
store i32 %t42, ptr %t28
|
|
br i1 %t41, label %scend6, label %sc5
|
|
sc5:
|
|
%t43 = load i32, ptr %t26
|
|
%t44 = icmp slt i32 %t43, 32
|
|
%t45 = zext i1 %t44 to i32
|
|
%t46 = icmp ne i32 %t45, 0
|
|
%t47 = zext i1 %t46 to i32
|
|
store i32 %t47, ptr %t28
|
|
br label %scend6
|
|
scend6:
|
|
%t48 = load i32, ptr %t28
|
|
%t49 = icmp ne i32 %t48, 0
|
|
%t50 = zext i1 %t49 to i32
|
|
store i32 %t50, ptr %t27
|
|
br i1 %t49, label %scend8, label %sc7
|
|
sc7:
|
|
%t51 = load i32, ptr %t26
|
|
%t52 = icmp sgt i32 %t51, 126
|
|
%t53 = zext i1 %t52 to i32
|
|
%t54 = icmp ne i32 %t53, 0
|
|
%t55 = zext i1 %t54 to i32
|
|
store i32 %t55, ptr %t27
|
|
br label %scend8
|
|
scend8:
|
|
%t56 = load i32, ptr %t27
|
|
%t57 = icmp ne i32 %t56, 0
|
|
br i1 %t57, label %then9, label %else10
|
|
then9:
|
|
%t58 = load ptr, ptr @g_head
|
|
call void @fn_buf_putc(ptr %t58, i32 92)
|
|
%t59 = load ptr, ptr @g_head
|
|
%t60 = load i32, ptr %t26
|
|
%t61 = sdiv i32 %t60, 16
|
|
%t62 = call i32 @fn_hexdig(i32 %t61)
|
|
call void @fn_buf_putc(ptr %t59, i32 %t62)
|
|
%t63 = load ptr, ptr @g_head
|
|
%t64 = load i32, ptr %t26
|
|
%t65 = srem i32 %t64, 16
|
|
%t66 = call i32 @fn_hexdig(i32 %t65)
|
|
call void @fn_buf_putc(ptr %t63, i32 %t66)
|
|
br label %ifend11
|
|
else10:
|
|
%t67 = load ptr, ptr @g_head
|
|
%t68 = load i32, ptr %t26
|
|
call void @fn_buf_putc(ptr %t67, i32 %t68)
|
|
br label %ifend11
|
|
ifend11:
|
|
%t69 = load i32, ptr %t15
|
|
%t70 = add i32 %t69, 1
|
|
store i32 %t70, ptr %t15
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_emith(ptr @.str358)
|
|
%t71 = load ptr, ptr %t4
|
|
store ptr %t71, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t72 = load ptr, ptr %retval
|
|
ret ptr %t72
|
|
}
|
|
|
|
define ptr @fn_global_init(ptr %arg_d) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t16 = alloca ptr
|
|
%t17 = alloca i32
|
|
%t18 = alloca i32
|
|
%t49 = alloca i32
|
|
%t50 = alloca i32
|
|
store ptr %arg_d, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = icmp eq ptr %t3, null
|
|
%t5 = zext i1 %t4 to i32
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then0, label %ifend2
|
|
then0:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = call ptr @fn_llty(ptr %t9)
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str359)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then3, label %ifend5
|
|
then3:
|
|
store ptr @.str360, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
store ptr @.str361, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 4
|
|
%t15 = load ptr, ptr %t14
|
|
store ptr %t15, ptr %t16
|
|
%t19 = load ptr, ptr %t16
|
|
%t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0
|
|
%t21 = load i32, ptr %t20
|
|
%t22 = icmp eq i32 %t21, 30
|
|
%t23 = zext i1 %t22 to i32
|
|
%t24 = icmp ne i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
store i32 %t25, ptr %t18
|
|
br i1 %t24, label %scend7, label %sc6
|
|
sc6:
|
|
%t26 = load ptr, ptr %t16
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 0
|
|
%t28 = load i32, ptr %t27
|
|
%t29 = icmp eq i32 %t28, 40
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
%t32 = zext i1 %t31 to i32
|
|
store i32 %t32, ptr %t18
|
|
br label %scend7
|
|
scend7:
|
|
%t33 = load i32, ptr %t18
|
|
%t34 = icmp ne i32 %t33, 0
|
|
%t35 = zext i1 %t34 to i32
|
|
store i32 %t35, ptr %t17
|
|
br i1 %t34, label %scend9, label %sc8
|
|
sc8:
|
|
%t36 = load ptr, ptr %t16
|
|
%t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 0
|
|
%t38 = load i32, ptr %t37
|
|
%t39 = icmp eq i32 %t38, 32
|
|
%t40 = zext i1 %t39 to i32
|
|
%t41 = icmp ne i32 %t40, 0
|
|
%t42 = zext i1 %t41 to i32
|
|
store i32 %t42, ptr %t17
|
|
br label %scend9
|
|
scend9:
|
|
%t43 = load i32, ptr %t17
|
|
%t44 = icmp ne i32 %t43, 0
|
|
br i1 %t44, label %then10, label %ifend12
|
|
then10:
|
|
%t45 = load ptr, ptr %t16
|
|
%t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 2
|
|
%t47 = load i32, ptr %t46
|
|
%t48 = call ptr @fn_itoa(i32 %t47)
|
|
store ptr %t48, ptr %retval
|
|
br label %ret
|
|
ifend12:
|
|
%t51 = load ptr, ptr %t16
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 0
|
|
%t53 = load i32, ptr %t52
|
|
%t54 = icmp eq i32 %t53, 38
|
|
%t55 = zext i1 %t54 to i32
|
|
%t56 = icmp ne i32 %t55, 0
|
|
%t57 = zext i1 %t56 to i32
|
|
store i32 %t57, ptr %t50
|
|
br i1 %t56, label %sc13, label %scend14
|
|
sc13:
|
|
%t58 = load ptr, ptr %t16
|
|
%t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 1
|
|
%t60 = load ptr, ptr %t59
|
|
%t61 = call i32 @fn_str_eq(ptr %t60, ptr @.str362)
|
|
%t62 = icmp ne i32 %t61, 0
|
|
%t63 = zext i1 %t62 to i32
|
|
store i32 %t63, ptr %t50
|
|
br label %scend14
|
|
scend14:
|
|
%t64 = load i32, ptr %t50
|
|
%t65 = icmp ne i32 %t64, 0
|
|
%t66 = zext i1 %t65 to i32
|
|
store i32 %t66, ptr %t49
|
|
br i1 %t65, label %sc15, label %scend16
|
|
sc15:
|
|
%t67 = load ptr, ptr %t16
|
|
%t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 4
|
|
%t69 = load ptr, ptr %t68
|
|
%t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 0
|
|
%t71 = load i32, ptr %t70
|
|
%t72 = icmp eq i32 %t71, 30
|
|
%t73 = zext i1 %t72 to i32
|
|
%t74 = icmp ne i32 %t73, 0
|
|
%t75 = zext i1 %t74 to i32
|
|
store i32 %t75, ptr %t49
|
|
br label %scend16
|
|
scend16:
|
|
%t76 = load i32, ptr %t49
|
|
%t77 = icmp ne i32 %t76, 0
|
|
br i1 %t77, label %then17, label %ifend19
|
|
then17:
|
|
%t78 = load ptr, ptr %t16
|
|
%t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 4
|
|
%t80 = load ptr, ptr %t79
|
|
%t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 2
|
|
%t82 = load i32, ptr %t81
|
|
%t83 = call ptr @fn_itoa(i32 %t82)
|
|
%t84 = call ptr @fn_str_concat(ptr @.str363, ptr %t83)
|
|
store ptr %t84, ptr %retval
|
|
br label %ret
|
|
ifend19:
|
|
%t85 = load ptr, ptr %t0
|
|
%t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 3
|
|
%t87 = load ptr, ptr %t86
|
|
%t88 = call ptr @fn_llty(ptr %t87)
|
|
%t89 = call i32 @fn_str_eq(ptr %t88, ptr @.str364)
|
|
%t90 = icmp ne i32 %t89, 0
|
|
br i1 %t90, label %then20, label %ifend22
|
|
then20:
|
|
store ptr @.str365, ptr %retval
|
|
br label %ret
|
|
ifend22:
|
|
store ptr @.str366, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t91 = load ptr, ptr %retval
|
|
ret ptr %t91
|
|
}
|
|
|
|
define void @fn_emit_header() {
|
|
entry:
|
|
%t6 = alloca i32
|
|
%t20 = alloca ptr
|
|
%t39 = alloca i32
|
|
%t81 = alloca ptr
|
|
call void @fn_emith(ptr @.str367)
|
|
call void @fn_emith(ptr @.str368)
|
|
call void @fn_emith(ptr @.str369)
|
|
call void @fn_emith(ptr @.str370)
|
|
call void @fn_emith(ptr @.str371)
|
|
call void @fn_emith(ptr @.str372)
|
|
call void @fn_emith(ptr @.str373)
|
|
call void @fn_emith(ptr @.str374)
|
|
call void @fn_emith(ptr @.str375)
|
|
call void @fn_emith(ptr @.str376)
|
|
call void @fn_emith(ptr @.str377)
|
|
call void @fn_emith(ptr @.str378)
|
|
call void @fn_emith(ptr @.str379)
|
|
call void @fn_emith(ptr @.str380)
|
|
call void @fn_emith(ptr @.str381)
|
|
call void @fn_emith(ptr @.str382)
|
|
call void @fn_emith(ptr @.str383)
|
|
call void @fn_emith(ptr @.str384)
|
|
call void @fn_emith(ptr @.str385)
|
|
call void @fn_emith(ptr @.str386)
|
|
call void @fn_emith(ptr @.str387)
|
|
call void @fn_emith(ptr @.str388)
|
|
call void @fn_emith(ptr @.str389)
|
|
call void @fn_emith(ptr @.str390)
|
|
call void @fn_emith(ptr @.str391)
|
|
call void @fn_emith(ptr @.str392)
|
|
call void @fn_emith(ptr @.str393)
|
|
call void @fn_emith(ptr @.str394)
|
|
call void @fn_emith(ptr @.str395)
|
|
call void @fn_emith(ptr @.str396)
|
|
call void @fn_emith(ptr @.str397)
|
|
call void @fn_emith(ptr @.str398)
|
|
%t0 = load ptr, ptr @g_g_game_name
|
|
%t1 = call i64 @strlen(ptr %t0)
|
|
%t2 = trunc i64 %t1 to i32
|
|
%t3 = add i32 %t2, 1
|
|
%t4 = call ptr @fn_itoa(i32 %t3)
|
|
call void @fn_emith(ptr %t4)
|
|
call void @fn_emith(ptr @.str399)
|
|
%t5 = load ptr, ptr @g_g_game_name
|
|
call void @fn_emith(ptr %t5)
|
|
call void @fn_emith(ptr @.str400)
|
|
call void @fn_emith(ptr @.str401)
|
|
store i32 0, ptr %t6
|
|
br label %wcond0
|
|
wcond0:
|
|
%t7 = load i32, ptr %t6
|
|
%t8 = load ptr, ptr @g_prog
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1
|
|
%t10 = load i32, ptr %t9
|
|
%t11 = icmp slt i32 %t7, %t10
|
|
%t12 = zext i1 %t11 to i32
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t14 = load ptr, ptr @g_prog
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load i32, ptr %t6
|
|
%t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17
|
|
%t19 = load ptr, ptr %t18
|
|
store ptr %t19, ptr %t20
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 0
|
|
%t23 = load i32, ptr %t22
|
|
%t24 = icmp eq i32 %t23, 8
|
|
%t25 = zext i1 %t24 to i32
|
|
%t26 = icmp ne i32 %t25, 0
|
|
br i1 %t26, label %then3, label %ifend5
|
|
then3:
|
|
%t27 = load ptr, ptr %t20
|
|
%t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1
|
|
%t29 = load ptr, ptr %t28
|
|
%t30 = call ptr @fn_layout_ty(ptr %t29)
|
|
call void @fn_emith(ptr %t30)
|
|
call void @fn_emith(ptr @.str402)
|
|
%t31 = load ptr, ptr %t20
|
|
%t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7
|
|
%t33 = load ptr, ptr %t32
|
|
%t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 1
|
|
%t35 = load i32, ptr %t34
|
|
%t36 = icmp eq i32 %t35, 0
|
|
%t37 = zext i1 %t36 to i32
|
|
%t38 = icmp ne i32 %t37, 0
|
|
br i1 %t38, label %then6, label %ifend8
|
|
then6:
|
|
call void @fn_emith(ptr @.str403)
|
|
br label %ifend8
|
|
ifend8:
|
|
store i32 0, ptr %t39
|
|
br label %wcond9
|
|
wcond9:
|
|
%t40 = load i32, ptr %t39
|
|
%t41 = load ptr, ptr %t20
|
|
%t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 7
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = getelementptr inbounds %LSlice, ptr %t43, i32 0, i32 1
|
|
%t45 = load i32, ptr %t44
|
|
%t46 = icmp slt i32 %t40, %t45
|
|
%t47 = zext i1 %t46 to i32
|
|
%t48 = icmp ne i32 %t47, 0
|
|
br i1 %t48, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t49 = load i32, ptr %t39
|
|
%t50 = icmp sgt i32 %t49, 0
|
|
%t51 = zext i1 %t50 to i32
|
|
%t52 = icmp ne i32 %t51, 0
|
|
br i1 %t52, label %then12, label %ifend14
|
|
then12:
|
|
call void @fn_emith(ptr @.str404)
|
|
br label %ifend14
|
|
ifend14:
|
|
%t53 = load ptr, ptr %t20
|
|
%t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 7
|
|
%t55 = load ptr, ptr %t54
|
|
%t56 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 0
|
|
%t57 = load ptr, ptr %t56
|
|
%t58 = load i32, ptr %t39
|
|
%t59 = getelementptr inbounds ptr, ptr %t57, i32 %t58
|
|
%t60 = load ptr, ptr %t59
|
|
%t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 3
|
|
%t62 = load ptr, ptr %t61
|
|
%t63 = call ptr @fn_llty(ptr %t62)
|
|
call void @fn_emith(ptr %t63)
|
|
%t64 = load i32, ptr %t39
|
|
%t65 = add i32 %t64, 1
|
|
store i32 %t65, ptr %t39
|
|
br label %wcond9
|
|
wend11:
|
|
call void @fn_emith(ptr @.str405)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t66 = load i32, ptr %t6
|
|
%t67 = add i32 %t66, 1
|
|
store i32 %t67, ptr %t6
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %t6
|
|
br label %wcond15
|
|
wcond15:
|
|
%t68 = load i32, ptr %t6
|
|
%t69 = load ptr, ptr @g_prog
|
|
%t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1
|
|
%t71 = load i32, ptr %t70
|
|
%t72 = icmp slt i32 %t68, %t71
|
|
%t73 = zext i1 %t72 to i32
|
|
%t74 = icmp ne i32 %t73, 0
|
|
br i1 %t74, label %wbody16, label %wend17
|
|
wbody16:
|
|
%t75 = load ptr, ptr @g_prog
|
|
%t76 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 0
|
|
%t77 = load ptr, ptr %t76
|
|
%t78 = load i32, ptr %t6
|
|
%t79 = getelementptr inbounds ptr, ptr %t77, i32 %t78
|
|
%t80 = load ptr, ptr %t79
|
|
store ptr %t80, ptr %t81
|
|
%t82 = load ptr, ptr %t81
|
|
%t83 = getelementptr inbounds %Cmp_Node, ptr %t82, i32 0, i32 0
|
|
%t84 = load i32, ptr %t83
|
|
%t85 = icmp eq i32 %t84, 2
|
|
%t86 = zext i1 %t85 to i32
|
|
%t87 = icmp ne i32 %t86, 0
|
|
br i1 %t87, label %then18, label %ifend20
|
|
then18:
|
|
call void @fn_emith(ptr @.str406)
|
|
%t88 = load ptr, ptr %t81
|
|
%t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1
|
|
%t90 = load ptr, ptr %t89
|
|
call void @fn_emith(ptr %t90)
|
|
call void @fn_emith(ptr @.str407)
|
|
%t91 = load ptr, ptr %t81
|
|
%t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 3
|
|
%t93 = load ptr, ptr %t92
|
|
%t94 = call ptr @fn_llty(ptr %t93)
|
|
call void @fn_emith(ptr %t94)
|
|
call void @fn_emith(ptr @.str408)
|
|
%t95 = load ptr, ptr %t81
|
|
%t96 = call ptr @fn_global_init(ptr %t95)
|
|
call void @fn_emith(ptr %t96)
|
|
call void @fn_emith(ptr @.str409)
|
|
br label %ifend20
|
|
ifend20:
|
|
%t97 = load i32, ptr %t6
|
|
%t98 = add i32 %t97, 1
|
|
store i32 %t98, ptr %t6
|
|
br label %wcond15
|
|
wend17:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_extern_decls() {
|
|
entry:
|
|
%t0 = alloca i32
|
|
%t14 = alloca ptr
|
|
%t30 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_prog
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
store ptr %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 0
|
|
%t17 = load i32, ptr %t16
|
|
%t18 = icmp eq i32 %t17, 11
|
|
%t19 = zext i1 %t18 to i32
|
|
%t20 = icmp ne i32 %t19, 0
|
|
br i1 %t20, label %then3, label %ifend5
|
|
then3:
|
|
call void @fn_emith(ptr @.str410)
|
|
%t21 = load ptr, ptr %t14
|
|
%t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 3
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = call ptr @fn_llty(ptr %t23)
|
|
call void @fn_emith(ptr %t24)
|
|
call void @fn_emith(ptr @.str411)
|
|
%t25 = load ptr, ptr %t14
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 4
|
|
%t27 = load ptr, ptr %t26
|
|
%t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1
|
|
%t29 = load ptr, ptr %t28
|
|
call void @fn_emith(ptr %t29)
|
|
call void @fn_emith(ptr @.str412)
|
|
store i32 0, ptr %t30
|
|
br label %wcond6
|
|
wcond6:
|
|
%t31 = load i32, ptr %t30
|
|
%t32 = load ptr, ptr %t14
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 7
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1
|
|
%t36 = load i32, ptr %t35
|
|
%t37 = icmp slt i32 %t31, %t36
|
|
%t38 = zext i1 %t37 to i32
|
|
%t39 = icmp ne i32 %t38, 0
|
|
br i1 %t39, label %wbody7, label %wend8
|
|
wbody7:
|
|
%t40 = load i32, ptr %t30
|
|
%t41 = icmp sgt i32 %t40, 0
|
|
%t42 = zext i1 %t41 to i32
|
|
%t43 = icmp ne i32 %t42, 0
|
|
br i1 %t43, label %then9, label %ifend11
|
|
then9:
|
|
call void @fn_emith(ptr @.str413)
|
|
br label %ifend11
|
|
ifend11:
|
|
%t44 = load ptr, ptr %t14
|
|
%t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7
|
|
%t46 = load ptr, ptr %t45
|
|
%t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = load i32, ptr %t30
|
|
%t50 = getelementptr inbounds ptr, ptr %t48, i32 %t49
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 3
|
|
%t53 = load ptr, ptr %t52
|
|
%t54 = call ptr @fn_llty(ptr %t53)
|
|
call void @fn_emith(ptr %t54)
|
|
%t55 = load i32, ptr %t30
|
|
%t56 = add i32 %t55, 1
|
|
store i32 %t56, ptr %t30
|
|
br label %wcond6
|
|
wend8:
|
|
call void @fn_emith(ptr @.str414)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t57 = load i32, ptr %t0
|
|
%t58 = add i32 %t57, 1
|
|
store i32 %t58, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_str_prelude() {
|
|
entry:
|
|
call void @fn_emith(ptr @.str415)
|
|
call void @fn_emith(ptr @.str416)
|
|
call void @fn_emith(ptr @.str417)
|
|
call void @fn_emith(ptr @.str418)
|
|
call void @fn_emith(ptr @.str419)
|
|
call void @fn_emith(ptr @.str420)
|
|
call void @fn_emith(ptr @.str421)
|
|
call void @fn_emith(ptr @.str422)
|
|
call void @fn_emith(ptr @.str423)
|
|
call void @fn_emith(ptr @.str424)
|
|
call void @fn_emith(ptr @.str425)
|
|
call void @fn_emith(ptr @.str426)
|
|
call void @fn_emith(ptr @.str427)
|
|
call void @fn_emith(ptr @.str428)
|
|
call void @fn_emith(ptr @.str429)
|
|
call void @fn_emith(ptr @.str430)
|
|
call void @fn_emith(ptr @.str431)
|
|
call void @fn_emith(ptr @.str432)
|
|
call void @fn_emith(ptr @.str433)
|
|
call void @fn_emith(ptr @.str434)
|
|
call void @fn_emith(ptr @.str435)
|
|
call void @fn_emith(ptr @.str436)
|
|
call void @fn_emith(ptr @.str437)
|
|
call void @fn_emith(ptr @.str438)
|
|
call void @fn_emith(ptr @.str439)
|
|
call void @fn_emith(ptr @.str440)
|
|
call void @fn_emith(ptr @.str441)
|
|
call void @fn_emith(ptr @.str442)
|
|
call void @fn_emith(ptr @.str443)
|
|
call void @fn_emith(ptr @.str444)
|
|
call void @fn_emith(ptr @.str445)
|
|
call void @fn_emith(ptr @.str446)
|
|
call void @fn_emith(ptr @.str447)
|
|
call void @fn_emith(ptr @.str448)
|
|
call void @fn_emith(ptr @.str449)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_int_str() {
|
|
entry:
|
|
call void @fn_emith(ptr @.str450)
|
|
call void @fn_emith(ptr @.str451)
|
|
call void @fn_emith(ptr @.str452)
|
|
call void @fn_emith(ptr @.str453)
|
|
call void @fn_emith(ptr @.str454)
|
|
call void @fn_emith(ptr @.str455)
|
|
call void @fn_emith(ptr @.str456)
|
|
call void @fn_emith(ptr @.str457)
|
|
call void @fn_emith(ptr @.str458)
|
|
call void @fn_emith(ptr @.str459)
|
|
call void @fn_emith(ptr @.str460)
|
|
call void @fn_emith(ptr @.str461)
|
|
call void @fn_emith(ptr @.str462)
|
|
call void @fn_emith(ptr @.str463)
|
|
call void @fn_emith(ptr @.str464)
|
|
call void @fn_emith(ptr @.str465)
|
|
call void @fn_emith(ptr @.str466)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_str_slice() {
|
|
entry:
|
|
call void @fn_emith(ptr @.str467)
|
|
call void @fn_emith(ptr @.str468)
|
|
call void @fn_emith(ptr @.str469)
|
|
call void @fn_emith(ptr @.str470)
|
|
call void @fn_emith(ptr @.str471)
|
|
call void @fn_emith(ptr @.str472)
|
|
call void @fn_emith(ptr @.str473)
|
|
call void @fn_emith(ptr @.str474)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_emit_member_addr(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t10 = alloca ptr
|
|
%t24 = alloca i32
|
|
%t39 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_emit_expr(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 1
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = call ptr @fn_layout_node(ptr %t8)
|
|
store ptr %t9, ptr %t10
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = icmp eq ptr %t11, null
|
|
%t13 = zext i1 %t12 to i32
|
|
%t14 = icmp ne i32 %t13, 0
|
|
br i1 %t14, label %then0, label %ifend2
|
|
then0:
|
|
%t15 = load ptr, ptr %t5
|
|
%t16 = getelementptr inbounds %Cmp_Val, ptr %t15, i32 0, i32 1
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = call ptr @fn_str_concat(ptr @.str475, ptr %t17)
|
|
call void @fn_perr(ptr %t18)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t19 = load ptr, ptr %t10
|
|
%t20 = load ptr, ptr %t0
|
|
%t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 1
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = call i32 @fn_field_index(ptr %t19, ptr %t22)
|
|
store i32 %t23, ptr %t24
|
|
%t25 = load i32, ptr %t24
|
|
%t26 = icmp slt i32 %t25, 0
|
|
%t27 = zext i1 %t26 to i32
|
|
%t28 = icmp ne i32 %t27, 0
|
|
br i1 %t28, label %then3, label %ifend5
|
|
then3:
|
|
%t29 = load ptr, ptr %t0
|
|
%t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 1
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = call ptr @fn_str_concat(ptr @.str476, ptr %t31)
|
|
call void @fn_perr(ptr %t32)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t33 = load ptr, ptr %t10
|
|
%t34 = load ptr, ptr %t0
|
|
%t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1
|
|
%t36 = load ptr, ptr %t35
|
|
%t37 = call ptr @fn_field_type(ptr %t33, ptr %t36)
|
|
store ptr %t37, ptr @g_g_addr_ty
|
|
%t38 = call ptr @fn_nreg()
|
|
store ptr %t38, ptr %t39
|
|
call void @fn_emit(ptr @.str477)
|
|
%t40 = load ptr, ptr %t39
|
|
call void @fn_emit(ptr %t40)
|
|
call void @fn_emit(ptr @.str478)
|
|
%t41 = load ptr, ptr %t5
|
|
%t42 = getelementptr inbounds %Cmp_Val, ptr %t41, i32 0, i32 1
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = call ptr @fn_layout_ty(ptr %t43)
|
|
call void @fn_emit(ptr %t44)
|
|
call void @fn_emit(ptr @.str479)
|
|
%t45 = load ptr, ptr %t5
|
|
%t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0
|
|
%t47 = load ptr, ptr %t46
|
|
call void @fn_emit(ptr %t47)
|
|
call void @fn_emit(ptr @.str480)
|
|
%t48 = load i32, ptr %t24
|
|
%t49 = call ptr @fn_itoa(i32 %t48)
|
|
call void @fn_emit(ptr %t49)
|
|
call void @fn_emit(ptr @.str481)
|
|
%t50 = load ptr, ptr %t39
|
|
store ptr %t50, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t51 = load ptr, ptr %retval
|
|
ret ptr %t51
|
|
}
|
|
|
|
define ptr @fn_emit_index_addr(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t17 = alloca ptr
|
|
%t33 = alloca ptr
|
|
%t50 = alloca ptr
|
|
%t67 = alloca ptr
|
|
%t79 = alloca ptr
|
|
%t85 = alloca ptr
|
|
%t88 = alloca ptr
|
|
%t94 = alloca ptr
|
|
%t101 = alloca ptr
|
|
%t103 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_emit_expr(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 1
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = call i32 @fn_is_slice_ty(ptr %t8)
|
|
%t10 = icmp eq i32 %t9, 0
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then0, label %ifend2
|
|
then0:
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 5
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = call ptr @fn_emit_expr(ptr %t15)
|
|
store ptr %t16, ptr %t17
|
|
%t18 = load ptr, ptr %t5
|
|
%t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 1
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = call i32 @fn_str_eq(ptr %t20, ptr @.str482)
|
|
%t22 = icmp ne i32 %t21, 0
|
|
br i1 %t22, label %then3, label %ifend5
|
|
then3:
|
|
%t23 = load ptr, ptr %t5
|
|
%t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = call ptr @fn_str_concat(ptr @.str483, ptr %t25)
|
|
%t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str484)
|
|
%t28 = load ptr, ptr %t17
|
|
%t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = call ptr @fn_str_concat(ptr %t27, ptr %t30)
|
|
%t32 = call ptr @fn_emit_bind(ptr %t31)
|
|
store ptr %t32, ptr %t33
|
|
store ptr @.str485, ptr @g_g_addr_ty
|
|
%t34 = load ptr, ptr %t33
|
|
store ptr %t34, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t35 = load ptr, ptr %t5
|
|
%t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 1
|
|
%t37 = load ptr, ptr %t36
|
|
%t38 = call i32 @fn_str_eq(ptr %t37, ptr @.str486)
|
|
%t39 = icmp ne i32 %t38, 0
|
|
br i1 %t39, label %then6, label %ifend8
|
|
then6:
|
|
%t40 = load ptr, ptr %t5
|
|
%t41 = getelementptr inbounds %Cmp_Val, ptr %t40, i32 0, i32 0
|
|
%t42 = load ptr, ptr %t41
|
|
%t43 = call ptr @fn_str_concat(ptr @.str487, ptr %t42)
|
|
%t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str488)
|
|
%t45 = load ptr, ptr %t17
|
|
%t46 = getelementptr inbounds %Cmp_Val, ptr %t45, i32 0, i32 0
|
|
%t47 = load ptr, ptr %t46
|
|
%t48 = call ptr @fn_str_concat(ptr %t44, ptr %t47)
|
|
%t49 = call ptr @fn_emit_bind(ptr %t48)
|
|
store ptr %t49, ptr %t50
|
|
store ptr @.str489, ptr @g_g_addr_ty
|
|
%t51 = load ptr, ptr %t50
|
|
store ptr %t51, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t52 = load ptr, ptr %t5
|
|
%t53 = getelementptr inbounds %Cmp_Val, ptr %t52, i32 0, i32 1
|
|
%t54 = load ptr, ptr %t53
|
|
%t55 = call i32 @fn_str_eq(ptr %t54, ptr @.str490)
|
|
%t56 = icmp ne i32 %t55, 0
|
|
br i1 %t56, label %then9, label %ifend11
|
|
then9:
|
|
%t57 = load ptr, ptr %t5
|
|
%t58 = getelementptr inbounds %Cmp_Val, ptr %t57, i32 0, i32 0
|
|
%t59 = load ptr, ptr %t58
|
|
%t60 = call ptr @fn_str_concat(ptr @.str491, ptr %t59)
|
|
%t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str492)
|
|
%t62 = load ptr, ptr %t17
|
|
%t63 = getelementptr inbounds %Cmp_Val, ptr %t62, i32 0, i32 0
|
|
%t64 = load ptr, ptr %t63
|
|
%t65 = call ptr @fn_str_concat(ptr %t61, ptr %t64)
|
|
%t66 = call ptr @fn_emit_bind(ptr %t65)
|
|
store ptr %t66, ptr %t67
|
|
store ptr @.str493, ptr @g_g_addr_ty
|
|
%t68 = load ptr, ptr %t67
|
|
store ptr %t68, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t69 = load ptr, ptr %t5
|
|
%t70 = getelementptr inbounds %Cmp_Val, ptr %t69, i32 0, i32 0
|
|
%t71 = load ptr, ptr %t70
|
|
%t72 = call ptr @fn_str_concat(ptr @.str494, ptr %t71)
|
|
%t73 = call ptr @fn_str_concat(ptr %t72, ptr @.str495)
|
|
%t74 = load ptr, ptr %t17
|
|
%t75 = getelementptr inbounds %Cmp_Val, ptr %t74, i32 0, i32 0
|
|
%t76 = load ptr, ptr %t75
|
|
%t77 = call ptr @fn_str_concat(ptr %t73, ptr %t76)
|
|
%t78 = call ptr @fn_emit_bind(ptr %t77)
|
|
store ptr %t78, ptr %t79
|
|
store ptr @.str496, ptr @g_g_addr_ty
|
|
%t80 = load ptr, ptr %t79
|
|
store ptr %t80, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t81 = load ptr, ptr %t5
|
|
%t82 = getelementptr inbounds %Cmp_Val, ptr %t81, i32 0, i32 1
|
|
%t83 = load ptr, ptr %t82
|
|
%t84 = call ptr @fn_slice_elem(ptr %t83)
|
|
store ptr %t84, ptr %t85
|
|
%t86 = load ptr, ptr %t85
|
|
store ptr %t86, ptr @g_g_addr_ty
|
|
%t87 = call ptr @fn_nreg()
|
|
store ptr %t87, ptr %t88
|
|
call void @fn_emit(ptr @.str497)
|
|
%t89 = load ptr, ptr %t88
|
|
call void @fn_emit(ptr %t89)
|
|
call void @fn_emit(ptr @.str498)
|
|
%t90 = load ptr, ptr %t5
|
|
%t91 = getelementptr inbounds %Cmp_Val, ptr %t90, i32 0, i32 0
|
|
%t92 = load ptr, ptr %t91
|
|
call void @fn_emit(ptr %t92)
|
|
call void @fn_emit(ptr @.str499)
|
|
%t93 = call ptr @fn_nreg()
|
|
store ptr %t93, ptr %t94
|
|
call void @fn_emit(ptr @.str500)
|
|
%t95 = load ptr, ptr %t94
|
|
call void @fn_emit(ptr %t95)
|
|
call void @fn_emit(ptr @.str501)
|
|
%t96 = load ptr, ptr %t88
|
|
call void @fn_emit(ptr %t96)
|
|
call void @fn_emit(ptr @.str502)
|
|
%t97 = load ptr, ptr %t0
|
|
%t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 5
|
|
%t99 = load ptr, ptr %t98
|
|
%t100 = call ptr @fn_emit_expr(ptr %t99)
|
|
store ptr %t100, ptr %t101
|
|
%t102 = call ptr @fn_nreg()
|
|
store ptr %t102, ptr %t103
|
|
call void @fn_emit(ptr @.str503)
|
|
%t104 = load ptr, ptr %t103
|
|
call void @fn_emit(ptr %t104)
|
|
call void @fn_emit(ptr @.str504)
|
|
%t105 = load ptr, ptr %t85
|
|
%t106 = call ptr @fn_llty(ptr %t105)
|
|
call void @fn_emit(ptr %t106)
|
|
call void @fn_emit(ptr @.str505)
|
|
%t107 = load ptr, ptr %t94
|
|
call void @fn_emit(ptr %t107)
|
|
call void @fn_emit(ptr @.str506)
|
|
%t108 = load ptr, ptr %t101
|
|
%t109 = getelementptr inbounds %Cmp_Val, ptr %t108, i32 0, i32 0
|
|
%t110 = load ptr, ptr %t109
|
|
call void @fn_emit(ptr %t110)
|
|
call void @fn_emit(ptr @.str507)
|
|
%t111 = load ptr, ptr %t103
|
|
store ptr %t111, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t112 = load ptr, ptr %retval
|
|
ret ptr %t112
|
|
}
|
|
|
|
define i32 @fn_is_intrinsic(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t4 = alloca i32
|
|
%t5 = alloca i32
|
|
%t23 = alloca i32
|
|
%t24 = alloca i32
|
|
%t42 = alloca i32
|
|
%t43 = alloca i32
|
|
%t61 = alloca i32
|
|
%t72 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str508)
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %then0, label %ifend2
|
|
then0:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = call i32 @fn_str_eq(ptr %t6, ptr @.str509)
|
|
%t8 = icmp ne i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
store i32 %t9, ptr %t5
|
|
br i1 %t8, label %scend4, label %sc3
|
|
sc3:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str510)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
%t13 = zext i1 %t12 to i32
|
|
store i32 %t13, ptr %t5
|
|
br label %scend4
|
|
scend4:
|
|
%t14 = load i32, ptr %t5
|
|
%t15 = icmp ne i32 %t14, 0
|
|
%t16 = zext i1 %t15 to i32
|
|
store i32 %t16, ptr %t4
|
|
br i1 %t15, label %scend6, label %sc5
|
|
sc5:
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t17, ptr @.str511)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
%t20 = zext i1 %t19 to i32
|
|
store i32 %t20, ptr %t4
|
|
br label %scend6
|
|
scend6:
|
|
%t21 = load i32, ptr %t4
|
|
%t22 = icmp ne i32 %t21, 0
|
|
br i1 %t22, label %then7, label %ifend9
|
|
then7:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend9:
|
|
%t25 = load ptr, ptr %t0
|
|
%t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str512)
|
|
%t27 = icmp ne i32 %t26, 0
|
|
%t28 = zext i1 %t27 to i32
|
|
store i32 %t28, ptr %t24
|
|
br i1 %t27, label %scend11, label %sc10
|
|
sc10:
|
|
%t29 = load ptr, ptr %t0
|
|
%t30 = call i32 @fn_str_eq(ptr %t29, ptr @.str513)
|
|
%t31 = icmp ne i32 %t30, 0
|
|
%t32 = zext i1 %t31 to i32
|
|
store i32 %t32, ptr %t24
|
|
br label %scend11
|
|
scend11:
|
|
%t33 = load i32, ptr %t24
|
|
%t34 = icmp ne i32 %t33, 0
|
|
%t35 = zext i1 %t34 to i32
|
|
store i32 %t35, ptr %t23
|
|
br i1 %t34, label %scend13, label %sc12
|
|
sc12:
|
|
%t36 = load ptr, ptr %t0
|
|
%t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str514)
|
|
%t38 = icmp ne i32 %t37, 0
|
|
%t39 = zext i1 %t38 to i32
|
|
store i32 %t39, ptr %t23
|
|
br label %scend13
|
|
scend13:
|
|
%t40 = load i32, ptr %t23
|
|
%t41 = icmp ne i32 %t40, 0
|
|
br i1 %t41, label %then14, label %ifend16
|
|
then14:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend16:
|
|
%t44 = load ptr, ptr %t0
|
|
%t45 = call i32 @fn_str_eq(ptr %t44, ptr @.str515)
|
|
%t46 = icmp ne i32 %t45, 0
|
|
%t47 = zext i1 %t46 to i32
|
|
store i32 %t47, ptr %t43
|
|
br i1 %t46, label %scend18, label %sc17
|
|
sc17:
|
|
%t48 = load ptr, ptr %t0
|
|
%t49 = call i32 @fn_str_eq(ptr %t48, ptr @.str516)
|
|
%t50 = icmp ne i32 %t49, 0
|
|
%t51 = zext i1 %t50 to i32
|
|
store i32 %t51, ptr %t43
|
|
br label %scend18
|
|
scend18:
|
|
%t52 = load i32, ptr %t43
|
|
%t53 = icmp ne i32 %t52, 0
|
|
%t54 = zext i1 %t53 to i32
|
|
store i32 %t54, ptr %t42
|
|
br i1 %t53, label %scend20, label %sc19
|
|
sc19:
|
|
%t55 = load ptr, ptr %t0
|
|
%t56 = call i32 @fn_str_eq(ptr %t55, ptr @.str517)
|
|
%t57 = icmp ne i32 %t56, 0
|
|
%t58 = zext i1 %t57 to i32
|
|
store i32 %t58, ptr %t42
|
|
br label %scend20
|
|
scend20:
|
|
%t59 = load i32, ptr %t42
|
|
%t60 = icmp ne i32 %t59, 0
|
|
br i1 %t60, label %then21, label %ifend23
|
|
then21:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend23:
|
|
%t62 = load ptr, ptr %t0
|
|
%t63 = call i32 @fn_str_eq(ptr %t62, ptr @.str518)
|
|
%t64 = icmp ne i32 %t63, 0
|
|
%t65 = zext i1 %t64 to i32
|
|
store i32 %t65, ptr %t61
|
|
br i1 %t64, label %scend25, label %sc24
|
|
sc24:
|
|
%t66 = load ptr, ptr %t0
|
|
%t67 = call i32 @fn_str_eq(ptr %t66, ptr @.str519)
|
|
%t68 = icmp ne i32 %t67, 0
|
|
%t69 = zext i1 %t68 to i32
|
|
store i32 %t69, ptr %t61
|
|
br label %scend25
|
|
scend25:
|
|
%t70 = load i32, ptr %t61
|
|
%t71 = icmp ne i32 %t70, 0
|
|
br i1 %t71, label %then26, label %ifend28
|
|
then26:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend28:
|
|
%t73 = load ptr, ptr %t0
|
|
%t74 = call i32 @fn_str_eq(ptr %t73, ptr @.str520)
|
|
%t75 = icmp ne i32 %t74, 0
|
|
%t76 = zext i1 %t75 to i32
|
|
store i32 %t76, ptr %t72
|
|
br i1 %t75, label %scend30, label %sc29
|
|
sc29:
|
|
%t77 = load ptr, ptr %t0
|
|
%t78 = call i32 @fn_str_eq(ptr %t77, ptr @.str521)
|
|
%t79 = icmp ne i32 %t78, 0
|
|
%t80 = zext i1 %t79 to i32
|
|
store i32 %t80, ptr %t72
|
|
br label %scend30
|
|
scend30:
|
|
%t81 = load i32, ptr %t72
|
|
%t82 = icmp ne i32 %t81, 0
|
|
br i1 %t82, label %then31, label %ifend33
|
|
then31:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend33:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t83 = load i32, ptr %retval
|
|
ret i32 %t83
|
|
}
|
|
|
|
define ptr @fn_emit_bind(ptr %arg_rest) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
store ptr %arg_rest, ptr %t0
|
|
%t1 = call ptr @fn_nreg()
|
|
store ptr %t1, ptr %t2
|
|
call void @fn_emit(ptr @.str522)
|
|
%t3 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t3)
|
|
call void @fn_emit(ptr @.str523)
|
|
%t4 = load ptr, ptr %t0
|
|
call void @fn_emit(ptr %t4)
|
|
call void @fn_emit(ptr @.str524)
|
|
%t5 = load ptr, ptr %t2
|
|
store ptr %t5, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t6 = load ptr, ptr %retval
|
|
ret ptr %t6
|
|
}
|
|
|
|
define ptr @fn_arg_code(ptr %arg_e, i32 %arg_i) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t11 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
store i32 %arg_i, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 7
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = load i32, ptr %t1
|
|
%t8 = getelementptr inbounds ptr, ptr %t6, i32 %t7
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = call ptr @fn_emit_expr(ptr %t9)
|
|
store ptr %t10, ptr %t11
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = getelementptr inbounds %Cmp_Val, ptr %t12, i32 0, i32 0
|
|
%t14 = load ptr, ptr %t13
|
|
store ptr %t14, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t15 = load ptr, ptr %retval
|
|
ret ptr %t15
|
|
}
|
|
|
|
define ptr @fn_emit_intrinsic(ptr %arg_name, ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t10 = alloca ptr
|
|
%t15 = alloca ptr
|
|
%t29 = alloca ptr
|
|
%t32 = alloca ptr
|
|
%t41 = alloca i32
|
|
%t54 = alloca ptr
|
|
%t57 = alloca ptr
|
|
%t60 = alloca ptr
|
|
%t65 = alloca ptr
|
|
%t66 = alloca ptr
|
|
%t83 = alloca ptr
|
|
%t94 = alloca ptr
|
|
%t97 = alloca ptr
|
|
%t100 = alloca ptr
|
|
%t105 = alloca ptr
|
|
%t122 = alloca ptr
|
|
%t127 = alloca ptr
|
|
%t138 = alloca ptr
|
|
%t151 = alloca ptr
|
|
%t153 = alloca ptr
|
|
%t160 = alloca ptr
|
|
%t170 = alloca ptr
|
|
%t188 = alloca ptr
|
|
%t199 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
store ptr %arg_e, ptr %t1
|
|
store i32 1, ptr @g_g_intrin_ok
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str525)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
%t5 = load ptr, ptr %t1
|
|
%t6 = call ptr @fn_arg_code(ptr %t5, i32 0)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t1
|
|
%t9 = call ptr @fn_arg_code(ptr %t8, i32 1)
|
|
store ptr %t9, ptr %t10
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = call ptr @fn_str_concat(ptr @.str526, ptr %t11)
|
|
%t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str527)
|
|
%t14 = call ptr @fn_emit_bind(ptr %t13)
|
|
store ptr %t14, ptr %t15
|
|
%t16 = load ptr, ptr %t7
|
|
%t17 = call ptr @fn_str_concat(ptr @.str528, ptr %t16)
|
|
%t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str529)
|
|
%t19 = load ptr, ptr %t15
|
|
%t20 = call ptr @fn_str_concat(ptr %t18, ptr %t19)
|
|
%t21 = call ptr @fn_str_concat(ptr %t20, ptr @.str530)
|
|
%t22 = call ptr @fn_emit_bind(ptr %t21)
|
|
%t23 = call ptr @fn_val(ptr %t22, ptr @.str531)
|
|
store ptr %t23, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t24 = load ptr, ptr %t0
|
|
%t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str532)
|
|
%t26 = icmp ne i32 %t25, 0
|
|
br i1 %t26, label %then3, label %ifend5
|
|
then3:
|
|
%t27 = load ptr, ptr %t1
|
|
%t28 = call ptr @fn_arg_code(ptr %t27, i32 0)
|
|
store ptr %t28, ptr %t29
|
|
%t30 = load ptr, ptr %t1
|
|
%t31 = call ptr @fn_arg_code(ptr %t30, i32 1)
|
|
store ptr %t31, ptr %t32
|
|
%t33 = load ptr, ptr %t29
|
|
%t34 = call ptr @fn_str_concat(ptr @.str533, ptr %t33)
|
|
%t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str534)
|
|
%t36 = load ptr, ptr %t32
|
|
%t37 = call ptr @fn_str_concat(ptr %t35, ptr %t36)
|
|
%t38 = call ptr @fn_str_concat(ptr %t37, ptr @.str535)
|
|
%t39 = call ptr @fn_emit_bind(ptr %t38)
|
|
%t40 = call ptr @fn_val(ptr %t39, ptr @.str536)
|
|
store ptr %t40, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t42 = load ptr, ptr %t0
|
|
%t43 = call i32 @fn_str_eq(ptr %t42, ptr @.str537)
|
|
%t44 = icmp ne i32 %t43, 0
|
|
%t45 = zext i1 %t44 to i32
|
|
store i32 %t45, ptr %t41
|
|
br i1 %t44, label %scend7, label %sc6
|
|
sc6:
|
|
%t46 = load ptr, ptr %t0
|
|
%t47 = call i32 @fn_str_eq(ptr %t46, ptr @.str538)
|
|
%t48 = icmp ne i32 %t47, 0
|
|
%t49 = zext i1 %t48 to i32
|
|
store i32 %t49, ptr %t41
|
|
br label %scend7
|
|
scend7:
|
|
%t50 = load i32, ptr %t41
|
|
%t51 = icmp ne i32 %t50, 0
|
|
br i1 %t51, label %then8, label %ifend10
|
|
then8:
|
|
%t52 = load ptr, ptr %t1
|
|
%t53 = call ptr @fn_arg_code(ptr %t52, i32 0)
|
|
store ptr %t53, ptr %t54
|
|
%t55 = load ptr, ptr %t1
|
|
%t56 = call ptr @fn_arg_code(ptr %t55, i32 1)
|
|
store ptr %t56, ptr %t57
|
|
%t58 = load ptr, ptr %t1
|
|
%t59 = call ptr @fn_arg_code(ptr %t58, i32 2)
|
|
store ptr %t59, ptr %t60
|
|
%t61 = load ptr, ptr %t60
|
|
%t62 = call ptr @fn_str_concat(ptr @.str539, ptr %t61)
|
|
%t63 = call ptr @fn_str_concat(ptr %t62, ptr @.str540)
|
|
%t64 = call ptr @fn_emit_bind(ptr %t63)
|
|
store ptr %t64, ptr %t65
|
|
store ptr @.str541, ptr %t66
|
|
%t67 = load ptr, ptr %t0
|
|
%t68 = call i32 @fn_str_eq(ptr %t67, ptr @.str542)
|
|
%t69 = icmp ne i32 %t68, 0
|
|
br i1 %t69, label %then11, label %ifend13
|
|
then11:
|
|
store ptr @.str543, ptr %t66
|
|
br label %ifend13
|
|
ifend13:
|
|
%t70 = load ptr, ptr %t66
|
|
%t71 = call ptr @fn_str_concat(ptr @.str544, ptr %t70)
|
|
%t72 = call ptr @fn_str_concat(ptr %t71, ptr @.str545)
|
|
%t73 = load ptr, ptr %t57
|
|
%t74 = call ptr @fn_str_concat(ptr %t72, ptr %t73)
|
|
%t75 = call ptr @fn_str_concat(ptr %t74, ptr @.str546)
|
|
%t76 = load ptr, ptr %t65
|
|
%t77 = call ptr @fn_str_concat(ptr %t75, ptr %t76)
|
|
%t78 = call ptr @fn_str_concat(ptr %t77, ptr @.str547)
|
|
%t79 = load ptr, ptr %t54
|
|
%t80 = call ptr @fn_str_concat(ptr %t78, ptr %t79)
|
|
%t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str548)
|
|
%t82 = call ptr @fn_emit_bind(ptr %t81)
|
|
store ptr %t82, ptr %t83
|
|
%t84 = load ptr, ptr %t83
|
|
%t85 = call ptr @fn_str_concat(ptr @.str549, ptr %t84)
|
|
%t86 = call ptr @fn_str_concat(ptr %t85, ptr @.str550)
|
|
%t87 = call ptr @fn_emit_bind(ptr %t86)
|
|
%t88 = call ptr @fn_val(ptr %t87, ptr @.str551)
|
|
store ptr %t88, ptr %retval
|
|
br label %ret
|
|
ifend10:
|
|
%t89 = load ptr, ptr %t0
|
|
%t90 = call i32 @fn_str_eq(ptr %t89, ptr @.str552)
|
|
%t91 = icmp ne i32 %t90, 0
|
|
br i1 %t91, label %then14, label %ifend16
|
|
then14:
|
|
%t92 = load ptr, ptr %t1
|
|
%t93 = call ptr @fn_arg_code(ptr %t92, i32 0)
|
|
store ptr %t93, ptr %t94
|
|
%t95 = load ptr, ptr %t1
|
|
%t96 = call ptr @fn_arg_code(ptr %t95, i32 1)
|
|
store ptr %t96, ptr %t97
|
|
%t98 = load ptr, ptr %t1
|
|
%t99 = call ptr @fn_arg_code(ptr %t98, i32 2)
|
|
store ptr %t99, ptr %t100
|
|
%t101 = load ptr, ptr %t97
|
|
%t102 = call ptr @fn_str_concat(ptr @.str553, ptr %t101)
|
|
%t103 = call ptr @fn_str_concat(ptr %t102, ptr @.str554)
|
|
%t104 = call ptr @fn_emit_bind(ptr %t103)
|
|
store ptr %t104, ptr %t105
|
|
%t106 = load ptr, ptr %t94
|
|
%t107 = call ptr @fn_str_concat(ptr @.str555, ptr %t106)
|
|
%t108 = call ptr @fn_str_concat(ptr %t107, ptr @.str556)
|
|
%t109 = load ptr, ptr %t105
|
|
%t110 = call ptr @fn_str_concat(ptr %t108, ptr %t109)
|
|
%t111 = call ptr @fn_str_concat(ptr %t110, ptr @.str557)
|
|
%t112 = load ptr, ptr %t100
|
|
%t113 = call ptr @fn_str_concat(ptr %t111, ptr %t112)
|
|
%t114 = call ptr @fn_str_concat(ptr %t113, ptr @.str558)
|
|
%t115 = call ptr @fn_emit_bind(ptr %t114)
|
|
%t116 = call ptr @fn_val(ptr %t115, ptr @.str559)
|
|
store ptr %t116, ptr %retval
|
|
br label %ret
|
|
ifend16:
|
|
%t117 = load ptr, ptr %t0
|
|
%t118 = call i32 @fn_str_eq(ptr %t117, ptr @.str560)
|
|
%t119 = icmp ne i32 %t118, 0
|
|
br i1 %t119, label %then17, label %ifend19
|
|
then17:
|
|
%t120 = load ptr, ptr %t1
|
|
%t121 = call ptr @fn_arg_code(ptr %t120, i32 0)
|
|
store ptr %t121, ptr %t122
|
|
%t123 = load ptr, ptr %t122
|
|
%t124 = call ptr @fn_str_concat(ptr @.str561, ptr %t123)
|
|
%t125 = call ptr @fn_str_concat(ptr %t124, ptr @.str562)
|
|
%t126 = call ptr @fn_emit_bind(ptr %t125)
|
|
store ptr %t126, ptr %t127
|
|
%t128 = load ptr, ptr %t127
|
|
%t129 = call ptr @fn_str_concat(ptr @.str563, ptr %t128)
|
|
%t130 = call ptr @fn_str_concat(ptr %t129, ptr @.str564)
|
|
%t131 = call ptr @fn_emit_bind(ptr %t130)
|
|
%t132 = call ptr @fn_val(ptr %t131, ptr @.str565)
|
|
store ptr %t132, ptr %retval
|
|
br label %ret
|
|
ifend19:
|
|
%t133 = load ptr, ptr %t0
|
|
%t134 = call i32 @fn_str_eq(ptr %t133, ptr @.str566)
|
|
%t135 = icmp ne i32 %t134, 0
|
|
br i1 %t135, label %then20, label %ifend22
|
|
then20:
|
|
%t136 = load ptr, ptr %t1
|
|
%t137 = call ptr @fn_arg_code(ptr %t136, i32 0)
|
|
store ptr %t137, ptr %t138
|
|
call void @fn_emit(ptr @.str567)
|
|
%t139 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t139)
|
|
call void @fn_emit(ptr @.str568)
|
|
%t140 = call ptr @fn_val(ptr @.str569, ptr @.str570)
|
|
store ptr %t140, ptr %retval
|
|
br label %ret
|
|
ifend22:
|
|
%t141 = load ptr, ptr %t0
|
|
%t142 = call i32 @fn_str_eq(ptr %t141, ptr @.str571)
|
|
%t143 = icmp ne i32 %t142, 0
|
|
br i1 %t143, label %then23, label %ifend25
|
|
then23:
|
|
%t144 = call ptr @fn_emit_bind(ptr @.str572)
|
|
%t145 = call ptr @fn_val(ptr %t144, ptr @.str573)
|
|
store ptr %t145, ptr %retval
|
|
br label %ret
|
|
ifend25:
|
|
%t146 = load ptr, ptr %t0
|
|
%t147 = call i32 @fn_str_eq(ptr %t146, ptr @.str574)
|
|
%t148 = icmp ne i32 %t147, 0
|
|
br i1 %t148, label %then26, label %ifend28
|
|
then26:
|
|
%t149 = load ptr, ptr %t1
|
|
%t150 = call ptr @fn_arg_code(ptr %t149, i32 0)
|
|
store ptr %t150, ptr %t151
|
|
%t152 = call ptr @fn_emit_bind(ptr @.str575)
|
|
store ptr %t152, ptr %t153
|
|
%t154 = load ptr, ptr %t153
|
|
%t155 = call ptr @fn_str_concat(ptr @.str576, ptr %t154)
|
|
%t156 = call ptr @fn_str_concat(ptr %t155, ptr @.str577)
|
|
%t157 = load ptr, ptr %t151
|
|
%t158 = call ptr @fn_str_concat(ptr %t156, ptr %t157)
|
|
%t159 = call ptr @fn_emit_bind(ptr %t158)
|
|
store ptr %t159, ptr %t160
|
|
%t161 = load ptr, ptr %t160
|
|
%t162 = call ptr @fn_str_concat(ptr @.str578, ptr %t161)
|
|
%t163 = call ptr @fn_emit_bind(ptr %t162)
|
|
%t164 = call ptr @fn_val(ptr %t163, ptr @.str579)
|
|
store ptr %t164, ptr %retval
|
|
br label %ret
|
|
ifend28:
|
|
%t165 = load ptr, ptr %t0
|
|
%t166 = call i32 @fn_str_eq(ptr %t165, ptr @.str580)
|
|
%t167 = icmp ne i32 %t166, 0
|
|
br i1 %t167, label %then29, label %ifend31
|
|
then29:
|
|
%t168 = load ptr, ptr %t1
|
|
%t169 = call ptr @fn_arg_code(ptr %t168, i32 0)
|
|
store ptr %t169, ptr %t170
|
|
call void @fn_emit(ptr @.str581)
|
|
%t171 = load ptr, ptr %t170
|
|
call void @fn_emit(ptr %t171)
|
|
call void @fn_emit(ptr @.str582)
|
|
call void @fn_emit(ptr @.str583)
|
|
store i32 1, ptr @g_g_term
|
|
%t172 = call ptr @fn_val(ptr @.str584, ptr @.str585)
|
|
store ptr %t172, ptr %retval
|
|
br label %ret
|
|
ifend31:
|
|
%t173 = load ptr, ptr %t0
|
|
%t174 = call i32 @fn_str_eq(ptr %t173, ptr @.str586)
|
|
%t175 = icmp ne i32 %t174, 0
|
|
br i1 %t175, label %then32, label %ifend34
|
|
then32:
|
|
%t176 = call ptr @fn_emit_bind(ptr @.str587)
|
|
%t177 = call ptr @fn_val(ptr %t176, ptr @.str588)
|
|
store ptr %t177, ptr %retval
|
|
br label %ret
|
|
ifend34:
|
|
%t178 = load ptr, ptr %t0
|
|
%t179 = call i32 @fn_str_eq(ptr %t178, ptr @.str589)
|
|
%t180 = icmp ne i32 %t179, 0
|
|
br i1 %t180, label %then35, label %ifend37
|
|
then35:
|
|
%t181 = call ptr @fn_emit_bind(ptr @.str590)
|
|
%t182 = call ptr @fn_val(ptr %t181, ptr @.str591)
|
|
store ptr %t182, ptr %retval
|
|
br label %ret
|
|
ifend37:
|
|
%t183 = load ptr, ptr %t0
|
|
%t184 = call i32 @fn_str_eq(ptr %t183, ptr @.str592)
|
|
%t185 = icmp ne i32 %t184, 0
|
|
br i1 %t185, label %then38, label %ifend40
|
|
then38:
|
|
%t186 = load ptr, ptr %t1
|
|
%t187 = call ptr @fn_arg_code(ptr %t186, i32 0)
|
|
store ptr %t187, ptr %t188
|
|
%t189 = load ptr, ptr %t188
|
|
%t190 = call ptr @fn_str_concat(ptr @.str593, ptr %t189)
|
|
%t191 = call ptr @fn_str_concat(ptr %t190, ptr @.str594)
|
|
%t192 = call ptr @fn_emit_bind(ptr %t191)
|
|
%t193 = call ptr @fn_val(ptr %t192, ptr @.str595)
|
|
store ptr %t193, ptr %retval
|
|
br label %ret
|
|
ifend40:
|
|
%t194 = load ptr, ptr %t0
|
|
%t195 = call i32 @fn_str_eq(ptr %t194, ptr @.str596)
|
|
%t196 = icmp ne i32 %t195, 0
|
|
br i1 %t196, label %then41, label %ifend43
|
|
then41:
|
|
%t197 = load ptr, ptr %t1
|
|
%t198 = call ptr @fn_arg_code(ptr %t197, i32 0)
|
|
store ptr %t198, ptr %t199
|
|
%t200 = load ptr, ptr %t199
|
|
%t201 = call ptr @fn_str_concat(ptr @.str597, ptr %t200)
|
|
%t202 = call ptr @fn_str_concat(ptr %t201, ptr @.str598)
|
|
%t203 = call ptr @fn_emit_bind(ptr %t202)
|
|
%t204 = call ptr @fn_val(ptr %t203, ptr @.str599)
|
|
store ptr %t204, ptr %retval
|
|
br label %ret
|
|
ifend43:
|
|
store i32 0, ptr @g_g_intrin_ok
|
|
%t205 = call ptr @fn_val(ptr @.str600, ptr @.str601)
|
|
store ptr %t205, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t206 = load ptr, ptr %retval
|
|
ret ptr %t206
|
|
}
|
|
|
|
define i32 @fn_is_intrinsic2(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t12 = alloca i32
|
|
%t23 = alloca i32
|
|
%t34 = alloca i32
|
|
%t45 = alloca i32
|
|
%t46 = alloca i32
|
|
%t64 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str602)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
%t5 = zext i1 %t4 to i32
|
|
store i32 %t5, ptr %t1
|
|
br i1 %t4, label %scend1, label %sc0
|
|
sc0:
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = call i32 @fn_str_eq(ptr %t6, ptr @.str603)
|
|
%t8 = icmp ne i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
store i32 %t9, ptr %t1
|
|
br label %scend1
|
|
scend1:
|
|
%t10 = load i32, ptr %t1
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %then2, label %ifend4
|
|
then2:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend4:
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str604)
|
|
%t15 = icmp ne i32 %t14, 0
|
|
%t16 = zext i1 %t15 to i32
|
|
store i32 %t16, ptr %t12
|
|
br i1 %t15, label %scend6, label %sc5
|
|
sc5:
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t17, ptr @.str605)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
%t20 = zext i1 %t19 to i32
|
|
store i32 %t20, ptr %t12
|
|
br label %scend6
|
|
scend6:
|
|
%t21 = load i32, ptr %t12
|
|
%t22 = icmp ne i32 %t21, 0
|
|
br i1 %t22, label %then7, label %ifend9
|
|
then7:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend9:
|
|
%t24 = load ptr, ptr %t0
|
|
%t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str606)
|
|
%t26 = icmp ne i32 %t25, 0
|
|
%t27 = zext i1 %t26 to i32
|
|
store i32 %t27, ptr %t23
|
|
br i1 %t26, label %scend11, label %sc10
|
|
sc10:
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str607)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
%t31 = zext i1 %t30 to i32
|
|
store i32 %t31, ptr %t23
|
|
br label %scend11
|
|
scend11:
|
|
%t32 = load i32, ptr %t23
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then12, label %ifend14
|
|
then12:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
%t35 = load ptr, ptr %t0
|
|
%t36 = call i32 @fn_str_eq(ptr %t35, ptr @.str608)
|
|
%t37 = icmp ne i32 %t36, 0
|
|
%t38 = zext i1 %t37 to i32
|
|
store i32 %t38, ptr %t34
|
|
br i1 %t37, label %scend16, label %sc15
|
|
sc15:
|
|
%t39 = load ptr, ptr %t0
|
|
%t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str609)
|
|
%t41 = icmp ne i32 %t40, 0
|
|
%t42 = zext i1 %t41 to i32
|
|
store i32 %t42, ptr %t34
|
|
br label %scend16
|
|
scend16:
|
|
%t43 = load i32, ptr %t34
|
|
%t44 = icmp ne i32 %t43, 0
|
|
br i1 %t44, label %then17, label %ifend19
|
|
then17:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend19:
|
|
%t47 = load ptr, ptr %t0
|
|
%t48 = call i32 @fn_str_eq(ptr %t47, ptr @.str610)
|
|
%t49 = icmp ne i32 %t48, 0
|
|
%t50 = zext i1 %t49 to i32
|
|
store i32 %t50, ptr %t46
|
|
br i1 %t49, label %scend21, label %sc20
|
|
sc20:
|
|
%t51 = load ptr, ptr %t0
|
|
%t52 = call i32 @fn_str_eq(ptr %t51, ptr @.str611)
|
|
%t53 = icmp ne i32 %t52, 0
|
|
%t54 = zext i1 %t53 to i32
|
|
store i32 %t54, ptr %t46
|
|
br label %scend21
|
|
scend21:
|
|
%t55 = load i32, ptr %t46
|
|
%t56 = icmp ne i32 %t55, 0
|
|
%t57 = zext i1 %t56 to i32
|
|
store i32 %t57, ptr %t45
|
|
br i1 %t56, label %scend23, label %sc22
|
|
sc22:
|
|
%t58 = load ptr, ptr %t0
|
|
%t59 = call i32 @fn_str_eq(ptr %t58, ptr @.str612)
|
|
%t60 = icmp ne i32 %t59, 0
|
|
%t61 = zext i1 %t60 to i32
|
|
store i32 %t61, ptr %t45
|
|
br label %scend23
|
|
scend23:
|
|
%t62 = load i32, ptr %t45
|
|
%t63 = icmp ne i32 %t62, 0
|
|
br i1 %t63, label %then24, label %ifend26
|
|
then24:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend26:
|
|
%t65 = load ptr, ptr %t0
|
|
%t66 = call i32 @fn_str_eq(ptr %t65, ptr @.str613)
|
|
%t67 = icmp ne i32 %t66, 0
|
|
%t68 = zext i1 %t67 to i32
|
|
store i32 %t68, ptr %t64
|
|
br i1 %t67, label %scend28, label %sc27
|
|
sc27:
|
|
%t69 = load ptr, ptr %t0
|
|
%t70 = call i32 @fn_str_eq(ptr %t69, ptr @.str614)
|
|
%t71 = icmp ne i32 %t70, 0
|
|
%t72 = zext i1 %t71 to i32
|
|
store i32 %t72, ptr %t64
|
|
br label %scend28
|
|
scend28:
|
|
%t73 = load i32, ptr %t64
|
|
%t74 = icmp ne i32 %t73, 0
|
|
br i1 %t74, label %then29, label %ifend31
|
|
then29:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend31:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t75 = load i32, ptr %retval
|
|
ret i32 %t75
|
|
}
|
|
|
|
define ptr @fn_emit_intrinsic2(ptr %arg_name, ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t15 = alloca ptr
|
|
%t18 = alloca ptr
|
|
%t21 = alloca ptr
|
|
%t26 = alloca ptr
|
|
%t36 = alloca ptr
|
|
%t39 = alloca ptr
|
|
%t41 = alloca ptr
|
|
%t63 = alloca ptr
|
|
%t79 = alloca ptr
|
|
%t110 = alloca ptr
|
|
%t113 = alloca ptr
|
|
%t116 = alloca ptr
|
|
%t119 = alloca ptr
|
|
%t130 = alloca ptr
|
|
%t133 = alloca ptr
|
|
%t136 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
store ptr %arg_e, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str615)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
%t5 = load ptr, ptr %t1
|
|
%t6 = call ptr @fn_arg_code(ptr %t5, i32 0)
|
|
store ptr %t6, ptr %t7
|
|
call void @fn_emit(ptr @.str616)
|
|
%t8 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t8)
|
|
call void @fn_emit(ptr @.str617)
|
|
%t9 = call ptr @fn_val(ptr @.str618, ptr @.str619)
|
|
store ptr %t9, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str620)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then3, label %ifend5
|
|
then3:
|
|
%t13 = load ptr, ptr %t1
|
|
%t14 = call ptr @fn_arg_code(ptr %t13, i32 0)
|
|
store ptr %t14, ptr %t15
|
|
%t16 = load ptr, ptr %t1
|
|
%t17 = call ptr @fn_arg_code(ptr %t16, i32 1)
|
|
store ptr %t17, ptr %t18
|
|
%t19 = load ptr, ptr %t1
|
|
%t20 = call ptr @fn_arg_code(ptr %t19, i32 2)
|
|
store ptr %t20, ptr %t21
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = call ptr @fn_str_concat(ptr @.str621, ptr %t22)
|
|
%t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str622)
|
|
%t25 = call ptr @fn_emit_bind(ptr %t24)
|
|
store ptr %t25, ptr %t26
|
|
call void @fn_emit(ptr @.str623)
|
|
%t27 = load ptr, ptr %t15
|
|
call void @fn_emit(ptr %t27)
|
|
call void @fn_emit(ptr @.str624)
|
|
%t28 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t28)
|
|
call void @fn_emit(ptr @.str625)
|
|
%t29 = load ptr, ptr %t26
|
|
call void @fn_emit(ptr %t29)
|
|
call void @fn_emit(ptr @.str626)
|
|
%t30 = call ptr @fn_val(ptr @.str627, ptr @.str628)
|
|
store ptr %t30, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t31 = load ptr, ptr %t0
|
|
%t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str629)
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then6, label %ifend8
|
|
then6:
|
|
%t34 = load ptr, ptr %t1
|
|
%t35 = call ptr @fn_arg_code(ptr %t34, i32 0)
|
|
store ptr %t35, ptr %t36
|
|
%t37 = load ptr, ptr %t1
|
|
%t38 = call ptr @fn_arg_code(ptr %t37, i32 1)
|
|
store ptr %t38, ptr %t39
|
|
%t40 = call ptr @fn_nreg()
|
|
store ptr %t40, ptr %t41
|
|
call void @fn_emit(ptr @.str630)
|
|
%t42 = load ptr, ptr %t41
|
|
call void @fn_emit(ptr %t42)
|
|
call void @fn_emit(ptr @.str631)
|
|
%t43 = load ptr, ptr %t36
|
|
call void @fn_emit(ptr %t43)
|
|
call void @fn_emit(ptr @.str632)
|
|
%t44 = load ptr, ptr %t39
|
|
call void @fn_emit(ptr %t44)
|
|
call void @fn_emit(ptr @.str633)
|
|
%t45 = load ptr, ptr %t41
|
|
%t46 = call ptr @fn_val(ptr %t45, ptr @.str634)
|
|
store ptr %t46, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t47 = load ptr, ptr %t0
|
|
%t48 = call i32 @fn_str_eq(ptr %t47, ptr @.str635)
|
|
%t49 = icmp ne i32 %t48, 0
|
|
br i1 %t49, label %then9, label %ifend11
|
|
then9:
|
|
%t50 = call ptr @fn_emit_bind(ptr @.str636)
|
|
%t51 = call ptr @fn_val(ptr %t50, ptr @.str637)
|
|
store ptr %t51, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t52 = load ptr, ptr %t0
|
|
%t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str638)
|
|
%t54 = icmp ne i32 %t53, 0
|
|
br i1 %t54, label %then12, label %ifend14
|
|
then12:
|
|
%t55 = load ptr, ptr %t1
|
|
%t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 7
|
|
%t57 = load ptr, ptr %t56
|
|
%t58 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 0
|
|
%t59 = load ptr, ptr %t58
|
|
%t60 = getelementptr inbounds ptr, ptr %t59, i32 0
|
|
%t61 = load ptr, ptr %t60
|
|
%t62 = call ptr @fn_emit_expr(ptr %t61)
|
|
store ptr %t62, ptr %t63
|
|
%t64 = load ptr, ptr %t63
|
|
%t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 0
|
|
%t66 = load ptr, ptr %t65
|
|
%t67 = call ptr @fn_val(ptr %t66, ptr @.str639)
|
|
store ptr %t67, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
%t68 = load ptr, ptr %t0
|
|
%t69 = call i32 @fn_str_eq(ptr %t68, ptr @.str640)
|
|
%t70 = icmp ne i32 %t69, 0
|
|
br i1 %t70, label %then15, label %ifend17
|
|
then15:
|
|
%t71 = load ptr, ptr %t1
|
|
%t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 7
|
|
%t73 = load ptr, ptr %t72
|
|
%t74 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 0
|
|
%t75 = load ptr, ptr %t74
|
|
%t76 = getelementptr inbounds ptr, ptr %t75, i32 0
|
|
%t77 = load ptr, ptr %t76
|
|
%t78 = call ptr @fn_emit_expr(ptr %t77)
|
|
store ptr %t78, ptr %t79
|
|
%t80 = load ptr, ptr %t79
|
|
%t81 = getelementptr inbounds %Cmp_Val, ptr %t80, i32 0, i32 0
|
|
%t82 = load ptr, ptr %t81
|
|
%t83 = call ptr @fn_val(ptr %t82, ptr @.str641)
|
|
store ptr %t83, ptr %retval
|
|
br label %ret
|
|
ifend17:
|
|
%t84 = load ptr, ptr %t0
|
|
%t85 = call i32 @fn_str_eq(ptr %t84, ptr @.str642)
|
|
%t86 = icmp ne i32 %t85, 0
|
|
br i1 %t86, label %then18, label %ifend20
|
|
then18:
|
|
%t87 = load i32, ptr @g_g_windowed
|
|
%t88 = icmp ne i32 %t87, 0
|
|
br i1 %t88, label %then21, label %ifend23
|
|
then21:
|
|
%t89 = call ptr @fn_val(ptr @.str643, ptr @.str644)
|
|
store ptr %t89, ptr %retval
|
|
br label %ret
|
|
ifend23:
|
|
%t90 = call ptr @fn_val(ptr @.str645, ptr @.str646)
|
|
store ptr %t90, ptr %retval
|
|
br label %ret
|
|
ifend20:
|
|
%t91 = load ptr, ptr %t0
|
|
%t92 = call i32 @fn_str_eq(ptr %t91, ptr @.str647)
|
|
%t93 = icmp ne i32 %t92, 0
|
|
br i1 %t93, label %then24, label %ifend26
|
|
then24:
|
|
%t94 = call ptr @fn_val(ptr @.str648, ptr @.str649)
|
|
store ptr %t94, ptr %retval
|
|
br label %ret
|
|
ifend26:
|
|
%t95 = load ptr, ptr %t0
|
|
%t96 = call i32 @fn_str_eq(ptr %t95, ptr @.str650)
|
|
%t97 = icmp ne i32 %t96, 0
|
|
br i1 %t97, label %then27, label %ifend29
|
|
then27:
|
|
%t98 = call ptr @fn_emit_bind(ptr @.str651)
|
|
%t99 = call ptr @fn_val(ptr %t98, ptr @.str652)
|
|
store ptr %t99, ptr %retval
|
|
br label %ret
|
|
ifend29:
|
|
%t100 = load ptr, ptr %t0
|
|
%t101 = call i32 @fn_str_eq(ptr %t100, ptr @.str653)
|
|
%t102 = icmp ne i32 %t101, 0
|
|
br i1 %t102, label %then30, label %ifend32
|
|
then30:
|
|
%t103 = call ptr @fn_emit_bind(ptr @.str654)
|
|
%t104 = call ptr @fn_val(ptr %t103, ptr @.str655)
|
|
store ptr %t104, ptr %retval
|
|
br label %ret
|
|
ifend32:
|
|
%t105 = load ptr, ptr %t0
|
|
%t106 = call i32 @fn_str_eq(ptr %t105, ptr @.str656)
|
|
%t107 = icmp ne i32 %t106, 0
|
|
br i1 %t107, label %then33, label %ifend35
|
|
then33:
|
|
%t108 = load ptr, ptr %t1
|
|
%t109 = call ptr @fn_arg_code(ptr %t108, i32 0)
|
|
store ptr %t109, ptr %t110
|
|
%t111 = load ptr, ptr %t1
|
|
%t112 = call ptr @fn_arg_code(ptr %t111, i32 1)
|
|
store ptr %t112, ptr %t113
|
|
%t114 = load ptr, ptr %t1
|
|
%t115 = call ptr @fn_arg_code(ptr %t114, i32 2)
|
|
store ptr %t115, ptr %t116
|
|
%t117 = load ptr, ptr %t1
|
|
%t118 = call ptr @fn_arg_code(ptr %t117, i32 3)
|
|
store ptr %t118, ptr %t119
|
|
call void @fn_emit(ptr @.str657)
|
|
%t120 = load ptr, ptr %t110
|
|
call void @fn_emit(ptr %t120)
|
|
call void @fn_emit(ptr @.str658)
|
|
%t121 = load ptr, ptr %t113
|
|
call void @fn_emit(ptr %t121)
|
|
call void @fn_emit(ptr @.str659)
|
|
%t122 = load ptr, ptr %t116
|
|
call void @fn_emit(ptr %t122)
|
|
call void @fn_emit(ptr @.str660)
|
|
%t123 = load ptr, ptr %t119
|
|
call void @fn_emit(ptr %t123)
|
|
call void @fn_emit(ptr @.str661)
|
|
%t124 = call ptr @fn_val(ptr @.str662, ptr @.str663)
|
|
store ptr %t124, ptr %retval
|
|
br label %ret
|
|
ifend35:
|
|
%t125 = load ptr, ptr %t0
|
|
%t126 = call i32 @fn_str_eq(ptr %t125, ptr @.str664)
|
|
%t127 = icmp ne i32 %t126, 0
|
|
br i1 %t127, label %then36, label %ifend38
|
|
then36:
|
|
%t128 = load ptr, ptr %t1
|
|
%t129 = call ptr @fn_arg_code(ptr %t128, i32 0)
|
|
store ptr %t129, ptr %t130
|
|
%t131 = load ptr, ptr %t1
|
|
%t132 = call ptr @fn_arg_code(ptr %t131, i32 1)
|
|
store ptr %t132, ptr %t133
|
|
%t134 = load ptr, ptr %t1
|
|
%t135 = call ptr @fn_arg_code(ptr %t134, i32 2)
|
|
store ptr %t135, ptr %t136
|
|
call void @fn_emit(ptr @.str665)
|
|
%t137 = load ptr, ptr %t130
|
|
call void @fn_emit(ptr %t137)
|
|
call void @fn_emit(ptr @.str666)
|
|
%t138 = load ptr, ptr %t133
|
|
call void @fn_emit(ptr %t138)
|
|
call void @fn_emit(ptr @.str667)
|
|
%t139 = load ptr, ptr %t136
|
|
call void @fn_emit(ptr %t139)
|
|
call void @fn_emit(ptr @.str668)
|
|
%t140 = call ptr @fn_val(ptr @.str669, ptr @.str670)
|
|
store ptr %t140, ptr %retval
|
|
br label %ret
|
|
ifend38:
|
|
%t141 = load ptr, ptr %t0
|
|
%t142 = call i32 @fn_str_eq(ptr %t141, ptr @.str671)
|
|
%t143 = icmp ne i32 %t142, 0
|
|
br i1 %t143, label %then39, label %ifend41
|
|
then39:
|
|
call void @fn_emit(ptr @.str672)
|
|
%t144 = call ptr @fn_val(ptr @.str673, ptr @.str674)
|
|
store ptr %t144, ptr %retval
|
|
br label %ret
|
|
ifend41:
|
|
%t145 = call ptr @fn_val(ptr @.str675, ptr @.str676)
|
|
store ptr %t145, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t146 = load ptr, ptr %retval
|
|
ret ptr %t146
|
|
}
|
|
|
|
define i32 @fn_is_math_builtin(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str677)
|
|
%t6 = icmp ne i32 %t5, 0
|
|
%t7 = zext i1 %t6 to i32
|
|
store i32 %t7, ptr %t3
|
|
br i1 %t6, label %scend1, label %sc0
|
|
sc0:
|
|
%t8 = load ptr, ptr %t0
|
|
%t9 = call i32 @fn_str_eq(ptr %t8, ptr @.str678)
|
|
%t10 = icmp ne i32 %t9, 0
|
|
%t11 = zext i1 %t10 to i32
|
|
store i32 %t11, ptr %t3
|
|
br label %scend1
|
|
scend1:
|
|
%t12 = load i32, ptr %t3
|
|
%t13 = icmp ne i32 %t12, 0
|
|
%t14 = zext i1 %t13 to i32
|
|
store i32 %t14, ptr %t2
|
|
br i1 %t13, label %scend3, label %sc2
|
|
sc2:
|
|
%t15 = load ptr, ptr %t0
|
|
%t16 = call i32 @fn_str_eq(ptr %t15, ptr @.str679)
|
|
%t17 = icmp ne i32 %t16, 0
|
|
%t18 = zext i1 %t17 to i32
|
|
store i32 %t18, ptr %t2
|
|
br label %scend3
|
|
scend3:
|
|
%t19 = load i32, ptr %t2
|
|
%t20 = icmp ne i32 %t19, 0
|
|
%t21 = zext i1 %t20 to i32
|
|
store i32 %t21, ptr %t1
|
|
br i1 %t20, label %scend5, label %sc4
|
|
sc4:
|
|
%t22 = load ptr, ptr %t0
|
|
%t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str680)
|
|
%t24 = icmp ne i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
store i32 %t25, ptr %t1
|
|
br label %scend5
|
|
scend5:
|
|
%t26 = load i32, ptr %t1
|
|
store i32 %t26, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t27 = load i32, ptr %retval
|
|
ret i32 %t27
|
|
}
|
|
|
|
define ptr @fn_emit_math_builtin(ptr %arg_name, ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t13 = alloca ptr
|
|
%t20 = alloca ptr
|
|
%t26 = alloca ptr
|
|
%t39 = alloca i32
|
|
%t58 = alloca ptr
|
|
%t67 = alloca ptr
|
|
%t68 = alloca ptr
|
|
%t85 = alloca ptr
|
|
%t108 = alloca ptr
|
|
%t117 = alloca ptr
|
|
%t126 = alloca ptr
|
|
%t137 = alloca ptr
|
|
%t151 = alloca ptr
|
|
%t160 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
store ptr %arg_e, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str681)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
%t5 = load ptr, ptr %t1
|
|
%t6 = getelementptr inbounds %Cmp_Node, ptr %t5, i32 0, i32 7
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 0
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = getelementptr inbounds ptr, ptr %t9, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = call ptr @fn_emit_expr(ptr %t11)
|
|
store ptr %t12, ptr %t13
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = call ptr @fn_str_concat(ptr @.str682, ptr %t16)
|
|
%t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str683)
|
|
%t19 = call ptr @fn_emit_bind(ptr %t18)
|
|
store ptr %t19, ptr %t20
|
|
%t21 = load ptr, ptr %t13
|
|
%t22 = getelementptr inbounds %Cmp_Val, ptr %t21, i32 0, i32 0
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = call ptr @fn_str_concat(ptr @.str684, ptr %t23)
|
|
%t25 = call ptr @fn_emit_bind(ptr %t24)
|
|
store ptr %t25, ptr %t26
|
|
%t27 = load ptr, ptr %t20
|
|
%t28 = call ptr @fn_str_concat(ptr @.str685, ptr %t27)
|
|
%t29 = call ptr @fn_str_concat(ptr %t28, ptr @.str686)
|
|
%t30 = load ptr, ptr %t26
|
|
%t31 = call ptr @fn_str_concat(ptr %t29, ptr %t30)
|
|
%t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str687)
|
|
%t33 = load ptr, ptr %t13
|
|
%t34 = getelementptr inbounds %Cmp_Val, ptr %t33, i32 0, i32 0
|
|
%t35 = load ptr, ptr %t34
|
|
%t36 = call ptr @fn_str_concat(ptr %t32, ptr %t35)
|
|
%t37 = call ptr @fn_emit_bind(ptr %t36)
|
|
%t38 = call ptr @fn_val(ptr %t37, ptr @.str688)
|
|
store ptr %t38, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t40 = load ptr, ptr %t0
|
|
%t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str689)
|
|
%t42 = icmp ne i32 %t41, 0
|
|
%t43 = zext i1 %t42 to i32
|
|
store i32 %t43, ptr %t39
|
|
br i1 %t42, label %scend4, label %sc3
|
|
sc3:
|
|
%t44 = load ptr, ptr %t0
|
|
%t45 = call i32 @fn_str_eq(ptr %t44, ptr @.str690)
|
|
%t46 = icmp ne i32 %t45, 0
|
|
%t47 = zext i1 %t46 to i32
|
|
store i32 %t47, ptr %t39
|
|
br label %scend4
|
|
scend4:
|
|
%t48 = load i32, ptr %t39
|
|
%t49 = icmp ne i32 %t48, 0
|
|
br i1 %t49, label %then5, label %ifend7
|
|
then5:
|
|
%t50 = load ptr, ptr %t1
|
|
%t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 7
|
|
%t52 = load ptr, ptr %t51
|
|
%t53 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 0
|
|
%t54 = load ptr, ptr %t53
|
|
%t55 = getelementptr inbounds ptr, ptr %t54, i32 0
|
|
%t56 = load ptr, ptr %t55
|
|
%t57 = call ptr @fn_emit_expr(ptr %t56)
|
|
store ptr %t57, ptr %t58
|
|
%t59 = load ptr, ptr %t1
|
|
%t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 7
|
|
%t61 = load ptr, ptr %t60
|
|
%t62 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 0
|
|
%t63 = load ptr, ptr %t62
|
|
%t64 = getelementptr inbounds ptr, ptr %t63, i32 1
|
|
%t65 = load ptr, ptr %t64
|
|
%t66 = call ptr @fn_emit_expr(ptr %t65)
|
|
store ptr %t66, ptr %t67
|
|
store ptr @.str691, ptr %t68
|
|
%t69 = load ptr, ptr %t0
|
|
%t70 = call i32 @fn_str_eq(ptr %t69, ptr @.str692)
|
|
%t71 = icmp ne i32 %t70, 0
|
|
br i1 %t71, label %then8, label %ifend10
|
|
then8:
|
|
store ptr @.str693, ptr %t68
|
|
br label %ifend10
|
|
ifend10:
|
|
%t72 = load ptr, ptr %t68
|
|
%t73 = call ptr @fn_str_concat(ptr @.str694, ptr %t72)
|
|
%t74 = call ptr @fn_str_concat(ptr %t73, ptr @.str695)
|
|
%t75 = load ptr, ptr %t58
|
|
%t76 = getelementptr inbounds %Cmp_Val, ptr %t75, i32 0, i32 0
|
|
%t77 = load ptr, ptr %t76
|
|
%t78 = call ptr @fn_str_concat(ptr %t74, ptr %t77)
|
|
%t79 = call ptr @fn_str_concat(ptr %t78, ptr @.str696)
|
|
%t80 = load ptr, ptr %t67
|
|
%t81 = getelementptr inbounds %Cmp_Val, ptr %t80, i32 0, i32 0
|
|
%t82 = load ptr, ptr %t81
|
|
%t83 = call ptr @fn_str_concat(ptr %t79, ptr %t82)
|
|
%t84 = call ptr @fn_emit_bind(ptr %t83)
|
|
store ptr %t84, ptr %t85
|
|
%t86 = load ptr, ptr %t85
|
|
%t87 = call ptr @fn_str_concat(ptr @.str697, ptr %t86)
|
|
%t88 = call ptr @fn_str_concat(ptr %t87, ptr @.str698)
|
|
%t89 = load ptr, ptr %t58
|
|
%t90 = getelementptr inbounds %Cmp_Val, ptr %t89, i32 0, i32 0
|
|
%t91 = load ptr, ptr %t90
|
|
%t92 = call ptr @fn_str_concat(ptr %t88, ptr %t91)
|
|
%t93 = call ptr @fn_str_concat(ptr %t92, ptr @.str699)
|
|
%t94 = load ptr, ptr %t67
|
|
%t95 = getelementptr inbounds %Cmp_Val, ptr %t94, i32 0, i32 0
|
|
%t96 = load ptr, ptr %t95
|
|
%t97 = call ptr @fn_str_concat(ptr %t93, ptr %t96)
|
|
%t98 = call ptr @fn_emit_bind(ptr %t97)
|
|
%t99 = call ptr @fn_val(ptr %t98, ptr @.str700)
|
|
store ptr %t99, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t100 = load ptr, ptr %t1
|
|
%t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 7
|
|
%t102 = load ptr, ptr %t101
|
|
%t103 = getelementptr inbounds %LSlice, ptr %t102, i32 0, i32 0
|
|
%t104 = load ptr, ptr %t103
|
|
%t105 = getelementptr inbounds ptr, ptr %t104, i32 0
|
|
%t106 = load ptr, ptr %t105
|
|
%t107 = call ptr @fn_emit_expr(ptr %t106)
|
|
store ptr %t107, ptr %t108
|
|
%t109 = load ptr, ptr %t1
|
|
%t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 7
|
|
%t111 = load ptr, ptr %t110
|
|
%t112 = getelementptr inbounds %LSlice, ptr %t111, i32 0, i32 0
|
|
%t113 = load ptr, ptr %t112
|
|
%t114 = getelementptr inbounds ptr, ptr %t113, i32 1
|
|
%t115 = load ptr, ptr %t114
|
|
%t116 = call ptr @fn_emit_expr(ptr %t115)
|
|
store ptr %t116, ptr %t117
|
|
%t118 = load ptr, ptr %t1
|
|
%t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 7
|
|
%t120 = load ptr, ptr %t119
|
|
%t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0
|
|
%t122 = load ptr, ptr %t121
|
|
%t123 = getelementptr inbounds ptr, ptr %t122, i32 2
|
|
%t124 = load ptr, ptr %t123
|
|
%t125 = call ptr @fn_emit_expr(ptr %t124)
|
|
store ptr %t125, ptr %t126
|
|
%t127 = load ptr, ptr %t108
|
|
%t128 = getelementptr inbounds %Cmp_Val, ptr %t127, i32 0, i32 0
|
|
%t129 = load ptr, ptr %t128
|
|
%t130 = call ptr @fn_str_concat(ptr @.str701, ptr %t129)
|
|
%t131 = call ptr @fn_str_concat(ptr %t130, ptr @.str702)
|
|
%t132 = load ptr, ptr %t126
|
|
%t133 = getelementptr inbounds %Cmp_Val, ptr %t132, i32 0, i32 0
|
|
%t134 = load ptr, ptr %t133
|
|
%t135 = call ptr @fn_str_concat(ptr %t131, ptr %t134)
|
|
%t136 = call ptr @fn_emit_bind(ptr %t135)
|
|
store ptr %t136, ptr %t137
|
|
%t138 = load ptr, ptr %t137
|
|
%t139 = call ptr @fn_str_concat(ptr @.str703, ptr %t138)
|
|
%t140 = call ptr @fn_str_concat(ptr %t139, ptr @.str704)
|
|
%t141 = load ptr, ptr %t108
|
|
%t142 = getelementptr inbounds %Cmp_Val, ptr %t141, i32 0, i32 0
|
|
%t143 = load ptr, ptr %t142
|
|
%t144 = call ptr @fn_str_concat(ptr %t140, ptr %t143)
|
|
%t145 = call ptr @fn_str_concat(ptr %t144, ptr @.str705)
|
|
%t146 = load ptr, ptr %t126
|
|
%t147 = getelementptr inbounds %Cmp_Val, ptr %t146, i32 0, i32 0
|
|
%t148 = load ptr, ptr %t147
|
|
%t149 = call ptr @fn_str_concat(ptr %t145, ptr %t148)
|
|
%t150 = call ptr @fn_emit_bind(ptr %t149)
|
|
store ptr %t150, ptr %t151
|
|
%t152 = load ptr, ptr %t117
|
|
%t153 = getelementptr inbounds %Cmp_Val, ptr %t152, i32 0, i32 0
|
|
%t154 = load ptr, ptr %t153
|
|
%t155 = call ptr @fn_str_concat(ptr @.str706, ptr %t154)
|
|
%t156 = call ptr @fn_str_concat(ptr %t155, ptr @.str707)
|
|
%t157 = load ptr, ptr %t151
|
|
%t158 = call ptr @fn_str_concat(ptr %t156, ptr %t157)
|
|
%t159 = call ptr @fn_emit_bind(ptr %t158)
|
|
store ptr %t159, ptr %t160
|
|
%t161 = load ptr, ptr %t160
|
|
%t162 = call ptr @fn_str_concat(ptr @.str708, ptr %t161)
|
|
%t163 = call ptr @fn_str_concat(ptr %t162, ptr @.str709)
|
|
%t164 = load ptr, ptr %t117
|
|
%t165 = getelementptr inbounds %Cmp_Val, ptr %t164, i32 0, i32 0
|
|
%t166 = load ptr, ptr %t165
|
|
%t167 = call ptr @fn_str_concat(ptr %t163, ptr %t166)
|
|
%t168 = call ptr @fn_str_concat(ptr %t167, ptr @.str710)
|
|
%t169 = load ptr, ptr %t151
|
|
%t170 = call ptr @fn_str_concat(ptr %t168, ptr %t169)
|
|
%t171 = call ptr @fn_emit_bind(ptr %t170)
|
|
%t172 = call ptr @fn_val(ptr %t171, ptr @.str711)
|
|
store ptr %t172, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t173 = load ptr, ptr %retval
|
|
ret ptr %t173
|
|
}
|
|
|
|
define i32 @fn_color_lookup(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str712)
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %then0, label %ifend2
|
|
then0:
|
|
store i32 16777215, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str713)
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then3, label %ifend5
|
|
then3:
|
|
store i32 16775930, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str714)
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then6, label %ifend8
|
|
then6:
|
|
store i32 16777200, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str715)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then9, label %ifend11
|
|
then9:
|
|
store i32 15788758, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str716)
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then12, label %ifend14
|
|
then12:
|
|
store i32 16775920, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
%t16 = load ptr, ptr %t0
|
|
%t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str717)
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then15, label %ifend17
|
|
then15:
|
|
store i32 16774638, ptr %retval
|
|
br label %ret
|
|
ifend17:
|
|
%t19 = load ptr, ptr %t0
|
|
%t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str718)
|
|
%t21 = icmp ne i32 %t20, 0
|
|
br i1 %t21, label %then18, label %ifend20
|
|
then18:
|
|
store i32 16445670, ptr %retval
|
|
br label %ret
|
|
ifend20:
|
|
%t22 = load ptr, ptr %t0
|
|
%t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str719)
|
|
%t24 = icmp ne i32 %t23, 0
|
|
br i1 %t24, label %then21, label %ifend23
|
|
then21:
|
|
store i32 16444375, ptr %retval
|
|
br label %ret
|
|
ifend23:
|
|
%t25 = load ptr, ptr %t0
|
|
%t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str720)
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %then24, label %ifend26
|
|
then24:
|
|
store i32 16643558, ptr %retval
|
|
br label %ret
|
|
ifend26:
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str721)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then27, label %ifend29
|
|
then27:
|
|
store i32 16119260, ptr %retval
|
|
br label %ret
|
|
ifend29:
|
|
%t31 = load ptr, ptr %t0
|
|
%t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str722)
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then30, label %ifend32
|
|
then30:
|
|
store i32 16776656, ptr %retval
|
|
br label %ret
|
|
ifend32:
|
|
%t34 = load ptr, ptr %t0
|
|
%t35 = call i32 @fn_str_eq(ptr %t34, ptr @.str723)
|
|
%t36 = icmp ne i32 %t35, 0
|
|
br i1 %t36, label %then33, label %ifend35
|
|
then33:
|
|
store i32 15794160, ptr %retval
|
|
br label %ret
|
|
ifend35:
|
|
%t37 = load ptr, ptr %t0
|
|
%t38 = call i32 @fn_str_eq(ptr %t37, ptr @.str724)
|
|
%t39 = icmp ne i32 %t38, 0
|
|
br i1 %t39, label %then36, label %ifend38
|
|
then36:
|
|
store i32 16121850, ptr %retval
|
|
br label %ret
|
|
ifend38:
|
|
%t40 = load ptr, ptr %t0
|
|
%t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str725)
|
|
%t42 = icmp ne i32 %t41, 0
|
|
br i1 %t42, label %then39, label %ifend41
|
|
then39:
|
|
store i32 15794175, ptr %retval
|
|
br label %ret
|
|
ifend41:
|
|
%t43 = load ptr, ptr %t0
|
|
%t44 = call i32 @fn_str_eq(ptr %t43, ptr @.str726)
|
|
%t45 = icmp ne i32 %t44, 0
|
|
br i1 %t45, label %then42, label %ifend44
|
|
then42:
|
|
store i32 15792383, ptr %retval
|
|
br label %ret
|
|
ifend44:
|
|
%t46 = load ptr, ptr %t0
|
|
%t47 = call i32 @fn_str_eq(ptr %t46, ptr @.str727)
|
|
%t48 = icmp ne i32 %t47, 0
|
|
br i1 %t48, label %then45, label %ifend47
|
|
then45:
|
|
store i32 16316671, ptr %retval
|
|
br label %ret
|
|
ifend47:
|
|
%t49 = load ptr, ptr %t0
|
|
%t50 = call i32 @fn_str_eq(ptr %t49, ptr @.str728)
|
|
%t51 = icmp ne i32 %t50, 0
|
|
br i1 %t51, label %then48, label %ifend50
|
|
then48:
|
|
store i32 16119285, ptr %retval
|
|
br label %ret
|
|
ifend50:
|
|
%t52 = load ptr, ptr %t0
|
|
%t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str729)
|
|
%t54 = icmp ne i32 %t53, 0
|
|
br i1 %t54, label %then51, label %ifend53
|
|
then51:
|
|
store i32 15132410, ptr %retval
|
|
br label %ret
|
|
ifend53:
|
|
%t55 = load ptr, ptr %t0
|
|
%t56 = call i32 @fn_str_eq(ptr %t55, ptr @.str730)
|
|
%t57 = icmp ne i32 %t56, 0
|
|
br i1 %t57, label %then54, label %ifend56
|
|
then54:
|
|
store i32 14932681, ptr %retval
|
|
br label %ret
|
|
ifend56:
|
|
%t58 = load ptr, ptr %t0
|
|
%t59 = call i32 @fn_str_eq(ptr %t58, ptr @.str731)
|
|
%t60 = icmp ne i32 %t59, 0
|
|
br i1 %t60, label %then57, label %ifend59
|
|
then57:
|
|
store i32 15854034, ptr %retval
|
|
br label %ret
|
|
ifend59:
|
|
%t61 = load ptr, ptr %t0
|
|
%t62 = call i32 @fn_str_eq(ptr %t61, ptr @.str732)
|
|
%t63 = icmp ne i32 %t62, 0
|
|
br i1 %t63, label %then60, label %ifend62
|
|
then60:
|
|
store i32 14474460, ptr %retval
|
|
br label %ret
|
|
ifend62:
|
|
%t64 = load ptr, ptr %t0
|
|
%t65 = call i32 @fn_str_eq(ptr %t64, ptr @.str733)
|
|
%t66 = icmp ne i32 %t65, 0
|
|
br i1 %t66, label %then63, label %ifend65
|
|
then63:
|
|
store i32 13882323, ptr %retval
|
|
br label %ret
|
|
ifend65:
|
|
%t67 = load ptr, ptr %t0
|
|
%t68 = call i32 @fn_str_eq(ptr %t67, ptr @.str734)
|
|
%t69 = icmp ne i32 %t68, 0
|
|
br i1 %t69, label %then66, label %ifend68
|
|
then66:
|
|
store i32 12632256, ptr %retval
|
|
br label %ret
|
|
ifend68:
|
|
%t70 = load ptr, ptr %t0
|
|
%t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str735)
|
|
%t72 = icmp ne i32 %t71, 0
|
|
br i1 %t72, label %then69, label %ifend71
|
|
then69:
|
|
store i32 11714229, ptr %retval
|
|
br label %ret
|
|
ifend71:
|
|
%t73 = load ptr, ptr %t0
|
|
%t74 = call i32 @fn_str_eq(ptr %t73, ptr @.str736)
|
|
%t75 = icmp ne i32 %t74, 0
|
|
br i1 %t75, label %then72, label %ifend74
|
|
then72:
|
|
store i32 11119017, ptr %retval
|
|
br label %ret
|
|
ifend74:
|
|
%t76 = load ptr, ptr %t0
|
|
%t77 = call i32 @fn_str_eq(ptr %t76, ptr @.str737)
|
|
%t78 = icmp ne i32 %t77, 0
|
|
br i1 %t78, label %then75, label %ifend77
|
|
then75:
|
|
store i32 8421504, ptr %retval
|
|
br label %ret
|
|
ifend77:
|
|
%t79 = load ptr, ptr %t0
|
|
%t80 = call i32 @fn_str_eq(ptr %t79, ptr @.str738)
|
|
%t81 = icmp ne i32 %t80, 0
|
|
br i1 %t81, label %then78, label %ifend80
|
|
then78:
|
|
store i32 6908265, ptr %retval
|
|
br label %ret
|
|
ifend80:
|
|
%t82 = load ptr, ptr %t0
|
|
%t83 = call i32 @fn_str_eq(ptr %t82, ptr @.str739)
|
|
%t84 = icmp ne i32 %t83, 0
|
|
br i1 %t84, label %then81, label %ifend83
|
|
then81:
|
|
store i32 7500914, ptr %retval
|
|
br label %ret
|
|
ifend83:
|
|
%t85 = load ptr, ptr %t0
|
|
%t86 = call i32 @fn_str_eq(ptr %t85, ptr @.str740)
|
|
%t87 = icmp ne i32 %t86, 0
|
|
br i1 %t87, label %then84, label %ifend86
|
|
then84:
|
|
store i32 7372944, ptr %retval
|
|
br label %ret
|
|
ifend86:
|
|
%t88 = load ptr, ptr %t0
|
|
%t89 = call i32 @fn_str_eq(ptr %t88, ptr @.str741)
|
|
%t90 = icmp ne i32 %t89, 0
|
|
br i1 %t90, label %then87, label %ifend89
|
|
then87:
|
|
store i32 7372944, ptr %retval
|
|
br label %ret
|
|
ifend89:
|
|
%t91 = load ptr, ptr %t0
|
|
%t92 = call i32 @fn_str_eq(ptr %t91, ptr @.str742)
|
|
%t93 = icmp ne i32 %t92, 0
|
|
br i1 %t93, label %then90, label %ifend92
|
|
then90:
|
|
store i32 7833753, ptr %retval
|
|
br label %ret
|
|
ifend92:
|
|
%t94 = load ptr, ptr %t0
|
|
%t95 = call i32 @fn_str_eq(ptr %t94, ptr @.str743)
|
|
%t96 = icmp ne i32 %t95, 0
|
|
br i1 %t96, label %then93, label %ifend95
|
|
then93:
|
|
store i32 2765881, ptr %retval
|
|
br label %ret
|
|
ifend95:
|
|
%t97 = load ptr, ptr %t0
|
|
%t98 = call i32 @fn_str_eq(ptr %t97, ptr @.str744)
|
|
%t99 = icmp ne i32 %t98, 0
|
|
br i1 %t99, label %then96, label %ifend98
|
|
then96:
|
|
store i32 3556687, ptr %retval
|
|
br label %ret
|
|
ifend98:
|
|
%t100 = load ptr, ptr %t0
|
|
%t101 = call i32 @fn_str_eq(ptr %t100, ptr @.str745)
|
|
%t102 = icmp ne i32 %t101, 0
|
|
br i1 %t102, label %then99, label %ifend101
|
|
then99:
|
|
store i32 1842204, ptr %retval
|
|
br label %ret
|
|
ifend101:
|
|
%t103 = load ptr, ptr %t0
|
|
%t104 = call i32 @fn_str_eq(ptr %t103, ptr @.str746)
|
|
%t105 = icmp ne i32 %t104, 0
|
|
br i1 %t105, label %then102, label %ifend104
|
|
then102:
|
|
store i32 3487801, ptr %retval
|
|
br label %ret
|
|
ifend104:
|
|
%t106 = load ptr, ptr %t0
|
|
%t107 = call i32 @fn_str_eq(ptr %t106, ptr @.str747)
|
|
%t108 = icmp ne i32 %t107, 0
|
|
br i1 %t108, label %then105, label %ifend107
|
|
then105:
|
|
store i32 3421236, ptr %retval
|
|
br label %ret
|
|
ifend107:
|
|
%t109 = load ptr, ptr %t0
|
|
%t110 = call i32 @fn_str_eq(ptr %t109, ptr @.str748)
|
|
%t111 = icmp ne i32 %t110, 0
|
|
br i1 %t111, label %then108, label %ifend110
|
|
then108:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ifend110:
|
|
%t112 = load ptr, ptr %t0
|
|
%t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str749)
|
|
%t114 = icmp ne i32 %t113, 0
|
|
br i1 %t114, label %then111, label %ifend113
|
|
then111:
|
|
store i32 1776411, ptr %retval
|
|
br label %ret
|
|
ifend113:
|
|
%t115 = load ptr, ptr %t0
|
|
%t116 = call i32 @fn_str_eq(ptr %t115, ptr @.str750)
|
|
%t117 = icmp ne i32 %t116, 0
|
|
br i1 %t117, label %then114, label %ifend116
|
|
then114:
|
|
store i32 2367780, ptr %retval
|
|
br label %ret
|
|
ifend116:
|
|
%t118 = load ptr, ptr %t0
|
|
%t119 = call i32 @fn_str_eq(ptr %t118, ptr @.str751)
|
|
%t120 = icmp ne i32 %t119, 0
|
|
br i1 %t120, label %then117, label %ifend119
|
|
then117:
|
|
store i32 5594448, ptr %retval
|
|
br label %ret
|
|
ifend119:
|
|
%t121 = load ptr, ptr %t0
|
|
%t122 = call i32 @fn_str_eq(ptr %t121, ptr @.str752)
|
|
%t123 = icmp ne i32 %t122, 0
|
|
br i1 %t123, label %then120, label %ifend122
|
|
then120:
|
|
store i32 16711680, ptr %retval
|
|
br label %ret
|
|
ifend122:
|
|
%t124 = load ptr, ptr %t0
|
|
%t125 = call i32 @fn_str_eq(ptr %t124, ptr @.str753)
|
|
%t126 = icmp ne i32 %t125, 0
|
|
br i1 %t126, label %then123, label %ifend125
|
|
then123:
|
|
store i32 14423100, ptr %retval
|
|
br label %ret
|
|
ifend125:
|
|
%t127 = load ptr, ptr %t0
|
|
%t128 = call i32 @fn_str_eq(ptr %t127, ptr @.str754)
|
|
%t129 = icmp ne i32 %t128, 0
|
|
br i1 %t129, label %then126, label %ifend128
|
|
then126:
|
|
store i32 16720896, ptr %retval
|
|
br label %ret
|
|
ifend128:
|
|
%t130 = load ptr, ptr %t0
|
|
%t131 = call i32 @fn_str_eq(ptr %t130, ptr @.str755)
|
|
%t132 = icmp ne i32 %t131, 0
|
|
br i1 %t132, label %then129, label %ifend131
|
|
then129:
|
|
store i32 14893620, ptr %retval
|
|
br label %ret
|
|
ifend131:
|
|
%t133 = load ptr, ptr %t0
|
|
%t134 = call i32 @fn_str_eq(ptr %t133, ptr @.str756)
|
|
%t135 = icmp ne i32 %t134, 0
|
|
br i1 %t135, label %then132, label %ifend134
|
|
then132:
|
|
store i32 11674146, ptr %retval
|
|
br label %ret
|
|
ifend134:
|
|
%t136 = load ptr, ptr %t0
|
|
%t137 = call i32 @fn_str_eq(ptr %t136, ptr @.str757)
|
|
%t138 = icmp ne i32 %t137, 0
|
|
br i1 %t138, label %then135, label %ifend137
|
|
then135:
|
|
store i32 14961966, ptr %retval
|
|
br label %ret
|
|
ifend137:
|
|
%t139 = load ptr, ptr %t0
|
|
%t140 = call i32 @fn_str_eq(ptr %t139, ptr @.str758)
|
|
%t141 = icmp ne i32 %t140, 0
|
|
br i1 %t141, label %then138, label %ifend140
|
|
then138:
|
|
store i32 9109504, ptr %retval
|
|
br label %ret
|
|
ifend140:
|
|
%t142 = load ptr, ptr %t0
|
|
%t143 = call i32 @fn_str_eq(ptr %t142, ptr @.str759)
|
|
%t144 = icmp ne i32 %t143, 0
|
|
br i1 %t144, label %then141, label %ifend143
|
|
then141:
|
|
store i32 8388608, ptr %retval
|
|
br label %ret
|
|
ifend143:
|
|
%t145 = load ptr, ptr %t0
|
|
%t146 = call i32 @fn_str_eq(ptr %t145, ptr @.str760)
|
|
%t147 = icmp ne i32 %t146, 0
|
|
br i1 %t147, label %then144, label %ifend146
|
|
then144:
|
|
store i32 14684511, ptr %retval
|
|
br label %ret
|
|
ifend146:
|
|
%t148 = load ptr, ptr %t0
|
|
%t149 = call i32 @fn_str_eq(ptr %t148, ptr @.str761)
|
|
%t150 = icmp ne i32 %t149, 0
|
|
br i1 %t150, label %then147, label %ifend149
|
|
then147:
|
|
store i32 12852794, ptr %retval
|
|
br label %ret
|
|
ifend149:
|
|
%t151 = load ptr, ptr %t0
|
|
%t152 = call i32 @fn_str_eq(ptr %t151, ptr @.str762)
|
|
%t153 = icmp ne i32 %t152, 0
|
|
br i1 %t153, label %then150, label %ifend152
|
|
then150:
|
|
store i32 13458524, ptr %retval
|
|
br label %ret
|
|
ifend152:
|
|
%t154 = load ptr, ptr %t0
|
|
%t155 = call i32 @fn_str_eq(ptr %t154, ptr @.str763)
|
|
%t156 = icmp ne i32 %t155, 0
|
|
br i1 %t156, label %then153, label %ifend155
|
|
then153:
|
|
store i32 12009742, ptr %retval
|
|
br label %ret
|
|
ifend155:
|
|
%t157 = load ptr, ptr %t0
|
|
%t158 = call i32 @fn_str_eq(ptr %t157, ptr @.str764)
|
|
%t159 = icmp ne i32 %t158, 0
|
|
br i1 %t159, label %then156, label %ifend158
|
|
then156:
|
|
store i32 9568266, ptr %retval
|
|
br label %ret
|
|
ifend158:
|
|
%t160 = load ptr, ptr %t0
|
|
%t161 = call i32 @fn_str_eq(ptr %t160, ptr @.str765)
|
|
%t162 = icmp ne i32 %t161, 0
|
|
br i1 %t162, label %then159, label %ifend161
|
|
then159:
|
|
store i32 10771026, ptr %retval
|
|
br label %ret
|
|
ifend161:
|
|
%t163 = load ptr, ptr %t0
|
|
%t164 = call i32 @fn_str_eq(ptr %t163, ptr @.str766)
|
|
%t165 = icmp ne i32 %t164, 0
|
|
br i1 %t165, label %then162, label %ifend164
|
|
then162:
|
|
store i32 14561635, ptr %retval
|
|
br label %ret
|
|
ifend164:
|
|
%t166 = load ptr, ptr %t0
|
|
%t167 = call i32 @fn_str_eq(ptr %t166, ptr @.str767)
|
|
%t168 = icmp ne i32 %t167, 0
|
|
br i1 %t168, label %then165, label %ifend167
|
|
then165:
|
|
store i32 15018832, ptr %retval
|
|
br label %ret
|
|
ifend167:
|
|
%t169 = load ptr, ptr %t0
|
|
%t170 = call i32 @fn_str_eq(ptr %t169, ptr @.str768)
|
|
%t171 = icmp ne i32 %t170, 0
|
|
br i1 %t171, label %then168, label %ifend170
|
|
then168:
|
|
store i32 9830424, ptr %retval
|
|
br label %ret
|
|
ifend170:
|
|
%t172 = load ptr, ptr %t0
|
|
%t173 = call i32 @fn_str_eq(ptr %t172, ptr @.str769)
|
|
%t174 = icmp ne i32 %t173, 0
|
|
br i1 %t174, label %then171, label %ifend173
|
|
then171:
|
|
store i32 9782581, ptr %retval
|
|
br label %ret
|
|
ifend173:
|
|
%t175 = load ptr, ptr %t0
|
|
%t176 = call i32 @fn_str_eq(ptr %t175, ptr @.str770)
|
|
%t177 = icmp ne i32 %t176, 0
|
|
br i1 %t177, label %then174, label %ifend176
|
|
then174:
|
|
store i32 13320532, ptr %retval
|
|
br label %ret
|
|
ifend176:
|
|
%t178 = load ptr, ptr %t0
|
|
%t179 = call i32 @fn_str_eq(ptr %t178, ptr @.str771)
|
|
%t180 = icmp ne i32 %t179, 0
|
|
br i1 %t180, label %then177, label %ifend179
|
|
then177:
|
|
store i32 14840411, ptr %retval
|
|
br label %ret
|
|
ifend179:
|
|
%t181 = load ptr, ptr %t0
|
|
%t182 = call i32 @fn_str_eq(ptr %t181, ptr @.str772)
|
|
%t183 = icmp ne i32 %t182, 0
|
|
br i1 %t183, label %then180, label %ifend182
|
|
then180:
|
|
store i32 16761035, ptr %retval
|
|
br label %ret
|
|
ifend182:
|
|
%t184 = load ptr, ptr %t0
|
|
%t185 = call i32 @fn_str_eq(ptr %t184, ptr @.str773)
|
|
%t186 = icmp ne i32 %t185, 0
|
|
br i1 %t186, label %then183, label %ifend185
|
|
then183:
|
|
store i32 16758465, ptr %retval
|
|
br label %ret
|
|
ifend185:
|
|
%t187 = load ptr, ptr %t0
|
|
%t188 = call i32 @fn_str_eq(ptr %t187, ptr @.str774)
|
|
%t189 = icmp ne i32 %t188, 0
|
|
br i1 %t189, label %then186, label %ifend188
|
|
then186:
|
|
store i32 16738740, ptr %retval
|
|
br label %ret
|
|
ifend188:
|
|
%t190 = load ptr, ptr %t0
|
|
%t191 = call i32 @fn_str_eq(ptr %t190, ptr @.str775)
|
|
%t192 = icmp ne i32 %t191, 0
|
|
br i1 %t192, label %then189, label %ifend191
|
|
then189:
|
|
store i32 16716947, ptr %retval
|
|
br label %ret
|
|
ifend191:
|
|
%t193 = load ptr, ptr %t0
|
|
%t194 = call i32 @fn_str_eq(ptr %t193, ptr @.str776)
|
|
%t195 = icmp ne i32 %t194, 0
|
|
br i1 %t195, label %then192, label %ifend194
|
|
then192:
|
|
store i32 14381203, ptr %retval
|
|
br label %ret
|
|
ifend194:
|
|
%t196 = load ptr, ptr %t0
|
|
%t197 = call i32 @fn_str_eq(ptr %t196, ptr @.str777)
|
|
%t198 = icmp ne i32 %t197, 0
|
|
br i1 %t198, label %then195, label %ifend197
|
|
then195:
|
|
store i32 16711807, ptr %retval
|
|
br label %ret
|
|
ifend197:
|
|
%t199 = load ptr, ptr %t0
|
|
%t200 = call i32 @fn_str_eq(ptr %t199, ptr @.str778)
|
|
%t201 = icmp ne i32 %t200, 0
|
|
br i1 %t201, label %then198, label %ifend200
|
|
then198:
|
|
store i32 14572931, ptr %retval
|
|
br label %ret
|
|
ifend200:
|
|
%t202 = load ptr, ptr %t0
|
|
%t203 = call i32 @fn_str_eq(ptr %t202, ptr @.str779)
|
|
%t204 = icmp ne i32 %t203, 0
|
|
br i1 %t204, label %then201, label %ifend203
|
|
then201:
|
|
store i32 16416882, ptr %retval
|
|
br label %ret
|
|
ifend203:
|
|
%t205 = load ptr, ptr %t0
|
|
%t206 = call i32 @fn_str_eq(ptr %t205, ptr @.str780)
|
|
%t207 = icmp ne i32 %t206, 0
|
|
br i1 %t207, label %then204, label %ifend206
|
|
then204:
|
|
store i32 16752762, ptr %retval
|
|
br label %ret
|
|
ifend206:
|
|
%t208 = load ptr, ptr %t0
|
|
%t209 = call i32 @fn_str_eq(ptr %t208, ptr @.str781)
|
|
%t210 = icmp ne i32 %t209, 0
|
|
br i1 %t210, label %then207, label %ifend209
|
|
then207:
|
|
store i32 15308410, ptr %retval
|
|
br label %ret
|
|
ifend209:
|
|
%t211 = load ptr, ptr %t0
|
|
%t212 = call i32 @fn_str_eq(ptr %t211, ptr @.str782)
|
|
%t213 = icmp ne i32 %t212, 0
|
|
br i1 %t213, label %then210, label %ifend212
|
|
then210:
|
|
store i32 16744272, ptr %retval
|
|
br label %ret
|
|
ifend212:
|
|
%t214 = load ptr, ptr %t0
|
|
%t215 = call i32 @fn_str_eq(ptr %t214, ptr @.str783)
|
|
%t216 = icmp ne i32 %t215, 0
|
|
br i1 %t216, label %then213, label %ifend215
|
|
then213:
|
|
store i32 16542853, ptr %retval
|
|
br label %ret
|
|
ifend215:
|
|
%t217 = load ptr, ptr %t0
|
|
%t218 = call i32 @fn_str_eq(ptr %t217, ptr @.str784)
|
|
%t219 = icmp ne i32 %t218, 0
|
|
br i1 %t219, label %then216, label %ifend218
|
|
then216:
|
|
store i32 16551596, ptr %retval
|
|
br label %ret
|
|
ifend218:
|
|
%t220 = load ptr, ptr %t0
|
|
%t221 = call i32 @fn_str_eq(ptr %t220, ptr @.str785)
|
|
%t222 = icmp ne i32 %t221, 0
|
|
br i1 %t222, label %then219, label %ifend221
|
|
then219:
|
|
store i32 16761292, ptr %retval
|
|
br label %ret
|
|
ifend221:
|
|
%t223 = load ptr, ptr %t0
|
|
%t224 = call i32 @fn_str_eq(ptr %t223, ptr @.str786)
|
|
%t225 = icmp ne i32 %t224, 0
|
|
br i1 %t225, label %then222, label %ifend224
|
|
then222:
|
|
store i32 16711935, ptr %retval
|
|
br label %ret
|
|
ifend224:
|
|
%t226 = load ptr, ptr %t0
|
|
%t227 = call i32 @fn_str_eq(ptr %t226, ptr @.str787)
|
|
%t228 = icmp ne i32 %t227, 0
|
|
br i1 %t228, label %then225, label %ifend227
|
|
then225:
|
|
store i32 16711935, ptr %retval
|
|
br label %ret
|
|
ifend227:
|
|
%t229 = load ptr, ptr %t0
|
|
%t230 = call i32 @fn_str_eq(ptr %t229, ptr @.str788)
|
|
%t231 = icmp ne i32 %t230, 0
|
|
br i1 %t231, label %then228, label %ifend230
|
|
then228:
|
|
store i32 14725375, ptr %retval
|
|
br label %ret
|
|
ifend230:
|
|
%t232 = load ptr, ptr %t0
|
|
%t233 = call i32 @fn_str_eq(ptr %t232, ptr @.str789)
|
|
%t234 = icmp ne i32 %t233, 0
|
|
br i1 %t234, label %then231, label %ifend233
|
|
then231:
|
|
store i32 13404313, ptr %retval
|
|
br label %ret
|
|
ifend233:
|
|
%t235 = load ptr, ptr %t0
|
|
%t236 = call i32 @fn_str_eq(ptr %t235, ptr @.str790)
|
|
%t237 = icmp ne i32 %t236, 0
|
|
br i1 %t237, label %then234, label %ifend236
|
|
then234:
|
|
store i32 14204888, ptr %retval
|
|
br label %ret
|
|
ifend236:
|
|
%t238 = load ptr, ptr %t0
|
|
%t239 = call i32 @fn_str_eq(ptr %t238, ptr @.str791)
|
|
%t240 = icmp ne i32 %t239, 0
|
|
br i1 %t240, label %then237, label %ifend239
|
|
then237:
|
|
store i32 14315734, ptr %retval
|
|
br label %ret
|
|
ifend239:
|
|
%t241 = load ptr, ptr %t0
|
|
%t242 = call i32 @fn_str_eq(ptr %t241, ptr @.str792)
|
|
%t243 = icmp ne i32 %t242, 0
|
|
br i1 %t243, label %then240, label %ifend242
|
|
then240:
|
|
store i32 16753920, ptr %retval
|
|
br label %ret
|
|
ifend242:
|
|
%t244 = load ptr, ptr %t0
|
|
%t245 = call i32 @fn_str_eq(ptr %t244, ptr @.str793)
|
|
%t246 = icmp ne i32 %t245, 0
|
|
br i1 %t246, label %then243, label %ifend245
|
|
then243:
|
|
store i32 16747520, ptr %retval
|
|
br label %ret
|
|
ifend245:
|
|
%t247 = load ptr, ptr %t0
|
|
%t248 = call i32 @fn_str_eq(ptr %t247, ptr @.str794)
|
|
%t249 = icmp ne i32 %t248, 0
|
|
br i1 %t249, label %then246, label %ifend248
|
|
then246:
|
|
store i32 15893760, ptr %retval
|
|
br label %ret
|
|
ifend248:
|
|
%t250 = load ptr, ptr %t0
|
|
%t251 = call i32 @fn_str_eq(ptr %t250, ptr @.str795)
|
|
%t252 = icmp ne i32 %t251, 0
|
|
br i1 %t252, label %then249, label %ifend251
|
|
then249:
|
|
store i32 16741656, ptr %retval
|
|
br label %ret
|
|
ifend251:
|
|
%t253 = load ptr, ptr %t0
|
|
%t254 = call i32 @fn_str_eq(ptr %t253, ptr @.str796)
|
|
%t255 = icmp ne i32 %t254, 0
|
|
br i1 %t255, label %then252, label %ifend254
|
|
then252:
|
|
store i32 16502449, ptr %retval
|
|
br label %ret
|
|
ifend254:
|
|
%t256 = load ptr, ptr %t0
|
|
%t257 = call i32 @fn_str_eq(ptr %t256, ptr @.str797)
|
|
%t258 = icmp ne i32 %t257, 0
|
|
br i1 %t258, label %then255, label %ifend257
|
|
then255:
|
|
store i32 16770484, ptr %retval
|
|
br label %ret
|
|
ifend257:
|
|
%t259 = load ptr, ptr %t0
|
|
%t260 = call i32 @fn_str_eq(ptr %t259, ptr @.str798)
|
|
%t261 = icmp ne i32 %t260, 0
|
|
br i1 %t261, label %then258, label %ifend260
|
|
then258:
|
|
store i32 16754219, ptr %retval
|
|
br label %ret
|
|
ifend260:
|
|
%t262 = load ptr, ptr %t0
|
|
%t263 = call i32 @fn_str_eq(ptr %t262, ptr @.str799)
|
|
%t264 = icmp ne i32 %t263, 0
|
|
br i1 %t264, label %then261, label %ifend263
|
|
then261:
|
|
store i32 16760576, ptr %retval
|
|
br label %ret
|
|
ifend263:
|
|
%t265 = load ptr, ptr %t0
|
|
%t266 = call i32 @fn_str_eq(ptr %t265, ptr @.str800)
|
|
%t267 = icmp ne i32 %t266, 0
|
|
br i1 %t267, label %then264, label %ifend266
|
|
then264:
|
|
store i32 13467442, ptr %retval
|
|
br label %ret
|
|
ifend266:
|
|
%t268 = load ptr, ptr %t0
|
|
%t269 = call i32 @fn_str_eq(ptr %t268, ptr @.str801)
|
|
%t270 = icmp ne i32 %t269, 0
|
|
br i1 %t270, label %then267, label %ifend269
|
|
then267:
|
|
store i32 12088115, ptr %retval
|
|
br label %ret
|
|
ifend269:
|
|
%t271 = load ptr, ptr %t0
|
|
%t272 = call i32 @fn_str_eq(ptr %t271, ptr @.str802)
|
|
%t273 = icmp ne i32 %t272, 0
|
|
br i1 %t273, label %then270, label %ifend272
|
|
then270:
|
|
store i32 15376929, ptr %retval
|
|
br label %ret
|
|
ifend272:
|
|
%t274 = load ptr, ptr %t0
|
|
%t275 = call i32 @fn_str_eq(ptr %t274, ptr @.str803)
|
|
%t276 = icmp ne i32 %t275, 0
|
|
br i1 %t276, label %then273, label %ifend275
|
|
then273:
|
|
store i32 15569185, ptr %retval
|
|
br label %ret
|
|
ifend275:
|
|
%t277 = load ptr, ptr %t0
|
|
%t278 = call i32 @fn_str_eq(ptr %t277, ptr @.str804)
|
|
%t279 = icmp ne i32 %t278, 0
|
|
br i1 %t279, label %then276, label %ifend278
|
|
then276:
|
|
store i32 15489024, ptr %retval
|
|
br label %ret
|
|
ifend278:
|
|
%t280 = load ptr, ptr %t0
|
|
%t281 = call i32 @fn_str_eq(ptr %t280, ptr @.str805)
|
|
%t282 = icmp ne i32 %t281, 0
|
|
br i1 %t282, label %then279, label %ifend281
|
|
then279:
|
|
store i32 16752172, ptr %retval
|
|
br label %ret
|
|
ifend281:
|
|
%t283 = load ptr, ptr %t0
|
|
%t284 = call i32 @fn_str_eq(ptr %t283, ptr @.str806)
|
|
%t285 = icmp ne i32 %t284, 0
|
|
br i1 %t285, label %then282, label %ifend284
|
|
then282:
|
|
store i32 16438949, ptr %retval
|
|
br label %ret
|
|
ifend284:
|
|
%t286 = load ptr, ptr %t0
|
|
%t287 = call i32 @fn_str_eq(ptr %t286, ptr @.str807)
|
|
%t288 = icmp ne i32 %t287, 0
|
|
br i1 %t288, label %then285, label %ifend287
|
|
then285:
|
|
store i32 16776960, ptr %retval
|
|
br label %ret
|
|
ifend287:
|
|
%t289 = load ptr, ptr %t0
|
|
%t290 = call i32 @fn_str_eq(ptr %t289, ptr @.str808)
|
|
%t291 = icmp ne i32 %t290, 0
|
|
br i1 %t291, label %then288, label %ifend290
|
|
then288:
|
|
store i32 16777184, ptr %retval
|
|
br label %ret
|
|
ifend290:
|
|
%t292 = load ptr, ptr %t0
|
|
%t293 = call i32 @fn_str_eq(ptr %t292, ptr @.str809)
|
|
%t294 = icmp ne i32 %t293, 0
|
|
br i1 %t294, label %then291, label %ifend293
|
|
then291:
|
|
store i32 16766720, ptr %retval
|
|
br label %ret
|
|
ifend293:
|
|
%t295 = load ptr, ptr %t0
|
|
%t296 = call i32 @fn_str_eq(ptr %t295, ptr @.str810)
|
|
%t297 = icmp ne i32 %t296, 0
|
|
br i1 %t297, label %then294, label %ifend296
|
|
then294:
|
|
store i32 14329120, ptr %retval
|
|
br label %ret
|
|
ifend296:
|
|
%t298 = load ptr, ptr %t0
|
|
%t299 = call i32 @fn_str_eq(ptr %t298, ptr @.str811)
|
|
%t300 = icmp ne i32 %t299, 0
|
|
br i1 %t300, label %then297, label %ifend299
|
|
then297:
|
|
store i32 16774912, ptr %retval
|
|
br label %ret
|
|
ifend299:
|
|
%t301 = load ptr, ptr %t0
|
|
%t302 = call i32 @fn_str_eq(ptr %t301, ptr @.str812)
|
|
%t303 = icmp ne i32 %t302, 0
|
|
br i1 %t303, label %then300, label %ifend302
|
|
then300:
|
|
store i32 16772864, ptr %retval
|
|
br label %ret
|
|
ifend302:
|
|
%t304 = load ptr, ptr %t0
|
|
%t305 = call i32 @fn_str_eq(ptr %t304, ptr @.str813)
|
|
%t306 = icmp ne i32 %t305, 0
|
|
br i1 %t306, label %then303, label %ifend305
|
|
then303:
|
|
store i32 16767832, ptr %retval
|
|
br label %ret
|
|
ifend305:
|
|
%t307 = load ptr, ptr %t0
|
|
%t308 = call i32 @fn_str_eq(ptr %t307, ptr @.str814)
|
|
%t309 = icmp ne i32 %t308, 0
|
|
br i1 %t309, label %then306, label %ifend308
|
|
then306:
|
|
store i32 15654018, ptr %retval
|
|
br label %ret
|
|
ifend308:
|
|
%t310 = load ptr, ptr %t0
|
|
%t311 = call i32 @fn_str_eq(ptr %t310, ptr @.str815)
|
|
%t312 = icmp ne i32 %t311, 0
|
|
br i1 %t312, label %then309, label %ifend311
|
|
then309:
|
|
store i32 16113331, ptr %retval
|
|
br label %ret
|
|
ifend311:
|
|
%t313 = load ptr, ptr %t0
|
|
%t314 = call i32 @fn_str_eq(ptr %t313, ptr @.str816)
|
|
%t315 = icmp ne i32 %t314, 0
|
|
br i1 %t315, label %then312, label %ifend314
|
|
then312:
|
|
store i32 16510045, ptr %retval
|
|
br label %ret
|
|
ifend314:
|
|
%t316 = load ptr, ptr %t0
|
|
%t317 = call i32 @fn_str_eq(ptr %t316, ptr @.str817)
|
|
%t318 = icmp ne i32 %t317, 0
|
|
br i1 %t318, label %then315, label %ifend317
|
|
then315:
|
|
store i32 15786288, ptr %retval
|
|
br label %ret
|
|
ifend317:
|
|
%t319 = load ptr, ptr %t0
|
|
%t320 = call i32 @fn_str_eq(ptr %t319, ptr @.str818)
|
|
%t321 = icmp ne i32 %t320, 0
|
|
br i1 %t321, label %then318, label %ifend320
|
|
then318:
|
|
store i32 16041008, ptr %retval
|
|
br label %ret
|
|
ifend320:
|
|
%t322 = load ptr, ptr %t0
|
|
%t323 = call i32 @fn_str_eq(ptr %t322, ptr @.str819)
|
|
%t324 = icmp ne i32 %t323, 0
|
|
br i1 %t324, label %then321, label %ifend323
|
|
then321:
|
|
store i32 15787660, ptr %retval
|
|
br label %ret
|
|
ifend323:
|
|
%t325 = load ptr, ptr %t0
|
|
%t326 = call i32 @fn_str_eq(ptr %t325, ptr @.str820)
|
|
%t327 = icmp ne i32 %t326, 0
|
|
br i1 %t327, label %then324, label %ifend326
|
|
then324:
|
|
store i32 12433259, ptr %retval
|
|
br label %ret
|
|
ifend326:
|
|
%t328 = load ptr, ptr %t0
|
|
%t329 = call i32 @fn_str_eq(ptr %t328, ptr @.str821)
|
|
%t330 = icmp ne i32 %t329, 0
|
|
br i1 %t330, label %then327, label %ifend329
|
|
then327:
|
|
store i32 14997871, ptr %retval
|
|
br label %ret
|
|
ifend329:
|
|
%t331 = load ptr, ptr %t0
|
|
%t332 = call i32 @fn_str_eq(ptr %t331, ptr @.str822)
|
|
%t333 = icmp ne i32 %t332, 0
|
|
br i1 %t333, label %then330, label %ifend332
|
|
then330:
|
|
store i32 9127187, ptr %retval
|
|
br label %ret
|
|
ifend332:
|
|
%t334 = load ptr, ptr %t0
|
|
%t335 = call i32 @fn_str_eq(ptr %t334, ptr @.str823)
|
|
%t336 = icmp ne i32 %t335, 0
|
|
br i1 %t336, label %then333, label %ifend335
|
|
then333:
|
|
store i32 9127187, ptr %retval
|
|
br label %ret
|
|
ifend335:
|
|
%t337 = load ptr, ptr %t0
|
|
%t338 = call i32 @fn_str_eq(ptr %t337, ptr @.str824)
|
|
%t339 = icmp ne i32 %t338, 0
|
|
br i1 %t339, label %then336, label %ifend338
|
|
then336:
|
|
store i32 10506797, ptr %retval
|
|
br label %ret
|
|
ifend338:
|
|
%t340 = load ptr, ptr %t0
|
|
%t341 = call i32 @fn_str_eq(ptr %t340, ptr @.str825)
|
|
%t342 = icmp ne i32 %t341, 0
|
|
br i1 %t342, label %then339, label %ifend341
|
|
then339:
|
|
store i32 13789470, ptr %retval
|
|
br label %ret
|
|
ifend341:
|
|
%t343 = load ptr, ptr %t0
|
|
%t344 = call i32 @fn_str_eq(ptr %t343, ptr @.str826)
|
|
%t345 = icmp ne i32 %t344, 0
|
|
br i1 %t345, label %then342, label %ifend344
|
|
then342:
|
|
store i32 13468991, ptr %retval
|
|
br label %ret
|
|
ifend344:
|
|
%t346 = load ptr, ptr %t0
|
|
%t347 = call i32 @fn_str_eq(ptr %t346, ptr @.str827)
|
|
%t348 = icmp ne i32 %t347, 0
|
|
br i1 %t348, label %then345, label %ifend347
|
|
then345:
|
|
store i32 13808780, ptr %retval
|
|
br label %ret
|
|
ifend347:
|
|
%t349 = load ptr, ptr %t0
|
|
%t350 = call i32 @fn_str_eq(ptr %t349, ptr @.str828)
|
|
%t351 = icmp ne i32 %t350, 0
|
|
br i1 %t351, label %then348, label %ifend350
|
|
then348:
|
|
store i32 14596231, ptr %retval
|
|
br label %ret
|
|
ifend350:
|
|
%t352 = load ptr, ptr %t0
|
|
%t353 = call i32 @fn_str_eq(ptr %t352, ptr @.str829)
|
|
%t354 = icmp ne i32 %t353, 0
|
|
br i1 %t354, label %then351, label %ifend353
|
|
then351:
|
|
store i32 12759680, ptr %retval
|
|
br label %ret
|
|
ifend353:
|
|
%t355 = load ptr, ptr %t0
|
|
%t356 = call i32 @fn_str_eq(ptr %t355, ptr @.str830)
|
|
%t357 = icmp ne i32 %t356, 0
|
|
br i1 %t357, label %then354, label %ifend356
|
|
then354:
|
|
store i32 7294519, ptr %retval
|
|
br label %ret
|
|
ifend356:
|
|
%t358 = load ptr, ptr %t0
|
|
%t359 = call i32 @fn_str_eq(ptr %t358, ptr @.str831)
|
|
%t360 = icmp ne i32 %t359, 0
|
|
br i1 %t360, label %then357, label %ifend359
|
|
then357:
|
|
store i32 4929057, ptr %retval
|
|
br label %ret
|
|
ifend359:
|
|
%t361 = load ptr, ptr %t0
|
|
%t362 = call i32 @fn_str_eq(ptr %t361, ptr @.str832)
|
|
%t363 = icmp ne i32 %t362, 0
|
|
br i1 %t363, label %then360, label %ifend362
|
|
then360:
|
|
store i32 12599296, ptr %retval
|
|
br label %ret
|
|
ifend362:
|
|
%t364 = load ptr, ptr %t0
|
|
%t365 = call i32 @fn_str_eq(ptr %t364, ptr @.str833)
|
|
%t366 = icmp ne i32 %t365, 0
|
|
br i1 %t366, label %then363, label %ifend365
|
|
then363:
|
|
store i32 7814938, ptr %retval
|
|
br label %ret
|
|
ifend365:
|
|
%t367 = load ptr, ptr %t0
|
|
%t368 = call i32 @fn_str_eq(ptr %t367, ptr @.str834)
|
|
%t369 = icmp ne i32 %t368, 0
|
|
br i1 %t369, label %then366, label %ifend368
|
|
then366:
|
|
store i32 6508871, ptr %retval
|
|
br label %ret
|
|
ifend368:
|
|
%t370 = load ptr, ptr %t0
|
|
%t371 = call i32 @fn_str_eq(ptr %t370, ptr @.str835)
|
|
%t372 = icmp ne i32 %t371, 0
|
|
br i1 %t372, label %then369, label %ifend371
|
|
then369:
|
|
store i32 7356948, ptr %retval
|
|
br label %ret
|
|
ifend371:
|
|
%t373 = load ptr, ptr %t0
|
|
%t374 = call i32 @fn_str_eq(ptr %t373, ptr @.str836)
|
|
%t375 = icmp ne i32 %t374, 0
|
|
br i1 %t375, label %then372, label %ifend374
|
|
then372:
|
|
store i32 4734002, ptr %retval
|
|
br label %ret
|
|
ifend374:
|
|
%t376 = load ptr, ptr %t0
|
|
%t377 = call i32 @fn_str_eq(ptr %t376, ptr @.str837)
|
|
%t378 = icmp ne i32 %t377, 0
|
|
br i1 %t378, label %then375, label %ifend377
|
|
then375:
|
|
store i32 15051376, ptr %retval
|
|
br label %ret
|
|
ifend377:
|
|
%t379 = load ptr, ptr %t0
|
|
%t380 = call i32 @fn_str_eq(ptr %t379, ptr @.str838)
|
|
%t381 = icmp ne i32 %t380, 0
|
|
br i1 %t381, label %then378, label %ifend380
|
|
then378:
|
|
store i32 13012503, ptr %retval
|
|
br label %ret
|
|
ifend380:
|
|
%t382 = load ptr, ptr %t0
|
|
%t383 = call i32 @fn_str_eq(ptr %t382, ptr @.str839)
|
|
%t384 = icmp ne i32 %t383, 0
|
|
br i1 %t384, label %then381, label %ifend383
|
|
then381:
|
|
store i32 13789470, ptr %retval
|
|
br label %ret
|
|
ifend383:
|
|
%t385 = load ptr, ptr %t0
|
|
%t386 = call i32 @fn_str_eq(ptr %t385, ptr @.str840)
|
|
%t387 = icmp ne i32 %t386, 0
|
|
br i1 %t387, label %then384, label %ifend386
|
|
then384:
|
|
store i32 9336344, ptr %retval
|
|
br label %ret
|
|
ifend386:
|
|
%t388 = load ptr, ptr %t0
|
|
%t389 = call i32 @fn_str_eq(ptr %t388, ptr @.str841)
|
|
%t390 = icmp ne i32 %t389, 0
|
|
br i1 %t390, label %then387, label %ifend389
|
|
then387:
|
|
store i32 6575186, ptr %retval
|
|
br label %ret
|
|
ifend389:
|
|
%t391 = load ptr, ptr %t0
|
|
%t392 = call i32 @fn_str_eq(ptr %t391, ptr @.str842)
|
|
%t393 = icmp ne i32 %t392, 0
|
|
br i1 %t393, label %then390, label %ifend392
|
|
then390:
|
|
store i32 32768, ptr %retval
|
|
br label %ret
|
|
ifend392:
|
|
%t394 = load ptr, ptr %t0
|
|
%t395 = call i32 @fn_str_eq(ptr %t394, ptr @.str843)
|
|
%t396 = icmp ne i32 %t395, 0
|
|
br i1 %t396, label %then393, label %ifend395
|
|
then393:
|
|
store i32 65280, ptr %retval
|
|
br label %ret
|
|
ifend395:
|
|
%t397 = load ptr, ptr %t0
|
|
%t398 = call i32 @fn_str_eq(ptr %t397, ptr @.str844)
|
|
%t399 = icmp ne i32 %t398, 0
|
|
br i1 %t399, label %then396, label %ifend398
|
|
then396:
|
|
store i32 3329330, ptr %retval
|
|
br label %ret
|
|
ifend398:
|
|
%t400 = load ptr, ptr %t0
|
|
%t401 = call i32 @fn_str_eq(ptr %t400, ptr @.str845)
|
|
%t402 = icmp ne i32 %t401, 0
|
|
br i1 %t402, label %then399, label %ifend401
|
|
then399:
|
|
store i32 8190976, ptr %retval
|
|
br label %ret
|
|
ifend401:
|
|
%t403 = load ptr, ptr %t0
|
|
%t404 = call i32 @fn_str_eq(ptr %t403, ptr @.str846)
|
|
%t405 = icmp ne i32 %t404, 0
|
|
br i1 %t405, label %then402, label %ifend404
|
|
then402:
|
|
store i32 8388352, ptr %retval
|
|
br label %ret
|
|
ifend404:
|
|
%t406 = load ptr, ptr %t0
|
|
%t407 = call i32 @fn_str_eq(ptr %t406, ptr @.str847)
|
|
%t408 = icmp ne i32 %t407, 0
|
|
br i1 %t408, label %then405, label %ifend407
|
|
then405:
|
|
store i32 11403055, ptr %retval
|
|
br label %ret
|
|
ifend407:
|
|
%t409 = load ptr, ptr %t0
|
|
%t410 = call i32 @fn_str_eq(ptr %t409, ptr @.str848)
|
|
%t411 = icmp ne i32 %t410, 0
|
|
br i1 %t411, label %then408, label %ifend410
|
|
then408:
|
|
store i32 65407, ptr %retval
|
|
br label %ret
|
|
ifend410:
|
|
%t412 = load ptr, ptr %t0
|
|
%t413 = call i32 @fn_str_eq(ptr %t412, ptr @.str849)
|
|
%t414 = icmp ne i32 %t413, 0
|
|
br i1 %t414, label %then411, label %ifend413
|
|
then411:
|
|
store i32 10026904, ptr %retval
|
|
br label %ret
|
|
ifend413:
|
|
%t415 = load ptr, ptr %t0
|
|
%t416 = call i32 @fn_str_eq(ptr %t415, ptr @.str850)
|
|
%t417 = icmp ne i32 %t416, 0
|
|
br i1 %t417, label %then414, label %ifend416
|
|
then414:
|
|
store i32 3050327, ptr %retval
|
|
br label %ret
|
|
ifend416:
|
|
%t418 = load ptr, ptr %t0
|
|
%t419 = call i32 @fn_str_eq(ptr %t418, ptr @.str851)
|
|
%t420 = icmp ne i32 %t419, 0
|
|
br i1 %t420, label %then417, label %ifend419
|
|
then417:
|
|
store i32 3978097, ptr %retval
|
|
br label %ret
|
|
ifend419:
|
|
%t421 = load ptr, ptr %t0
|
|
%t422 = call i32 @fn_str_eq(ptr %t421, ptr @.str852)
|
|
%t423 = icmp ne i32 %t422, 0
|
|
br i1 %t423, label %then420, label %ifend422
|
|
then420:
|
|
store i32 2263842, ptr %retval
|
|
br label %ret
|
|
ifend422:
|
|
%t424 = load ptr, ptr %t0
|
|
%t425 = call i32 @fn_str_eq(ptr %t424, ptr @.str853)
|
|
%t426 = icmp ne i32 %t425, 0
|
|
br i1 %t426, label %then423, label %ifend425
|
|
then423:
|
|
store i32 25600, ptr %retval
|
|
br label %ret
|
|
ifend425:
|
|
%t427 = load ptr, ptr %t0
|
|
%t428 = call i32 @fn_str_eq(ptr %t427, ptr @.str854)
|
|
%t429 = icmp ne i32 %t428, 0
|
|
br i1 %t429, label %then426, label %ifend428
|
|
then426:
|
|
store i32 7048739, ptr %retval
|
|
br label %ret
|
|
ifend428:
|
|
%t430 = load ptr, ptr %t0
|
|
%t431 = call i32 @fn_str_eq(ptr %t430, ptr @.str855)
|
|
%t432 = icmp ne i32 %t431, 0
|
|
br i1 %t432, label %then429, label %ifend431
|
|
then429:
|
|
store i32 8421376, ptr %retval
|
|
br label %ret
|
|
ifend431:
|
|
%t433 = load ptr, ptr %t0
|
|
%t434 = call i32 @fn_str_eq(ptr %t433, ptr @.str856)
|
|
%t435 = icmp ne i32 %t434, 0
|
|
br i1 %t435, label %then432, label %ifend434
|
|
then432:
|
|
store i32 9083483, ptr %retval
|
|
br label %ret
|
|
ifend434:
|
|
%t436 = load ptr, ptr %t0
|
|
%t437 = call i32 @fn_str_eq(ptr %t436, ptr @.str857)
|
|
%t438 = icmp ne i32 %t437, 0
|
|
br i1 %t438, label %then435, label %ifend437
|
|
then435:
|
|
store i32 5208386, ptr %retval
|
|
br label %ret
|
|
ifend437:
|
|
%t439 = load ptr, ptr %t0
|
|
%t440 = call i32 @fn_str_eq(ptr %t439, ptr @.str858)
|
|
%t441 = icmp ne i32 %t440, 0
|
|
br i1 %t441, label %then438, label %ifend440
|
|
then438:
|
|
store i32 5294200, ptr %retval
|
|
br label %ret
|
|
ifend440:
|
|
%t442 = load ptr, ptr %t0
|
|
%t443 = call i32 @fn_str_eq(ptr %t442, ptr @.str859)
|
|
%t444 = icmp ne i32 %t443, 0
|
|
br i1 %t444, label %then441, label %ifend443
|
|
then441:
|
|
store i32 43115, ptr %retval
|
|
br label %ret
|
|
ifend443:
|
|
%t445 = load ptr, ptr %t0
|
|
%t446 = call i32 @fn_str_eq(ptr %t445, ptr @.str860)
|
|
%t447 = icmp ne i32 %t446, 0
|
|
br i1 %t447, label %then444, label %ifend446
|
|
then444:
|
|
store i32 776785, ptr %retval
|
|
br label %ret
|
|
ifend446:
|
|
%t448 = load ptr, ptr %t0
|
|
%t449 = call i32 @fn_str_eq(ptr %t448, ptr @.str861)
|
|
%t450 = icmp ne i32 %t449, 0
|
|
br i1 %t450, label %then447, label %ifend449
|
|
then447:
|
|
store i32 40544, ptr %retval
|
|
br label %ret
|
|
ifend449:
|
|
%t451 = load ptr, ptr %t0
|
|
%t452 = call i32 @fn_str_eq(ptr %t451, ptr @.str862)
|
|
%t453 = icmp ne i32 %t452, 0
|
|
br i1 %t453, label %then450, label %ifend452
|
|
then450:
|
|
store i32 9684338, ptr %retval
|
|
br label %ret
|
|
ifend452:
|
|
%t454 = load ptr, ptr %t0
|
|
%t455 = call i32 @fn_str_eq(ptr %t454, ptr @.str863)
|
|
%t456 = icmp ne i32 %t455, 0
|
|
br i1 %t456, label %then453, label %ifend455
|
|
then453:
|
|
store i32 5669379, ptr %retval
|
|
br label %ret
|
|
ifend455:
|
|
%t457 = load ptr, ptr %t0
|
|
%t458 = call i32 @fn_str_eq(ptr %t457, ptr @.str864)
|
|
%t459 = icmp ne i32 %t458, 0
|
|
br i1 %t459, label %then456, label %ifend458
|
|
then456:
|
|
store i32 96623, ptr %retval
|
|
br label %ret
|
|
ifend458:
|
|
%t460 = load ptr, ptr %t0
|
|
%t461 = call i32 @fn_str_eq(ptr %t460, ptr @.str865)
|
|
%t462 = icmp ne i32 %t461, 0
|
|
br i1 %t462, label %then459, label %ifend461
|
|
then459:
|
|
store i32 10268552, ptr %retval
|
|
br label %ret
|
|
ifend461:
|
|
%t463 = load ptr, ptr %t0
|
|
%t464 = call i32 @fn_str_eq(ptr %t463, ptr @.str866)
|
|
%t465 = icmp ne i32 %t464, 0
|
|
br i1 %t465, label %then462, label %ifend464
|
|
then462:
|
|
store i32 5028631, ptr %retval
|
|
br label %ret
|
|
ifend464:
|
|
%t466 = load ptr, ptr %t0
|
|
%t467 = call i32 @fn_str_eq(ptr %t466, ptr @.str867)
|
|
%t468 = icmp ne i32 %t467, 0
|
|
br i1 %t468, label %then465, label %ifend467
|
|
then465:
|
|
store i32 3497531, ptr %retval
|
|
br label %ret
|
|
ifend467:
|
|
%t469 = load ptr, ptr %t0
|
|
%t470 = call i32 @fn_str_eq(ptr %t469, ptr @.str868)
|
|
%t471 = icmp ne i32 %t470, 0
|
|
br i1 %t471, label %then468, label %ifend470
|
|
then468:
|
|
store i32 5739049, ptr %retval
|
|
br label %ret
|
|
ifend470:
|
|
%t472 = load ptr, ptr %t0
|
|
%t473 = call i32 @fn_str_eq(ptr %t472, ptr @.str869)
|
|
%t474 = icmp ne i32 %t473, 0
|
|
br i1 %t474, label %then471, label %ifend473
|
|
then471:
|
|
store i32 3050327, ptr %retval
|
|
br label %ret
|
|
ifend473:
|
|
%t475 = load ptr, ptr %t0
|
|
%t476 = call i32 @fn_str_eq(ptr %t475, ptr @.str870)
|
|
%t477 = icmp ne i32 %t476, 0
|
|
br i1 %t477, label %then474, label %ifend476
|
|
then474:
|
|
store i32 7182969, ptr %retval
|
|
br label %ret
|
|
ifend476:
|
|
%t478 = load ptr, ptr %t0
|
|
%t479 = call i32 @fn_str_eq(ptr %t478, ptr @.str871)
|
|
%t480 = icmp ne i32 %t479, 0
|
|
br i1 %t480, label %then477, label %ifend479
|
|
then477:
|
|
store i32 3800852, ptr %retval
|
|
br label %ret
|
|
ifend479:
|
|
%t481 = load ptr, ptr %t0
|
|
%t482 = call i32 @fn_str_eq(ptr %t481, ptr @.str872)
|
|
%t483 = icmp ne i32 %t482, 0
|
|
br i1 %t483, label %then480, label %ifend482
|
|
then480:
|
|
store i32 65535, ptr %retval
|
|
br label %ret
|
|
ifend482:
|
|
%t484 = load ptr, ptr %t0
|
|
%t485 = call i32 @fn_str_eq(ptr %t484, ptr @.str873)
|
|
%t486 = icmp ne i32 %t485, 0
|
|
br i1 %t486, label %then483, label %ifend485
|
|
then483:
|
|
store i32 65535, ptr %retval
|
|
br label %ret
|
|
ifend485:
|
|
%t487 = load ptr, ptr %t0
|
|
%t488 = call i32 @fn_str_eq(ptr %t487, ptr @.str874)
|
|
%t489 = icmp ne i32 %t488, 0
|
|
br i1 %t489, label %then486, label %ifend488
|
|
then486:
|
|
store i32 14745599, ptr %retval
|
|
br label %ret
|
|
ifend488:
|
|
%t490 = load ptr, ptr %t0
|
|
%t491 = call i32 @fn_str_eq(ptr %t490, ptr @.str875)
|
|
%t492 = icmp ne i32 %t491, 0
|
|
br i1 %t492, label %then489, label %ifend491
|
|
then489:
|
|
store i32 11529966, ptr %retval
|
|
br label %ret
|
|
ifend491:
|
|
%t493 = load ptr, ptr %t0
|
|
%t494 = call i32 @fn_str_eq(ptr %t493, ptr @.str876)
|
|
%t495 = icmp ne i32 %t494, 0
|
|
br i1 %t495, label %then492, label %ifend494
|
|
then492:
|
|
store i32 8388564, ptr %retval
|
|
br label %ret
|
|
ifend494:
|
|
%t496 = load ptr, ptr %t0
|
|
%t497 = call i32 @fn_str_eq(ptr %t496, ptr @.str877)
|
|
%t498 = icmp ne i32 %t497, 0
|
|
br i1 %t498, label %then495, label %ifend497
|
|
then495:
|
|
store i32 4251856, ptr %retval
|
|
br label %ret
|
|
ifend497:
|
|
%t499 = load ptr, ptr %t0
|
|
%t500 = call i32 @fn_str_eq(ptr %t499, ptr @.str878)
|
|
%t501 = icmp ne i32 %t500, 0
|
|
br i1 %t501, label %then498, label %ifend500
|
|
then498:
|
|
store i32 4772300, ptr %retval
|
|
br label %ret
|
|
ifend500:
|
|
%t502 = load ptr, ptr %t0
|
|
%t503 = call i32 @fn_str_eq(ptr %t502, ptr @.str879)
|
|
%t504 = icmp ne i32 %t503, 0
|
|
br i1 %t504, label %then501, label %ifend503
|
|
then501:
|
|
store i32 52945, ptr %retval
|
|
br label %ret
|
|
ifend503:
|
|
%t505 = load ptr, ptr %t0
|
|
%t506 = call i32 @fn_str_eq(ptr %t505, ptr @.str880)
|
|
%t507 = icmp ne i32 %t506, 0
|
|
br i1 %t507, label %then504, label %ifend506
|
|
then504:
|
|
store i32 32896, ptr %retval
|
|
br label %ret
|
|
ifend506:
|
|
%t508 = load ptr, ptr %t0
|
|
%t509 = call i32 @fn_str_eq(ptr %t508, ptr @.str881)
|
|
%t510 = icmp ne i32 %t509, 0
|
|
br i1 %t510, label %then507, label %ifend509
|
|
then507:
|
|
store i32 35723, ptr %retval
|
|
br label %ret
|
|
ifend509:
|
|
%t511 = load ptr, ptr %t0
|
|
%t512 = call i32 @fn_str_eq(ptr %t511, ptr @.str882)
|
|
%t513 = icmp ne i32 %t512, 0
|
|
br i1 %t513, label %then510, label %ifend512
|
|
then510:
|
|
store i32 6266528, ptr %retval
|
|
br label %ret
|
|
ifend512:
|
|
%t514 = load ptr, ptr %t0
|
|
%t515 = call i32 @fn_str_eq(ptr %t514, ptr @.str883)
|
|
%t516 = icmp ne i32 %t515, 0
|
|
br i1 %t516, label %then513, label %ifend515
|
|
then513:
|
|
store i32 102030, ptr %retval
|
|
br label %ret
|
|
ifend515:
|
|
%t517 = load ptr, ptr %t0
|
|
%t518 = call i32 @fn_str_eq(ptr %t517, ptr @.str884)
|
|
%t519 = icmp ne i32 %t518, 0
|
|
br i1 %t519, label %then516, label %ifend518
|
|
then516:
|
|
store i32 9693630, ptr %retval
|
|
br label %ret
|
|
ifend518:
|
|
%t520 = load ptr, ptr %t0
|
|
%t521 = call i32 @fn_str_eq(ptr %t520, ptr @.str885)
|
|
%t522 = icmp ne i32 %t521, 0
|
|
br i1 %t522, label %then519, label %ifend521
|
|
then519:
|
|
store i32 31655, ptr %retval
|
|
br label %ret
|
|
ifend521:
|
|
%t523 = load ptr, ptr %t0
|
|
%t524 = call i32 @fn_str_eq(ptr %t523, ptr @.str886)
|
|
%t525 = icmp ne i32 %t524, 0
|
|
br i1 %t525, label %then522, label %ifend524
|
|
then522:
|
|
store i32 8444651, ptr %retval
|
|
br label %ret
|
|
ifend524:
|
|
%t526 = load ptr, ptr %t0
|
|
%t527 = call i32 @fn_str_eq(ptr %t526, ptr @.str887)
|
|
%t528 = icmp ne i32 %t527, 0
|
|
br i1 %t528, label %then525, label %ifend527
|
|
then525:
|
|
store i32 52428, ptr %retval
|
|
br label %ret
|
|
ifend527:
|
|
%t529 = load ptr, ptr %t0
|
|
%t530 = call i32 @fn_str_eq(ptr %t529, ptr @.str888)
|
|
%t531 = icmp ne i32 %t530, 0
|
|
br i1 %t531, label %then528, label %ifend530
|
|
then528:
|
|
store i32 4436910, ptr %retval
|
|
br label %ret
|
|
ifend530:
|
|
%t532 = load ptr, ptr %t0
|
|
%t533 = call i32 @fn_str_eq(ptr %t532, ptr @.str889)
|
|
%t534 = icmp ne i32 %t533, 0
|
|
br i1 %t534, label %then531, label %ifend533
|
|
then531:
|
|
store i32 11329967, ptr %retval
|
|
br label %ret
|
|
ifend533:
|
|
%t535 = load ptr, ptr %t0
|
|
%t536 = call i32 @fn_str_eq(ptr %t535, ptr @.str890)
|
|
%t537 = icmp ne i32 %t536, 0
|
|
br i1 %t537, label %then534, label %ifend536
|
|
then534:
|
|
store i32 255, ptr %retval
|
|
br label %ret
|
|
ifend536:
|
|
%t538 = load ptr, ptr %t0
|
|
%t539 = call i32 @fn_str_eq(ptr %t538, ptr @.str891)
|
|
%t540 = icmp ne i32 %t539, 0
|
|
br i1 %t540, label %then537, label %ifend539
|
|
then537:
|
|
store i32 11393254, ptr %retval
|
|
br label %ret
|
|
ifend539:
|
|
%t541 = load ptr, ptr %t0
|
|
%t542 = call i32 @fn_str_eq(ptr %t541, ptr @.str892)
|
|
%t543 = icmp ne i32 %t542, 0
|
|
br i1 %t543, label %then540, label %ifend542
|
|
then540:
|
|
store i32 11591910, ptr %retval
|
|
br label %ret
|
|
ifend542:
|
|
%t544 = load ptr, ptr %t0
|
|
%t545 = call i32 @fn_str_eq(ptr %t544, ptr @.str893)
|
|
%t546 = icmp ne i32 %t545, 0
|
|
br i1 %t546, label %then543, label %ifend545
|
|
then543:
|
|
store i32 8900331, ptr %retval
|
|
br label %ret
|
|
ifend545:
|
|
%t547 = load ptr, ptr %t0
|
|
%t548 = call i32 @fn_str_eq(ptr %t547, ptr @.str894)
|
|
%t549 = icmp ne i32 %t548, 0
|
|
br i1 %t549, label %then546, label %ifend548
|
|
then546:
|
|
store i32 8900346, ptr %retval
|
|
br label %ret
|
|
ifend548:
|
|
%t550 = load ptr, ptr %t0
|
|
%t551 = call i32 @fn_str_eq(ptr %t550, ptr @.str895)
|
|
%t552 = icmp ne i32 %t551, 0
|
|
br i1 %t552, label %then549, label %ifend551
|
|
then549:
|
|
store i32 49151, ptr %retval
|
|
br label %ret
|
|
ifend551:
|
|
%t553 = load ptr, ptr %t0
|
|
%t554 = call i32 @fn_str_eq(ptr %t553, ptr @.str896)
|
|
%t555 = icmp ne i32 %t554, 0
|
|
br i1 %t555, label %then552, label %ifend554
|
|
then552:
|
|
store i32 2003199, ptr %retval
|
|
br label %ret
|
|
ifend554:
|
|
%t556 = load ptr, ptr %t0
|
|
%t557 = call i32 @fn_str_eq(ptr %t556, ptr @.str897)
|
|
%t558 = icmp ne i32 %t557, 0
|
|
br i1 %t558, label %then555, label %ifend557
|
|
then555:
|
|
store i32 6591981, ptr %retval
|
|
br label %ret
|
|
ifend557:
|
|
%t559 = load ptr, ptr %t0
|
|
%t560 = call i32 @fn_str_eq(ptr %t559, ptr @.str898)
|
|
%t561 = icmp ne i32 %t560, 0
|
|
br i1 %t561, label %then558, label %ifend560
|
|
then558:
|
|
store i32 4620980, ptr %retval
|
|
br label %ret
|
|
ifend560:
|
|
%t562 = load ptr, ptr %t0
|
|
%t563 = call i32 @fn_str_eq(ptr %t562, ptr @.str899)
|
|
%t564 = icmp ne i32 %t563, 0
|
|
br i1 %t564, label %then561, label %ifend563
|
|
then561:
|
|
store i32 4286945, ptr %retval
|
|
br label %ret
|
|
ifend563:
|
|
%t565 = load ptr, ptr %t0
|
|
%t566 = call i32 @fn_str_eq(ptr %t565, ptr @.str900)
|
|
%t567 = icmp ne i32 %t566, 0
|
|
br i1 %t567, label %then564, label %ifend566
|
|
then564:
|
|
store i32 205, ptr %retval
|
|
br label %ret
|
|
ifend566:
|
|
%t568 = load ptr, ptr %t0
|
|
%t569 = call i32 @fn_str_eq(ptr %t568, ptr @.str901)
|
|
%t570 = icmp ne i32 %t569, 0
|
|
br i1 %t570, label %then567, label %ifend569
|
|
then567:
|
|
store i32 139, ptr %retval
|
|
br label %ret
|
|
ifend569:
|
|
%t571 = load ptr, ptr %t0
|
|
%t572 = call i32 @fn_str_eq(ptr %t571, ptr @.str902)
|
|
%t573 = icmp ne i32 %t572, 0
|
|
br i1 %t573, label %then570, label %ifend572
|
|
then570:
|
|
store i32 128, ptr %retval
|
|
br label %ret
|
|
ifend572:
|
|
%t574 = load ptr, ptr %t0
|
|
%t575 = call i32 @fn_str_eq(ptr %t574, ptr @.str903)
|
|
%t576 = icmp ne i32 %t575, 0
|
|
br i1 %t576, label %then573, label %ifend575
|
|
then573:
|
|
store i32 1644912, ptr %retval
|
|
br label %ret
|
|
ifend575:
|
|
%t577 = load ptr, ptr %t0
|
|
%t578 = call i32 @fn_str_eq(ptr %t577, ptr @.str904)
|
|
%t579 = icmp ne i32 %t578, 0
|
|
br i1 %t579, label %then576, label %ifend578
|
|
then576:
|
|
store i32 18347, ptr %retval
|
|
br label %ret
|
|
ifend578:
|
|
%t580 = load ptr, ptr %t0
|
|
%t581 = call i32 @fn_str_eq(ptr %t580, ptr @.str905)
|
|
%t582 = icmp ne i32 %t581, 0
|
|
br i1 %t582, label %then579, label %ifend581
|
|
then579:
|
|
store i32 1004218, ptr %retval
|
|
br label %ret
|
|
ifend581:
|
|
%t583 = load ptr, ptr %t0
|
|
%t584 = call i32 @fn_str_eq(ptr %t583, ptr @.str906)
|
|
%t585 = icmp ne i32 %t584, 0
|
|
br i1 %t585, label %then582, label %ifend584
|
|
then582:
|
|
store i32 1401021, ptr %retval
|
|
br label %ret
|
|
ifend584:
|
|
%t586 = load ptr, ptr %t0
|
|
%t587 = call i32 @fn_str_eq(ptr %t586, ptr @.str907)
|
|
%t588 = icmp ne i32 %t587, 0
|
|
br i1 %t588, label %then585, label %ifend587
|
|
then585:
|
|
store i32 4915330, ptr %retval
|
|
br label %ret
|
|
ifend587:
|
|
%t589 = load ptr, ptr %t0
|
|
%t590 = call i32 @fn_str_eq(ptr %t589, ptr @.str908)
|
|
%t591 = icmp ne i32 %t590, 0
|
|
br i1 %t591, label %then588, label %ifend590
|
|
then588:
|
|
store i32 12627, ptr %retval
|
|
br label %ret
|
|
ifend590:
|
|
%t592 = load ptr, ptr %t0
|
|
%t593 = call i32 @fn_str_eq(ptr %t592, ptr @.str909)
|
|
%t594 = icmp ne i32 %t593, 0
|
|
br i1 %t594, label %then591, label %ifend593
|
|
then591:
|
|
store i32 4129023, ptr %retval
|
|
br label %ret
|
|
ifend593:
|
|
%t595 = load ptr, ptr %t0
|
|
%t596 = call i32 @fn_str_eq(ptr %t595, ptr @.str910)
|
|
%t597 = icmp ne i32 %t596, 0
|
|
br i1 %t597, label %then594, label %ifend596
|
|
then594:
|
|
store i32 13421823, ptr %retval
|
|
br label %ret
|
|
ifend596:
|
|
%t598 = load ptr, ptr %t0
|
|
%t599 = call i32 @fn_str_eq(ptr %t598, ptr @.str911)
|
|
%t600 = icmp ne i32 %t599, 0
|
|
br i1 %t600, label %then597, label %ifend599
|
|
then597:
|
|
store i32 5918671, ptr %retval
|
|
br label %ret
|
|
ifend599:
|
|
%t601 = load ptr, ptr %t0
|
|
%t602 = call i32 @fn_str_eq(ptr %t601, ptr @.str912)
|
|
%t603 = icmp ne i32 %t602, 0
|
|
br i1 %t603, label %then600, label %ifend602
|
|
then600:
|
|
store i32 6324918, ptr %retval
|
|
br label %ret
|
|
ifend602:
|
|
%t604 = load ptr, ptr %t0
|
|
%t605 = call i32 @fn_str_eq(ptr %t604, ptr @.str913)
|
|
%t606 = icmp ne i32 %t605, 0
|
|
br i1 %t606, label %then603, label %ifend605
|
|
then603:
|
|
store i32 5288, ptr %retval
|
|
br label %ret
|
|
ifend605:
|
|
%t607 = load ptr, ptr %t0
|
|
%t608 = call i32 @fn_str_eq(ptr %t607, ptr @.str914)
|
|
%t609 = icmp ne i32 %t608, 0
|
|
br i1 %t609, label %then606, label %ifend608
|
|
then606:
|
|
store i32 3026312, ptr %retval
|
|
br label %ret
|
|
ifend608:
|
|
%t610 = load ptr, ptr %t0
|
|
%t611 = call i32 @fn_str_eq(ptr %t610, ptr @.str915)
|
|
%t612 = icmp ne i32 %t611, 0
|
|
br i1 %t612, label %then609, label %ifend611
|
|
then609:
|
|
store i32 8388736, ptr %retval
|
|
br label %ret
|
|
ifend611:
|
|
%t613 = load ptr, ptr %t0
|
|
%t614 = call i32 @fn_str_eq(ptr %t613, ptr @.str916)
|
|
%t615 = icmp ne i32 %t614, 0
|
|
br i1 %t615, label %then612, label %ifend614
|
|
then612:
|
|
store i32 15631086, ptr %retval
|
|
br label %ret
|
|
ifend614:
|
|
%t616 = load ptr, ptr %t0
|
|
%t617 = call i32 @fn_str_eq(ptr %t616, ptr @.str917)
|
|
%t618 = icmp ne i32 %t617, 0
|
|
br i1 %t618, label %then615, label %ifend617
|
|
then615:
|
|
store i32 9699539, ptr %retval
|
|
br label %ret
|
|
ifend617:
|
|
%t619 = load ptr, ptr %t0
|
|
%t620 = call i32 @fn_str_eq(ptr %t619, ptr @.str918)
|
|
%t621 = icmp ne i32 %t620, 0
|
|
br i1 %t621, label %then618, label %ifend620
|
|
then618:
|
|
store i32 9055202, ptr %retval
|
|
br label %ret
|
|
ifend620:
|
|
%t622 = load ptr, ptr %t0
|
|
%t623 = call i32 @fn_str_eq(ptr %t622, ptr @.str919)
|
|
%t624 = icmp ne i32 %t623, 0
|
|
br i1 %t624, label %then621, label %ifend623
|
|
then621:
|
|
store i32 9662683, ptr %retval
|
|
br label %ret
|
|
ifend623:
|
|
%t625 = load ptr, ptr %t0
|
|
%t626 = call i32 @fn_str_eq(ptr %t625, ptr @.str920)
|
|
%t627 = icmp ne i32 %t626, 0
|
|
br i1 %t627, label %then624, label %ifend626
|
|
then624:
|
|
store i32 10053324, ptr %retval
|
|
br label %ret
|
|
ifend626:
|
|
%t628 = load ptr, ptr %t0
|
|
%t629 = call i32 @fn_str_eq(ptr %t628, ptr @.str921)
|
|
%t630 = icmp ne i32 %t629, 0
|
|
br i1 %t630, label %then627, label %ifend629
|
|
then627:
|
|
store i32 9323909, ptr %retval
|
|
br label %ret
|
|
ifend629:
|
|
%t631 = load ptr, ptr %t0
|
|
%t632 = call i32 @fn_str_eq(ptr %t631, ptr @.str922)
|
|
%t633 = icmp ne i32 %t632, 0
|
|
br i1 %t633, label %then630, label %ifend632
|
|
then630:
|
|
store i32 6373457, ptr %retval
|
|
br label %ret
|
|
ifend632:
|
|
%t634 = load ptr, ptr %t0
|
|
%t635 = call i32 @fn_str_eq(ptr %t634, ptr @.str923)
|
|
%t636 = icmp ne i32 %t635, 0
|
|
br i1 %t636, label %then633, label %ifend635
|
|
then633:
|
|
store i32 7286184, ptr %retval
|
|
br label %ret
|
|
ifend635:
|
|
%t637 = load ptr, ptr %t0
|
|
%t638 = call i32 @fn_str_eq(ptr %t637, ptr @.str924)
|
|
%t639 = icmp ne i32 %t638, 0
|
|
br i1 %t639, label %then636, label %ifend638
|
|
then636:
|
|
store i32 7483191, ptr %retval
|
|
br label %ret
|
|
ifend638:
|
|
%t640 = load ptr, ptr %t0
|
|
%t641 = call i32 @fn_str_eq(ptr %t640, ptr @.str925)
|
|
%t642 = icmp ne i32 %t641, 0
|
|
br i1 %t642, label %then639, label %ifend641
|
|
then639:
|
|
store i32 12929932, ptr %retval
|
|
br label %ret
|
|
ifend641:
|
|
%t643 = load ptr, ptr %t0
|
|
%t644 = call i32 @fn_str_eq(ptr %t643, ptr @.str926)
|
|
%t645 = icmp ne i32 %t644, 0
|
|
br i1 %t645, label %then642, label %ifend644
|
|
then642:
|
|
store i32 13148872, ptr %retval
|
|
br label %ret
|
|
ifend644:
|
|
%t646 = load ptr, ptr %t0
|
|
%t647 = call i32 @fn_str_eq(ptr %t646, ptr @.str927)
|
|
%t648 = icmp ne i32 %t647, 0
|
|
br i1 %t648, label %then645, label %ifend647
|
|
then645:
|
|
store i32 13213916, ptr %retval
|
|
br label %ret
|
|
ifend647:
|
|
%t649 = load ptr, ptr %t0
|
|
%t650 = call i32 @fn_str_eq(ptr %t649, ptr @.str928)
|
|
%t651 = icmp ne i32 %t650, 0
|
|
br i1 %t651, label %then648, label %ifend650
|
|
then648:
|
|
store i32 14644223, ptr %retval
|
|
br label %ret
|
|
ifend650:
|
|
%t652 = load ptr, ptr %t0
|
|
%t653 = call i32 @fn_str_eq(ptr %t652, ptr @.str929)
|
|
%t654 = icmp ne i32 %t653, 0
|
|
br i1 %t654, label %then651, label %ifend653
|
|
then651:
|
|
store i32 7350627, ptr %retval
|
|
br label %ret
|
|
ifend653:
|
|
%t655 = load ptr, ptr %t0
|
|
%t656 = call i32 @fn_str_eq(ptr %t655, ptr @.str930)
|
|
%t657 = icmp ne i32 %t656, 0
|
|
br i1 %t657, label %then654, label %ifend656
|
|
then654:
|
|
store i32 6685244, ptr %retval
|
|
br label %ret
|
|
ifend656:
|
|
%t658 = load ptr, ptr %t0
|
|
%t659 = call i32 @fn_str_eq(ptr %t658, ptr @.str931)
|
|
%t660 = icmp ne i32 %t659, 0
|
|
br i1 %t660, label %then657, label %ifend659
|
|
then657:
|
|
store i32 6697881, ptr %retval
|
|
br label %ret
|
|
ifend659:
|
|
%t661 = load ptr, ptr %t0
|
|
%t662 = call i32 @fn_str_eq(ptr %t661, ptr @.str932)
|
|
%t663 = icmp ne i32 %t662, 0
|
|
br i1 %t663, label %then660, label %ifend662
|
|
then660:
|
|
store i32 11495919, ptr %retval
|
|
br label %ret
|
|
ifend662:
|
|
%t664 = sub i32 0, 1
|
|
store i32 %t664, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t665 = load i32, ptr %retval
|
|
ret i32 %t665
|
|
}
|
|
|
|
define ptr @fn_emit_sizeof(ptr %arg_llt) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
store ptr %arg_llt, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call ptr @fn_str_concat(ptr @.str933, ptr %t1)
|
|
%t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str934)
|
|
%t4 = call ptr @fn_emit_bind(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = call ptr @fn_str_concat(ptr @.str935, ptr %t6)
|
|
%t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str936)
|
|
%t9 = call ptr @fn_emit_bind(ptr %t8)
|
|
store ptr %t9, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t10 = load ptr, ptr %retval
|
|
ret ptr %t10
|
|
}
|
|
|
|
define ptr @fn_emit_new_struct(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t10 = alloca ptr
|
|
%t13 = alloca ptr
|
|
%t18 = alloca ptr
|
|
%t19 = alloca i32
|
|
%t37 = alloca ptr
|
|
%t39 = alloca ptr
|
|
%t49 = alloca ptr
|
|
%t50 = alloca ptr
|
|
%t64 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call ptr @fn_layout_node(ptr %t1)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = icmp eq ptr %t4, null
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_perr(ptr @.str937)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t8 = load ptr, ptr %t0
|
|
%t9 = call ptr @fn_layout_ty(ptr %t8)
|
|
store ptr %t9, ptr %t10
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = call ptr @fn_emit_sizeof(ptr %t11)
|
|
store ptr %t12, ptr %t13
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = call ptr @fn_str_concat(ptr @.str938, ptr %t14)
|
|
%t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str939)
|
|
%t17 = call ptr @fn_emit_bind(ptr %t16)
|
|
store ptr %t17, ptr %t18
|
|
store i32 0, ptr %t19
|
|
br label %wcond3
|
|
wcond3:
|
|
%t20 = load i32, ptr %t19
|
|
%t21 = load ptr, ptr %t3
|
|
%t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 7
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1
|
|
%t25 = load i32, ptr %t24
|
|
%t26 = icmp slt i32 %t20, %t25
|
|
%t27 = zext i1 %t26 to i32
|
|
%t28 = icmp ne i32 %t27, 0
|
|
br i1 %t28, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t29 = load ptr, ptr %t3
|
|
%t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 7
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0
|
|
%t33 = load ptr, ptr %t32
|
|
%t34 = load i32, ptr %t19
|
|
%t35 = getelementptr inbounds ptr, ptr %t33, i32 %t34
|
|
%t36 = load ptr, ptr %t35
|
|
store ptr %t36, ptr %t37
|
|
%t38 = call ptr @fn_nreg()
|
|
store ptr %t38, ptr %t39
|
|
call void @fn_emit(ptr @.str940)
|
|
%t40 = load ptr, ptr %t39
|
|
call void @fn_emit(ptr %t40)
|
|
call void @fn_emit(ptr @.str941)
|
|
%t41 = load ptr, ptr %t10
|
|
call void @fn_emit(ptr %t41)
|
|
call void @fn_emit(ptr @.str942)
|
|
%t42 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t42)
|
|
call void @fn_emit(ptr @.str943)
|
|
%t43 = load i32, ptr %t19
|
|
%t44 = call ptr @fn_itoa(i32 %t43)
|
|
call void @fn_emit(ptr %t44)
|
|
call void @fn_emit(ptr @.str944)
|
|
%t45 = load ptr, ptr %t37
|
|
%t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 3
|
|
%t47 = load ptr, ptr %t46
|
|
%t48 = call ptr @fn_llty(ptr %t47)
|
|
store ptr %t48, ptr %t49
|
|
store ptr @.str945, ptr %t50
|
|
%t51 = load ptr, ptr %t49
|
|
%t52 = call i32 @fn_str_eq(ptr %t51, ptr @.str946)
|
|
%t53 = icmp ne i32 %t52, 0
|
|
br i1 %t53, label %then6, label %ifend8
|
|
then6:
|
|
store ptr @.str947, ptr %t50
|
|
br label %ifend8
|
|
ifend8:
|
|
%t54 = load ptr, ptr %t37
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 4
|
|
%t56 = load ptr, ptr %t55
|
|
%t57 = icmp ne ptr %t56, null
|
|
%t58 = zext i1 %t57 to i32
|
|
%t59 = icmp ne i32 %t58, 0
|
|
br i1 %t59, label %then9, label %ifend11
|
|
then9:
|
|
%t60 = load ptr, ptr %t37
|
|
%t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 4
|
|
%t62 = load ptr, ptr %t61
|
|
%t63 = call ptr @fn_emit_expr(ptr %t62)
|
|
store ptr %t63, ptr %t64
|
|
%t65 = load ptr, ptr %t64
|
|
%t66 = getelementptr inbounds %Cmp_Val, ptr %t65, i32 0, i32 0
|
|
%t67 = load ptr, ptr %t66
|
|
store ptr %t67, ptr %t50
|
|
br label %ifend11
|
|
ifend11:
|
|
call void @fn_emit(ptr @.str948)
|
|
%t68 = load ptr, ptr %t49
|
|
call void @fn_emit(ptr %t68)
|
|
call void @fn_emit(ptr @.str949)
|
|
%t69 = load ptr, ptr %t50
|
|
call void @fn_emit(ptr %t69)
|
|
call void @fn_emit(ptr @.str950)
|
|
%t70 = load ptr, ptr %t39
|
|
call void @fn_emit(ptr %t70)
|
|
call void @fn_emit(ptr @.str951)
|
|
%t71 = load i32, ptr %t19
|
|
%t72 = add i32 %t71, 1
|
|
store i32 %t72, ptr %t19
|
|
br label %wcond3
|
|
wend5:
|
|
%t73 = load ptr, ptr %t18
|
|
%t74 = load ptr, ptr %t0
|
|
%t75 = call ptr @fn_val(ptr %t73, ptr %t74)
|
|
store ptr %t75, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t76 = load ptr, ptr %retval
|
|
ret ptr %t76
|
|
}
|
|
|
|
define ptr @fn_emit_new_slice(ptr %arg_ty) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t9 = alloca ptr
|
|
%t14 = alloca ptr
|
|
%t19 = alloca ptr
|
|
store ptr %arg_ty, ptr %t0
|
|
%t1 = call ptr @fn_emit_sizeof(ptr @.str952)
|
|
store ptr %t1, ptr %t2
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_str_concat(ptr @.str953, ptr %t3)
|
|
%t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str954)
|
|
%t6 = call ptr @fn_emit_bind(ptr %t5)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = call ptr @fn_nreg()
|
|
store ptr %t8, ptr %t9
|
|
call void @fn_emit(ptr @.str955)
|
|
%t10 = load ptr, ptr %t9
|
|
call void @fn_emit(ptr %t10)
|
|
call void @fn_emit(ptr @.str956)
|
|
%t11 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t11)
|
|
call void @fn_emit(ptr @.str957)
|
|
call void @fn_emit(ptr @.str958)
|
|
%t12 = load ptr, ptr %t9
|
|
call void @fn_emit(ptr %t12)
|
|
call void @fn_emit(ptr @.str959)
|
|
%t13 = call ptr @fn_nreg()
|
|
store ptr %t13, ptr %t14
|
|
call void @fn_emit(ptr @.str960)
|
|
%t15 = load ptr, ptr %t14
|
|
call void @fn_emit(ptr %t15)
|
|
call void @fn_emit(ptr @.str961)
|
|
%t16 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t16)
|
|
call void @fn_emit(ptr @.str962)
|
|
call void @fn_emit(ptr @.str963)
|
|
%t17 = load ptr, ptr %t14
|
|
call void @fn_emit(ptr %t17)
|
|
call void @fn_emit(ptr @.str964)
|
|
%t18 = call ptr @fn_nreg()
|
|
store ptr %t18, ptr %t19
|
|
call void @fn_emit(ptr @.str965)
|
|
%t20 = load ptr, ptr %t19
|
|
call void @fn_emit(ptr %t20)
|
|
call void @fn_emit(ptr @.str966)
|
|
%t21 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t21)
|
|
call void @fn_emit(ptr @.str967)
|
|
call void @fn_emit(ptr @.str968)
|
|
%t22 = load ptr, ptr %t19
|
|
call void @fn_emit(ptr %t22)
|
|
call void @fn_emit(ptr @.str969)
|
|
%t23 = load ptr, ptr %t7
|
|
%t24 = load ptr, ptr %t0
|
|
%t25 = call ptr @fn_val(ptr %t23, ptr %t24)
|
|
store ptr %t25, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t26 = load ptr, ptr %retval
|
|
ret ptr %t26
|
|
}
|
|
|
|
define ptr @fn_slice_field(ptr %arg_h, i32 %arg_i) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t3 = alloca ptr
|
|
store ptr %arg_h, ptr %t0
|
|
store i32 %arg_i, ptr %t1
|
|
%t2 = call ptr @fn_nreg()
|
|
store ptr %t2, ptr %t3
|
|
call void @fn_emit(ptr @.str970)
|
|
%t4 = load ptr, ptr %t3
|
|
call void @fn_emit(ptr %t4)
|
|
call void @fn_emit(ptr @.str971)
|
|
%t5 = load ptr, ptr %t0
|
|
call void @fn_emit(ptr %t5)
|
|
call void @fn_emit(ptr @.str972)
|
|
%t6 = load i32, ptr %t1
|
|
%t7 = call ptr @fn_itoa(i32 %t6)
|
|
call void @fn_emit(ptr %t7)
|
|
call void @fn_emit(ptr @.str973)
|
|
%t8 = load ptr, ptr %t3
|
|
store ptr %t8, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t9 = load ptr, ptr %retval
|
|
ret ptr %t9
|
|
}
|
|
|
|
define ptr @fn_emit_len(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t9 = alloca ptr
|
|
%t19 = alloca ptr
|
|
%t30 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 7
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds ptr, ptr %t5, i32 0
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = call ptr @fn_emit_expr(ptr %t7)
|
|
store ptr %t8, ptr %t9
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = getelementptr inbounds %Cmp_Val, ptr %t10, i32 0, i32 1
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = call i32 @fn_is_slice_ty(ptr %t12)
|
|
%t14 = icmp ne i32 %t13, 0
|
|
br i1 %t14, label %then0, label %ifend2
|
|
then0:
|
|
%t15 = load ptr, ptr %t9
|
|
%t16 = getelementptr inbounds %Cmp_Val, ptr %t15, i32 0, i32 0
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = call ptr @fn_slice_field(ptr %t17, i32 1)
|
|
store ptr %t18, ptr %t19
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = call ptr @fn_str_concat(ptr @.str974, ptr %t20)
|
|
%t22 = call ptr @fn_emit_bind(ptr %t21)
|
|
%t23 = call ptr @fn_val(ptr %t22, ptr @.str975)
|
|
store ptr %t23, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t24 = load ptr, ptr %t9
|
|
%t25 = getelementptr inbounds %Cmp_Val, ptr %t24, i32 0, i32 0
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = call ptr @fn_str_concat(ptr @.str976, ptr %t26)
|
|
%t28 = call ptr @fn_str_concat(ptr %t27, ptr @.str977)
|
|
%t29 = call ptr @fn_emit_bind(ptr %t28)
|
|
store ptr %t29, ptr %t30
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = call ptr @fn_str_concat(ptr @.str978, ptr %t31)
|
|
%t33 = call ptr @fn_str_concat(ptr %t32, ptr @.str979)
|
|
%t34 = call ptr @fn_emit_bind(ptr %t33)
|
|
%t35 = call ptr @fn_val(ptr %t34, ptr @.str980)
|
|
store ptr %t35, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t36 = load ptr, ptr %retval
|
|
ret ptr %t36
|
|
}
|
|
|
|
define ptr @fn_emit_push(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t9 = alloca ptr
|
|
%t14 = alloca ptr
|
|
%t17 = alloca ptr
|
|
%t21 = alloca ptr
|
|
%t24 = alloca ptr
|
|
%t27 = alloca ptr
|
|
%t30 = alloca ptr
|
|
%t34 = alloca ptr
|
|
%t38 = alloca ptr
|
|
%t45 = alloca ptr
|
|
%t47 = alloca ptr
|
|
%t49 = alloca ptr
|
|
%t58 = alloca ptr
|
|
%t63 = alloca ptr
|
|
%t70 = alloca ptr
|
|
%t73 = alloca ptr
|
|
%t78 = alloca ptr
|
|
%t85 = alloca ptr
|
|
%t89 = alloca ptr
|
|
%t97 = alloca ptr
|
|
%t112 = alloca ptr
|
|
%t116 = alloca ptr
|
|
%t118 = alloca ptr
|
|
%t132 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 7
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds ptr, ptr %t5, i32 0
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = call ptr @fn_emit_expr(ptr %t7)
|
|
store ptr %t8, ptr %t9
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = getelementptr inbounds %Cmp_Val, ptr %t10, i32 0, i32 1
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = call ptr @fn_slice_elem(ptr %t12)
|
|
store ptr %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = call ptr @fn_llty(ptr %t15)
|
|
store ptr %t16, ptr %t17
|
|
%t18 = load ptr, ptr %t9
|
|
%t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0
|
|
%t20 = load ptr, ptr %t19
|
|
store ptr %t20, ptr %t21
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = call ptr @fn_slice_field(ptr %t22, i32 1)
|
|
store ptr %t23, ptr %t24
|
|
%t25 = load ptr, ptr %t21
|
|
%t26 = call ptr @fn_slice_field(ptr %t25, i32 2)
|
|
store ptr %t26, ptr %t27
|
|
%t28 = load ptr, ptr %t21
|
|
%t29 = call ptr @fn_slice_field(ptr %t28, i32 0)
|
|
store ptr %t29, ptr %t30
|
|
%t31 = load ptr, ptr %t24
|
|
%t32 = call ptr @fn_str_concat(ptr @.str981, ptr %t31)
|
|
%t33 = call ptr @fn_emit_bind(ptr %t32)
|
|
store ptr %t33, ptr %t34
|
|
%t35 = load ptr, ptr %t27
|
|
%t36 = call ptr @fn_str_concat(ptr @.str982, ptr %t35)
|
|
%t37 = call ptr @fn_emit_bind(ptr %t36)
|
|
store ptr %t37, ptr %t38
|
|
%t39 = load ptr, ptr %t34
|
|
%t40 = call ptr @fn_str_concat(ptr @.str983, ptr %t39)
|
|
%t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str984)
|
|
%t42 = load ptr, ptr %t38
|
|
%t43 = call ptr @fn_str_concat(ptr %t41, ptr %t42)
|
|
%t44 = call ptr @fn_emit_bind(ptr %t43)
|
|
store ptr %t44, ptr %t45
|
|
%t46 = call ptr @fn_lbl(ptr @.str985)
|
|
store ptr %t46, ptr %t47
|
|
%t48 = call ptr @fn_lbl(ptr @.str986)
|
|
store ptr %t48, ptr %t49
|
|
call void @fn_emit(ptr @.str987)
|
|
%t50 = load ptr, ptr %t45
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str988)
|
|
%t51 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t51)
|
|
call void @fn_emit(ptr @.str989)
|
|
%t52 = load ptr, ptr %t49
|
|
call void @fn_emit(ptr %t52)
|
|
call void @fn_emit(ptr @.str990)
|
|
%t53 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t53)
|
|
call void @fn_emit(ptr @.str991)
|
|
%t54 = load ptr, ptr %t38
|
|
%t55 = call ptr @fn_str_concat(ptr @.str992, ptr %t54)
|
|
%t56 = call ptr @fn_str_concat(ptr %t55, ptr @.str993)
|
|
%t57 = call ptr @fn_emit_bind(ptr %t56)
|
|
store ptr %t57, ptr %t58
|
|
%t59 = load ptr, ptr %t38
|
|
%t60 = call ptr @fn_str_concat(ptr @.str994, ptr %t59)
|
|
%t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str995)
|
|
%t62 = call ptr @fn_emit_bind(ptr %t61)
|
|
store ptr %t62, ptr %t63
|
|
%t64 = load ptr, ptr %t63
|
|
%t65 = call ptr @fn_str_concat(ptr @.str996, ptr %t64)
|
|
%t66 = call ptr @fn_str_concat(ptr %t65, ptr @.str997)
|
|
%t67 = load ptr, ptr %t58
|
|
%t68 = call ptr @fn_str_concat(ptr %t66, ptr %t67)
|
|
%t69 = call ptr @fn_emit_bind(ptr %t68)
|
|
store ptr %t69, ptr %t70
|
|
%t71 = load ptr, ptr %t17
|
|
%t72 = call ptr @fn_emit_sizeof(ptr %t71)
|
|
store ptr %t72, ptr %t73
|
|
%t74 = load ptr, ptr %t70
|
|
%t75 = call ptr @fn_str_concat(ptr @.str998, ptr %t74)
|
|
%t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str999)
|
|
%t77 = call ptr @fn_emit_bind(ptr %t76)
|
|
store ptr %t77, ptr %t78
|
|
%t79 = load ptr, ptr %t78
|
|
%t80 = call ptr @fn_str_concat(ptr @.str1000, ptr %t79)
|
|
%t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str1001)
|
|
%t82 = load ptr, ptr %t73
|
|
%t83 = call ptr @fn_str_concat(ptr %t81, ptr %t82)
|
|
%t84 = call ptr @fn_emit_bind(ptr %t83)
|
|
store ptr %t84, ptr %t85
|
|
%t86 = load ptr, ptr %t30
|
|
%t87 = call ptr @fn_str_concat(ptr @.str1002, ptr %t86)
|
|
%t88 = call ptr @fn_emit_bind(ptr %t87)
|
|
store ptr %t88, ptr %t89
|
|
%t90 = load ptr, ptr %t89
|
|
%t91 = call ptr @fn_str_concat(ptr @.str1003, ptr %t90)
|
|
%t92 = call ptr @fn_str_concat(ptr %t91, ptr @.str1004)
|
|
%t93 = load ptr, ptr %t85
|
|
%t94 = call ptr @fn_str_concat(ptr %t92, ptr %t93)
|
|
%t95 = call ptr @fn_str_concat(ptr %t94, ptr @.str1005)
|
|
%t96 = call ptr @fn_emit_bind(ptr %t95)
|
|
store ptr %t96, ptr %t97
|
|
call void @fn_emit(ptr @.str1006)
|
|
%t98 = load ptr, ptr %t97
|
|
call void @fn_emit(ptr %t98)
|
|
call void @fn_emit(ptr @.str1007)
|
|
%t99 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t99)
|
|
call void @fn_emit(ptr @.str1008)
|
|
call void @fn_emit(ptr @.str1009)
|
|
%t100 = load ptr, ptr %t70
|
|
call void @fn_emit(ptr %t100)
|
|
call void @fn_emit(ptr @.str1010)
|
|
%t101 = load ptr, ptr %t27
|
|
call void @fn_emit(ptr %t101)
|
|
call void @fn_emit(ptr @.str1011)
|
|
call void @fn_emit(ptr @.str1012)
|
|
%t102 = load ptr, ptr %t49
|
|
call void @fn_emit(ptr %t102)
|
|
call void @fn_emit(ptr @.str1013)
|
|
%t103 = load ptr, ptr %t49
|
|
call void @fn_emit(ptr %t103)
|
|
call void @fn_emit(ptr @.str1014)
|
|
%t104 = load ptr, ptr %t0
|
|
%t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 7
|
|
%t106 = load ptr, ptr %t105
|
|
%t107 = getelementptr inbounds %LSlice, ptr %t106, i32 0, i32 0
|
|
%t108 = load ptr, ptr %t107
|
|
%t109 = getelementptr inbounds ptr, ptr %t108, i32 1
|
|
%t110 = load ptr, ptr %t109
|
|
%t111 = call ptr @fn_emit_expr(ptr %t110)
|
|
store ptr %t111, ptr %t112
|
|
%t113 = load ptr, ptr %t30
|
|
%t114 = call ptr @fn_str_concat(ptr @.str1015, ptr %t113)
|
|
%t115 = call ptr @fn_emit_bind(ptr %t114)
|
|
store ptr %t115, ptr %t116
|
|
%t117 = call ptr @fn_nreg()
|
|
store ptr %t117, ptr %t118
|
|
call void @fn_emit(ptr @.str1016)
|
|
%t119 = load ptr, ptr %t118
|
|
call void @fn_emit(ptr %t119)
|
|
call void @fn_emit(ptr @.str1017)
|
|
%t120 = load ptr, ptr %t17
|
|
call void @fn_emit(ptr %t120)
|
|
call void @fn_emit(ptr @.str1018)
|
|
%t121 = load ptr, ptr %t116
|
|
call void @fn_emit(ptr %t121)
|
|
call void @fn_emit(ptr @.str1019)
|
|
%t122 = load ptr, ptr %t34
|
|
call void @fn_emit(ptr %t122)
|
|
call void @fn_emit(ptr @.str1020)
|
|
call void @fn_emit(ptr @.str1021)
|
|
%t123 = load ptr, ptr %t17
|
|
call void @fn_emit(ptr %t123)
|
|
call void @fn_emit(ptr @.str1022)
|
|
%t124 = load ptr, ptr %t112
|
|
%t125 = getelementptr inbounds %Cmp_Val, ptr %t124, i32 0, i32 0
|
|
%t126 = load ptr, ptr %t125
|
|
call void @fn_emit(ptr %t126)
|
|
call void @fn_emit(ptr @.str1023)
|
|
%t127 = load ptr, ptr %t118
|
|
call void @fn_emit(ptr %t127)
|
|
call void @fn_emit(ptr @.str1024)
|
|
%t128 = load ptr, ptr %t34
|
|
%t129 = call ptr @fn_str_concat(ptr @.str1025, ptr %t128)
|
|
%t130 = call ptr @fn_str_concat(ptr %t129, ptr @.str1026)
|
|
%t131 = call ptr @fn_emit_bind(ptr %t130)
|
|
store ptr %t131, ptr %t132
|
|
call void @fn_emit(ptr @.str1027)
|
|
%t133 = load ptr, ptr %t132
|
|
call void @fn_emit(ptr %t133)
|
|
call void @fn_emit(ptr @.str1028)
|
|
%t134 = load ptr, ptr %t24
|
|
call void @fn_emit(ptr %t134)
|
|
call void @fn_emit(ptr @.str1029)
|
|
%t135 = call ptr @fn_val(ptr @.str1030, ptr @.str1031)
|
|
store ptr %t135, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t136 = load ptr, ptr %retval
|
|
ret ptr %t136
|
|
}
|
|
|
|
define ptr @fn_emit_load_at(ptr %arg_addr, ptr %arg_ty) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t9 = alloca ptr
|
|
store ptr %arg_addr, ptr %t0
|
|
store ptr %arg_ty, ptr %t1
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = call ptr @fn_llty(ptr %t2)
|
|
%t4 = call ptr @fn_str_concat(ptr @.str1032, ptr %t3)
|
|
%t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str1033)
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = call ptr @fn_str_concat(ptr %t5, ptr %t6)
|
|
%t8 = call ptr @fn_emit_bind(ptr %t7)
|
|
store ptr %t8, ptr %t9
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load ptr, ptr %t1
|
|
%t12 = call ptr @fn_val(ptr %t10, ptr %t11)
|
|
store ptr %t12, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t13 = load ptr, ptr %retval
|
|
ret ptr %t13
|
|
}
|
|
|
|
define ptr @fn_emit_logic(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t14 = alloca ptr
|
|
%t19 = alloca ptr
|
|
%t23 = alloca ptr
|
|
%t25 = alloca ptr
|
|
%t42 = alloca ptr
|
|
%t49 = alloca ptr
|
|
%t54 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
%t1 = call ptr @fn_emit_alloca(ptr @.str1034)
|
|
store ptr %t1, ptr %t2
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = call ptr @fn_emit_expr(ptr %t5)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds %Cmp_Val, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = call ptr @fn_str_concat(ptr @.str1035, ptr %t10)
|
|
%t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str1036)
|
|
%t13 = call ptr @fn_emit_bind(ptr %t12)
|
|
store ptr %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = call ptr @fn_str_concat(ptr @.str1037, ptr %t15)
|
|
%t17 = call ptr @fn_str_concat(ptr %t16, ptr @.str1038)
|
|
%t18 = call ptr @fn_emit_bind(ptr %t17)
|
|
store ptr %t18, ptr %t19
|
|
call void @fn_emit(ptr @.str1039)
|
|
%t20 = load ptr, ptr %t19
|
|
call void @fn_emit(ptr %t20)
|
|
call void @fn_emit(ptr @.str1040)
|
|
%t21 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t21)
|
|
call void @fn_emit(ptr @.str1041)
|
|
%t22 = call ptr @fn_lbl(ptr @.str1042)
|
|
store ptr %t22, ptr %t23
|
|
%t24 = call ptr @fn_lbl(ptr @.str1043)
|
|
store ptr %t24, ptr %t25
|
|
%t26 = load ptr, ptr %t0
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str1044)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then0, label %else1
|
|
then0:
|
|
call void @fn_emit(ptr @.str1045)
|
|
%t31 = load ptr, ptr %t14
|
|
call void @fn_emit(ptr %t31)
|
|
call void @fn_emit(ptr @.str1046)
|
|
%t32 = load ptr, ptr %t23
|
|
call void @fn_emit(ptr %t32)
|
|
call void @fn_emit(ptr @.str1047)
|
|
%t33 = load ptr, ptr %t25
|
|
call void @fn_emit(ptr %t33)
|
|
call void @fn_emit(ptr @.str1048)
|
|
br label %ifend2
|
|
else1:
|
|
call void @fn_emit(ptr @.str1049)
|
|
%t34 = load ptr, ptr %t14
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str1050)
|
|
%t35 = load ptr, ptr %t25
|
|
call void @fn_emit(ptr %t35)
|
|
call void @fn_emit(ptr @.str1051)
|
|
%t36 = load ptr, ptr %t23
|
|
call void @fn_emit(ptr %t36)
|
|
call void @fn_emit(ptr @.str1052)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t37 = load ptr, ptr %t23
|
|
call void @fn_emit(ptr %t37)
|
|
call void @fn_emit(ptr @.str1053)
|
|
%t38 = load ptr, ptr %t0
|
|
%t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 5
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = call ptr @fn_emit_expr(ptr %t40)
|
|
store ptr %t41, ptr %t42
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = getelementptr inbounds %Cmp_Val, ptr %t43, i32 0, i32 0
|
|
%t45 = load ptr, ptr %t44
|
|
%t46 = call ptr @fn_str_concat(ptr @.str1054, ptr %t45)
|
|
%t47 = call ptr @fn_str_concat(ptr %t46, ptr @.str1055)
|
|
%t48 = call ptr @fn_emit_bind(ptr %t47)
|
|
store ptr %t48, ptr %t49
|
|
%t50 = load ptr, ptr %t49
|
|
%t51 = call ptr @fn_str_concat(ptr @.str1056, ptr %t50)
|
|
%t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str1057)
|
|
%t53 = call ptr @fn_emit_bind(ptr %t52)
|
|
store ptr %t53, ptr %t54
|
|
call void @fn_emit(ptr @.str1058)
|
|
%t55 = load ptr, ptr %t54
|
|
call void @fn_emit(ptr %t55)
|
|
call void @fn_emit(ptr @.str1059)
|
|
%t56 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t56)
|
|
call void @fn_emit(ptr @.str1060)
|
|
call void @fn_emit(ptr @.str1061)
|
|
%t57 = load ptr, ptr %t25
|
|
call void @fn_emit(ptr %t57)
|
|
call void @fn_emit(ptr @.str1062)
|
|
%t58 = load ptr, ptr %t25
|
|
call void @fn_emit(ptr %t58)
|
|
call void @fn_emit(ptr @.str1063)
|
|
%t59 = load ptr, ptr %t2
|
|
%t60 = call ptr @fn_str_concat(ptr @.str1064, ptr %t59)
|
|
%t61 = call ptr @fn_emit_bind(ptr %t60)
|
|
%t62 = call ptr @fn_val(ptr %t61, ptr @.str1065)
|
|
store ptr %t62, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t63 = load ptr, ptr %retval
|
|
ret ptr %t63
|
|
}
|
|
|
|
define ptr @fn_cmp_code(ptr %arg_op) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
store ptr %arg_op, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str1066)
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %then0, label %ifend2
|
|
then0:
|
|
store ptr @.str1067, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str1068)
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then3, label %ifend5
|
|
then3:
|
|
store ptr @.str1069, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str1070)
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then6, label %ifend8
|
|
then6:
|
|
store ptr @.str1071, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str1072)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then9, label %ifend11
|
|
then9:
|
|
store ptr @.str1073, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str1074)
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then12, label %ifend14
|
|
then12:
|
|
store ptr @.str1075, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
store ptr @.str1076, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t16 = load ptr, ptr %retval
|
|
ret ptr %t16
|
|
}
|
|
|
|
define i32 @fn_is_cmp(ptr %arg_op) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t4 = alloca i32
|
|
%t5 = alloca i32
|
|
store ptr %arg_op, ptr %t0
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = call i32 @fn_str_eq(ptr %t6, ptr @.str1077)
|
|
%t8 = icmp ne i32 %t7, 0
|
|
%t9 = zext i1 %t8 to i32
|
|
store i32 %t9, ptr %t5
|
|
br i1 %t8, label %scend1, label %sc0
|
|
sc0:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str1078)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
%t13 = zext i1 %t12 to i32
|
|
store i32 %t13, ptr %t5
|
|
br label %scend1
|
|
scend1:
|
|
%t14 = load i32, ptr %t5
|
|
%t15 = icmp ne i32 %t14, 0
|
|
%t16 = zext i1 %t15 to i32
|
|
store i32 %t16, ptr %t4
|
|
br i1 %t15, label %scend3, label %sc2
|
|
sc2:
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t17, ptr @.str1079)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
%t20 = zext i1 %t19 to i32
|
|
store i32 %t20, ptr %t4
|
|
br label %scend3
|
|
scend3:
|
|
%t21 = load i32, ptr %t4
|
|
%t22 = icmp ne i32 %t21, 0
|
|
%t23 = zext i1 %t22 to i32
|
|
store i32 %t23, ptr %t3
|
|
br i1 %t22, label %scend5, label %sc4
|
|
sc4:
|
|
%t24 = load ptr, ptr %t0
|
|
%t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str1080)
|
|
%t26 = icmp ne i32 %t25, 0
|
|
%t27 = zext i1 %t26 to i32
|
|
store i32 %t27, ptr %t3
|
|
br label %scend5
|
|
scend5:
|
|
%t28 = load i32, ptr %t3
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
store i32 %t30, ptr %t2
|
|
br i1 %t29, label %scend7, label %sc6
|
|
sc6:
|
|
%t31 = load ptr, ptr %t0
|
|
%t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str1081)
|
|
%t33 = icmp ne i32 %t32, 0
|
|
%t34 = zext i1 %t33 to i32
|
|
store i32 %t34, ptr %t2
|
|
br label %scend7
|
|
scend7:
|
|
%t35 = load i32, ptr %t2
|
|
%t36 = icmp ne i32 %t35, 0
|
|
%t37 = zext i1 %t36 to i32
|
|
store i32 %t37, ptr %t1
|
|
br i1 %t36, label %scend9, label %sc8
|
|
sc8:
|
|
%t38 = load ptr, ptr %t0
|
|
%t39 = call i32 @fn_str_eq(ptr %t38, ptr @.str1082)
|
|
%t40 = icmp ne i32 %t39, 0
|
|
%t41 = zext i1 %t40 to i32
|
|
store i32 %t41, ptr %t1
|
|
br label %scend9
|
|
scend9:
|
|
%t42 = load i32, ptr %t1
|
|
store i32 %t42, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t43 = load i32, ptr %retval
|
|
ret i32 %t43
|
|
}
|
|
|
|
define ptr @fn_arith_code(ptr %arg_op) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
store ptr %arg_op, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str1083)
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %then0, label %ifend2
|
|
then0:
|
|
store ptr @.str1084, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str1085)
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then3, label %ifend5
|
|
then3:
|
|
store ptr @.str1086, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str1087)
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then6, label %ifend8
|
|
then6:
|
|
store ptr @.str1088, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str1089)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then9, label %ifend11
|
|
then9:
|
|
store ptr @.str1090, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str1091)
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then12, label %ifend14
|
|
then12:
|
|
store ptr @.str1092, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
%t16 = load ptr, ptr %t0
|
|
%t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str1093)
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then15, label %ifend17
|
|
then15:
|
|
store ptr @.str1094, ptr %retval
|
|
br label %ret
|
|
ifend17:
|
|
%t19 = load ptr, ptr %t0
|
|
%t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str1095)
|
|
%t21 = icmp ne i32 %t20, 0
|
|
br i1 %t21, label %then18, label %ifend20
|
|
then18:
|
|
store ptr @.str1096, ptr %retval
|
|
br label %ret
|
|
ifend20:
|
|
%t22 = load ptr, ptr %t0
|
|
%t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str1097)
|
|
%t24 = icmp ne i32 %t23, 0
|
|
br i1 %t24, label %then21, label %ifend23
|
|
then21:
|
|
store ptr @.str1098, ptr %retval
|
|
br label %ret
|
|
ifend23:
|
|
%t25 = load ptr, ptr %t0
|
|
%t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str1099)
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %then24, label %ifend26
|
|
then24:
|
|
store ptr @.str1100, ptr %retval
|
|
br label %ret
|
|
ifend26:
|
|
store ptr @.str1101, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t28 = load ptr, ptr %retval
|
|
ret ptr %t28
|
|
}
|
|
|
|
define ptr @fn_to_fixed(ptr %arg_v) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
store ptr %arg_v, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Val, ptr %t1, i32 0, i32 1
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str1102)
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0
|
|
%t8 = load ptr, ptr %t7
|
|
store ptr %t8, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = getelementptr inbounds %Cmp_Val, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = call ptr @fn_str_concat(ptr @.str1103, ptr %t11)
|
|
%t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str1104)
|
|
%t14 = call ptr @fn_emit_bind(ptr %t13)
|
|
store ptr %t14, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t15 = load ptr, ptr %retval
|
|
ret ptr %t15
|
|
}
|
|
|
|
define ptr @fn_emit_str_op(ptr %arg_op, ptr %arg_a, ptr %arg_b) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t29 = alloca ptr
|
|
%t37 = alloca ptr
|
|
store ptr %arg_op, ptr %t0
|
|
store ptr %arg_a, ptr %t1
|
|
store ptr %arg_b, ptr %t2
|
|
store i32 1, ptr @g_g_uses_str
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str1105)
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load ptr, ptr %t1
|
|
%t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = call ptr @fn_str_concat(ptr @.str1106, ptr %t8)
|
|
%t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str1107)
|
|
%t11 = load ptr, ptr %t2
|
|
%t12 = getelementptr inbounds %Cmp_Val, ptr %t11, i32 0, i32 0
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = call ptr @fn_str_concat(ptr %t10, ptr %t13)
|
|
%t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str1108)
|
|
%t16 = call ptr @fn_emit_bind(ptr %t15)
|
|
%t17 = call ptr @fn_val(ptr %t16, ptr @.str1109)
|
|
store ptr %t17, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t18 = load ptr, ptr %t1
|
|
%t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = call ptr @fn_str_concat(ptr @.str1110, ptr %t20)
|
|
%t22 = call ptr @fn_str_concat(ptr %t21, ptr @.str1111)
|
|
%t23 = load ptr, ptr %t2
|
|
%t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = call ptr @fn_str_concat(ptr %t22, ptr %t25)
|
|
%t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str1112)
|
|
%t28 = call ptr @fn_emit_bind(ptr %t27)
|
|
store ptr %t28, ptr %t29
|
|
%t30 = load ptr, ptr %t0
|
|
%t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str1113)
|
|
%t32 = icmp ne i32 %t31, 0
|
|
br i1 %t32, label %then3, label %ifend5
|
|
then3:
|
|
%t33 = load ptr, ptr %t29
|
|
%t34 = call ptr @fn_str_concat(ptr @.str1114, ptr %t33)
|
|
%t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str1115)
|
|
%t36 = call ptr @fn_emit_bind(ptr %t35)
|
|
store ptr %t36, ptr %t37
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = call ptr @fn_str_concat(ptr @.str1116, ptr %t38)
|
|
%t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str1117)
|
|
%t41 = call ptr @fn_emit_bind(ptr %t40)
|
|
%t42 = call ptr @fn_val(ptr %t41, ptr @.str1118)
|
|
store ptr %t42, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t43 = load ptr, ptr %t29
|
|
%t44 = call ptr @fn_val(ptr %t43, ptr @.str1119)
|
|
store ptr %t44, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t45 = load ptr, ptr %retval
|
|
ret ptr %t45
|
|
}
|
|
|
|
define ptr @fn_emit_bin(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t22 = alloca ptr
|
|
%t27 = alloca ptr
|
|
%t28 = alloca i32
|
|
%t44 = alloca i32
|
|
%t45 = alloca i32
|
|
%t65 = alloca i32
|
|
%t76 = alloca i32
|
|
%t77 = alloca i32
|
|
%t106 = alloca i32
|
|
%t120 = alloca i32
|
|
%t129 = alloca ptr
|
|
%t133 = alloca ptr
|
|
%t134 = alloca ptr
|
|
%t141 = alloca i32
|
|
%t173 = alloca ptr
|
|
%t183 = alloca ptr
|
|
%t186 = alloca ptr
|
|
%t196 = alloca ptr
|
|
%t201 = alloca ptr
|
|
%t208 = alloca ptr
|
|
%t213 = alloca ptr
|
|
%t228 = alloca ptr
|
|
%t233 = alloca ptr
|
|
%t238 = alloca ptr
|
|
%t245 = alloca ptr
|
|
%t262 = alloca ptr
|
|
%t280 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 1
|
|
%t4 = load ptr, ptr %t3
|
|
%t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str1120)
|
|
%t6 = icmp ne i32 %t5, 0
|
|
%t7 = zext i1 %t6 to i32
|
|
store i32 %t7, ptr %t1
|
|
br i1 %t6, label %scend1, label %sc0
|
|
sc0:
|
|
%t8 = load ptr, ptr %t0
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str1121)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
%t13 = zext i1 %t12 to i32
|
|
store i32 %t13, ptr %t1
|
|
br label %scend1
|
|
scend1:
|
|
%t14 = load i32, ptr %t1
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then2, label %ifend4
|
|
then2:
|
|
%t16 = load ptr, ptr %t0
|
|
%t17 = call ptr @fn_emit_logic(ptr %t16)
|
|
store ptr %t17, ptr %retval
|
|
br label %ret
|
|
ifend4:
|
|
%t18 = load ptr, ptr %t0
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 4
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = call ptr @fn_emit_expr(ptr %t20)
|
|
store ptr %t21, ptr %t22
|
|
%t23 = load ptr, ptr %t0
|
|
%t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 5
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = call ptr @fn_emit_expr(ptr %t25)
|
|
store ptr %t26, ptr %t27
|
|
%t29 = load ptr, ptr %t22
|
|
%t30 = getelementptr inbounds %Cmp_Val, ptr %t29, i32 0, i32 1
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = call ptr @fn_llty(ptr %t31)
|
|
%t33 = call i32 @fn_str_eq(ptr %t32, ptr @.str1122)
|
|
%t34 = icmp ne i32 %t33, 0
|
|
%t35 = zext i1 %t34 to i32
|
|
store i32 %t35, ptr %t28
|
|
br i1 %t34, label %scend6, label %sc5
|
|
sc5:
|
|
%t36 = load ptr, ptr %t27
|
|
%t37 = getelementptr inbounds %Cmp_Val, ptr %t36, i32 0, i32 1
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = call ptr @fn_llty(ptr %t38)
|
|
%t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str1123)
|
|
%t41 = icmp ne i32 %t40, 0
|
|
%t42 = zext i1 %t41 to i32
|
|
store i32 %t42, ptr %t28
|
|
br label %scend6
|
|
scend6:
|
|
%t43 = load i32, ptr %t28
|
|
store i32 %t43, ptr %t44
|
|
%t46 = load ptr, ptr %t0
|
|
%t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 4
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 0
|
|
%t50 = load i32, ptr %t49
|
|
%t51 = icmp eq i32 %t50, 43
|
|
%t52 = zext i1 %t51 to i32
|
|
%t53 = icmp ne i32 %t52, 0
|
|
%t54 = zext i1 %t53 to i32
|
|
store i32 %t54, ptr %t45
|
|
br i1 %t53, label %scend8, label %sc7
|
|
sc7:
|
|
%t55 = load ptr, ptr %t0
|
|
%t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 5
|
|
%t57 = load ptr, ptr %t56
|
|
%t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 0
|
|
%t59 = load i32, ptr %t58
|
|
%t60 = icmp eq i32 %t59, 43
|
|
%t61 = zext i1 %t60 to i32
|
|
%t62 = icmp ne i32 %t61, 0
|
|
%t63 = zext i1 %t62 to i32
|
|
store i32 %t63, ptr %t45
|
|
br label %scend8
|
|
scend8:
|
|
%t64 = load i32, ptr %t45
|
|
store i32 %t64, ptr %t65
|
|
%t66 = load i32, ptr %t44
|
|
%t67 = icmp ne i32 %t66, 0
|
|
br i1 %t67, label %then9, label %ifend11
|
|
then9:
|
|
%t68 = load ptr, ptr %t0
|
|
%t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1
|
|
%t70 = load ptr, ptr %t69
|
|
%t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str1124)
|
|
%t72 = icmp ne i32 %t71, 0
|
|
br i1 %t72, label %then12, label %ifend14
|
|
then12:
|
|
%t73 = load ptr, ptr %t22
|
|
%t74 = load ptr, ptr %t27
|
|
%t75 = call ptr @fn_emit_str_op(ptr @.str1125, ptr %t73, ptr %t74)
|
|
store ptr %t75, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
%t78 = load ptr, ptr %t0
|
|
%t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 1
|
|
%t80 = load ptr, ptr %t79
|
|
%t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str1126)
|
|
%t82 = icmp ne i32 %t81, 0
|
|
%t83 = zext i1 %t82 to i32
|
|
store i32 %t83, ptr %t77
|
|
br i1 %t82, label %scend16, label %sc15
|
|
sc15:
|
|
%t84 = load ptr, ptr %t0
|
|
%t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 1
|
|
%t86 = load ptr, ptr %t85
|
|
%t87 = call i32 @fn_str_eq(ptr %t86, ptr @.str1127)
|
|
%t88 = icmp ne i32 %t87, 0
|
|
%t89 = zext i1 %t88 to i32
|
|
store i32 %t89, ptr %t77
|
|
br label %scend16
|
|
scend16:
|
|
%t90 = load i32, ptr %t77
|
|
%t91 = icmp ne i32 %t90, 0
|
|
%t92 = zext i1 %t91 to i32
|
|
store i32 %t92, ptr %t76
|
|
br i1 %t91, label %sc17, label %scend18
|
|
sc17:
|
|
%t93 = load i32, ptr %t65
|
|
%t94 = icmp eq i32 %t93, 0
|
|
%t95 = zext i1 %t94 to i32
|
|
%t96 = icmp ne i32 %t95, 0
|
|
%t97 = zext i1 %t96 to i32
|
|
store i32 %t97, ptr %t76
|
|
br label %scend18
|
|
scend18:
|
|
%t98 = load i32, ptr %t76
|
|
%t99 = icmp ne i32 %t98, 0
|
|
br i1 %t99, label %then19, label %ifend21
|
|
then19:
|
|
%t100 = load ptr, ptr %t0
|
|
%t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 1
|
|
%t102 = load ptr, ptr %t101
|
|
%t103 = load ptr, ptr %t22
|
|
%t104 = load ptr, ptr %t27
|
|
%t105 = call ptr @fn_emit_str_op(ptr %t102, ptr %t103, ptr %t104)
|
|
store ptr %t105, ptr %retval
|
|
br label %ret
|
|
ifend21:
|
|
br label %ifend11
|
|
ifend11:
|
|
%t107 = load ptr, ptr %t22
|
|
%t108 = getelementptr inbounds %Cmp_Val, ptr %t107, i32 0, i32 1
|
|
%t109 = load ptr, ptr %t108
|
|
%t110 = call i32 @fn_str_eq(ptr %t109, ptr @.str1128)
|
|
%t111 = icmp ne i32 %t110, 0
|
|
%t112 = zext i1 %t111 to i32
|
|
store i32 %t112, ptr %t106
|
|
br i1 %t111, label %scend23, label %sc22
|
|
sc22:
|
|
%t113 = load ptr, ptr %t27
|
|
%t114 = getelementptr inbounds %Cmp_Val, ptr %t113, i32 0, i32 1
|
|
%t115 = load ptr, ptr %t114
|
|
%t116 = call i32 @fn_str_eq(ptr %t115, ptr @.str1129)
|
|
%t117 = icmp ne i32 %t116, 0
|
|
%t118 = zext i1 %t117 to i32
|
|
store i32 %t118, ptr %t106
|
|
br label %scend23
|
|
scend23:
|
|
%t119 = load i32, ptr %t106
|
|
store i32 %t119, ptr %t120
|
|
%t121 = load ptr, ptr %t0
|
|
%t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 1
|
|
%t123 = load ptr, ptr %t122
|
|
%t124 = call i32 @fn_is_cmp(ptr %t123)
|
|
%t125 = icmp ne i32 %t124, 0
|
|
br i1 %t125, label %then24, label %ifend26
|
|
then24:
|
|
%t126 = load ptr, ptr %t22
|
|
%t127 = getelementptr inbounds %Cmp_Val, ptr %t126, i32 0, i32 0
|
|
%t128 = load ptr, ptr %t127
|
|
store ptr %t128, ptr %t129
|
|
%t130 = load ptr, ptr %t27
|
|
%t131 = getelementptr inbounds %Cmp_Val, ptr %t130, i32 0, i32 0
|
|
%t132 = load ptr, ptr %t131
|
|
store ptr %t132, ptr %t133
|
|
store ptr @.str1130, ptr %t134
|
|
%t135 = load i32, ptr %t120
|
|
%t136 = icmp ne i32 %t135, 0
|
|
br i1 %t136, label %then27, label %else28
|
|
then27:
|
|
%t137 = load ptr, ptr %t22
|
|
%t138 = call ptr @fn_to_fixed(ptr %t137)
|
|
store ptr %t138, ptr %t129
|
|
%t139 = load ptr, ptr %t27
|
|
%t140 = call ptr @fn_to_fixed(ptr %t139)
|
|
store ptr %t140, ptr %t133
|
|
br label %ifend29
|
|
else28:
|
|
%t142 = load ptr, ptr %t22
|
|
%t143 = getelementptr inbounds %Cmp_Val, ptr %t142, i32 0, i32 1
|
|
%t144 = load ptr, ptr %t143
|
|
%t145 = call ptr @fn_llty(ptr %t144)
|
|
%t146 = call i32 @fn_str_eq(ptr %t145, ptr @.str1131)
|
|
%t147 = icmp ne i32 %t146, 0
|
|
%t148 = zext i1 %t147 to i32
|
|
store i32 %t148, ptr %t141
|
|
br i1 %t147, label %scend31, label %sc30
|
|
sc30:
|
|
%t149 = load ptr, ptr %t27
|
|
%t150 = getelementptr inbounds %Cmp_Val, ptr %t149, i32 0, i32 1
|
|
%t151 = load ptr, ptr %t150
|
|
%t152 = call ptr @fn_llty(ptr %t151)
|
|
%t153 = call i32 @fn_str_eq(ptr %t152, ptr @.str1132)
|
|
%t154 = icmp ne i32 %t153, 0
|
|
%t155 = zext i1 %t154 to i32
|
|
store i32 %t155, ptr %t141
|
|
br label %scend31
|
|
scend31:
|
|
%t156 = load i32, ptr %t141
|
|
%t157 = icmp ne i32 %t156, 0
|
|
br i1 %t157, label %then32, label %ifend34
|
|
then32:
|
|
store ptr @.str1133, ptr %t134
|
|
br label %ifend34
|
|
ifend34:
|
|
br label %ifend29
|
|
ifend29:
|
|
%t158 = load ptr, ptr %t0
|
|
%t159 = getelementptr inbounds %Cmp_Node, ptr %t158, i32 0, i32 1
|
|
%t160 = load ptr, ptr %t159
|
|
%t161 = call ptr @fn_cmp_code(ptr %t160)
|
|
%t162 = call ptr @fn_str_concat(ptr @.str1134, ptr %t161)
|
|
%t163 = call ptr @fn_str_concat(ptr %t162, ptr @.str1135)
|
|
%t164 = load ptr, ptr %t134
|
|
%t165 = call ptr @fn_str_concat(ptr %t163, ptr %t164)
|
|
%t166 = call ptr @fn_str_concat(ptr %t165, ptr @.str1136)
|
|
%t167 = load ptr, ptr %t129
|
|
%t168 = call ptr @fn_str_concat(ptr %t166, ptr %t167)
|
|
%t169 = call ptr @fn_str_concat(ptr %t168, ptr @.str1137)
|
|
%t170 = load ptr, ptr %t133
|
|
%t171 = call ptr @fn_str_concat(ptr %t169, ptr %t170)
|
|
%t172 = call ptr @fn_emit_bind(ptr %t171)
|
|
store ptr %t172, ptr %t173
|
|
%t174 = load ptr, ptr %t173
|
|
%t175 = call ptr @fn_str_concat(ptr @.str1138, ptr %t174)
|
|
%t176 = call ptr @fn_str_concat(ptr %t175, ptr @.str1139)
|
|
%t177 = call ptr @fn_emit_bind(ptr %t176)
|
|
%t178 = call ptr @fn_val(ptr %t177, ptr @.str1140)
|
|
store ptr %t178, ptr %retval
|
|
br label %ret
|
|
ifend26:
|
|
%t179 = load i32, ptr %t120
|
|
%t180 = icmp ne i32 %t179, 0
|
|
br i1 %t180, label %then35, label %ifend37
|
|
then35:
|
|
%t181 = load ptr, ptr %t22
|
|
%t182 = call ptr @fn_to_fixed(ptr %t181)
|
|
store ptr %t182, ptr %t183
|
|
%t184 = load ptr, ptr %t27
|
|
%t185 = call ptr @fn_to_fixed(ptr %t184)
|
|
store ptr %t185, ptr %t186
|
|
%t187 = load ptr, ptr %t0
|
|
%t188 = getelementptr inbounds %Cmp_Node, ptr %t187, i32 0, i32 1
|
|
%t189 = load ptr, ptr %t188
|
|
%t190 = call i32 @fn_str_eq(ptr %t189, ptr @.str1141)
|
|
%t191 = icmp ne i32 %t190, 0
|
|
br i1 %t191, label %then38, label %ifend40
|
|
then38:
|
|
%t192 = load ptr, ptr %t183
|
|
%t193 = call ptr @fn_str_concat(ptr @.str1142, ptr %t192)
|
|
%t194 = call ptr @fn_str_concat(ptr %t193, ptr @.str1143)
|
|
%t195 = call ptr @fn_emit_bind(ptr %t194)
|
|
store ptr %t195, ptr %t196
|
|
%t197 = load ptr, ptr %t186
|
|
%t198 = call ptr @fn_str_concat(ptr @.str1144, ptr %t197)
|
|
%t199 = call ptr @fn_str_concat(ptr %t198, ptr @.str1145)
|
|
%t200 = call ptr @fn_emit_bind(ptr %t199)
|
|
store ptr %t200, ptr %t201
|
|
%t202 = load ptr, ptr %t196
|
|
%t203 = call ptr @fn_str_concat(ptr @.str1146, ptr %t202)
|
|
%t204 = call ptr @fn_str_concat(ptr %t203, ptr @.str1147)
|
|
%t205 = load ptr, ptr %t201
|
|
%t206 = call ptr @fn_str_concat(ptr %t204, ptr %t205)
|
|
%t207 = call ptr @fn_emit_bind(ptr %t206)
|
|
store ptr %t207, ptr %t208
|
|
%t209 = load ptr, ptr %t208
|
|
%t210 = call ptr @fn_str_concat(ptr @.str1148, ptr %t209)
|
|
%t211 = call ptr @fn_str_concat(ptr %t210, ptr @.str1149)
|
|
%t212 = call ptr @fn_emit_bind(ptr %t211)
|
|
store ptr %t212, ptr %t213
|
|
%t214 = load ptr, ptr %t213
|
|
%t215 = call ptr @fn_str_concat(ptr @.str1150, ptr %t214)
|
|
%t216 = call ptr @fn_str_concat(ptr %t215, ptr @.str1151)
|
|
%t217 = call ptr @fn_emit_bind(ptr %t216)
|
|
%t218 = call ptr @fn_val(ptr %t217, ptr @.str1152)
|
|
store ptr %t218, ptr %retval
|
|
br label %ret
|
|
ifend40:
|
|
%t219 = load ptr, ptr %t0
|
|
%t220 = getelementptr inbounds %Cmp_Node, ptr %t219, i32 0, i32 1
|
|
%t221 = load ptr, ptr %t220
|
|
%t222 = call i32 @fn_str_eq(ptr %t221, ptr @.str1153)
|
|
%t223 = icmp ne i32 %t222, 0
|
|
br i1 %t223, label %then41, label %ifend43
|
|
then41:
|
|
%t224 = load ptr, ptr %t183
|
|
%t225 = call ptr @fn_str_concat(ptr @.str1154, ptr %t224)
|
|
%t226 = call ptr @fn_str_concat(ptr %t225, ptr @.str1155)
|
|
%t227 = call ptr @fn_emit_bind(ptr %t226)
|
|
store ptr %t227, ptr %t228
|
|
%t229 = load ptr, ptr %t228
|
|
%t230 = call ptr @fn_str_concat(ptr @.str1156, ptr %t229)
|
|
%t231 = call ptr @fn_str_concat(ptr %t230, ptr @.str1157)
|
|
%t232 = call ptr @fn_emit_bind(ptr %t231)
|
|
store ptr %t232, ptr %t233
|
|
%t234 = load ptr, ptr %t186
|
|
%t235 = call ptr @fn_str_concat(ptr @.str1158, ptr %t234)
|
|
%t236 = call ptr @fn_str_concat(ptr %t235, ptr @.str1159)
|
|
%t237 = call ptr @fn_emit_bind(ptr %t236)
|
|
store ptr %t237, ptr %t238
|
|
%t239 = load ptr, ptr %t233
|
|
%t240 = call ptr @fn_str_concat(ptr @.str1160, ptr %t239)
|
|
%t241 = call ptr @fn_str_concat(ptr %t240, ptr @.str1161)
|
|
%t242 = load ptr, ptr %t238
|
|
%t243 = call ptr @fn_str_concat(ptr %t241, ptr %t242)
|
|
%t244 = call ptr @fn_emit_bind(ptr %t243)
|
|
store ptr %t244, ptr %t245
|
|
%t246 = load ptr, ptr %t245
|
|
%t247 = call ptr @fn_str_concat(ptr @.str1162, ptr %t246)
|
|
%t248 = call ptr @fn_str_concat(ptr %t247, ptr @.str1163)
|
|
%t249 = call ptr @fn_emit_bind(ptr %t248)
|
|
%t250 = call ptr @fn_val(ptr %t249, ptr @.str1164)
|
|
store ptr %t250, ptr %retval
|
|
br label %ret
|
|
ifend43:
|
|
%t251 = load ptr, ptr %t0
|
|
%t252 = getelementptr inbounds %Cmp_Node, ptr %t251, i32 0, i32 1
|
|
%t253 = load ptr, ptr %t252
|
|
%t254 = call ptr @fn_arith_code(ptr %t253)
|
|
%t255 = call ptr @fn_str_concat(ptr %t254, ptr @.str1165)
|
|
%t256 = load ptr, ptr %t183
|
|
%t257 = call ptr @fn_str_concat(ptr %t255, ptr %t256)
|
|
%t258 = call ptr @fn_str_concat(ptr %t257, ptr @.str1166)
|
|
%t259 = load ptr, ptr %t186
|
|
%t260 = call ptr @fn_str_concat(ptr %t258, ptr %t259)
|
|
%t261 = call ptr @fn_emit_bind(ptr %t260)
|
|
store ptr %t261, ptr %t262
|
|
%t263 = load ptr, ptr %t262
|
|
%t264 = call ptr @fn_val(ptr %t263, ptr @.str1167)
|
|
store ptr %t264, ptr %retval
|
|
br label %ret
|
|
ifend37:
|
|
%t265 = load ptr, ptr %t0
|
|
%t266 = getelementptr inbounds %Cmp_Node, ptr %t265, i32 0, i32 1
|
|
%t267 = load ptr, ptr %t266
|
|
%t268 = call ptr @fn_arith_code(ptr %t267)
|
|
%t269 = call ptr @fn_str_concat(ptr %t268, ptr @.str1168)
|
|
%t270 = load ptr, ptr %t22
|
|
%t271 = getelementptr inbounds %Cmp_Val, ptr %t270, i32 0, i32 0
|
|
%t272 = load ptr, ptr %t271
|
|
%t273 = call ptr @fn_str_concat(ptr %t269, ptr %t272)
|
|
%t274 = call ptr @fn_str_concat(ptr %t273, ptr @.str1169)
|
|
%t275 = load ptr, ptr %t27
|
|
%t276 = getelementptr inbounds %Cmp_Val, ptr %t275, i32 0, i32 0
|
|
%t277 = load ptr, ptr %t276
|
|
%t278 = call ptr @fn_str_concat(ptr %t274, ptr %t277)
|
|
%t279 = call ptr @fn_emit_bind(ptr %t278)
|
|
store ptr %t279, ptr %t280
|
|
%t281 = load ptr, ptr %t280
|
|
%t282 = call ptr @fn_val(ptr %t281, ptr @.str1170)
|
|
store ptr %t282, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t283 = load ptr, ptr %retval
|
|
ret ptr %t283
|
|
}
|
|
|
|
define i32 @fn_args_are_named(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_e, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1
|
|
%t7 = load i32, ptr %t6
|
|
%t8 = icmp slt i32 %t2, %t7
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t11 = load ptr, ptr %t0
|
|
%t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 7
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = load i32, ptr %t1
|
|
%t17 = getelementptr inbounds ptr, ptr %t15, i32 %t16
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0
|
|
%t20 = load i32, ptr %t19
|
|
%t21 = icmp eq i32 %t20, 42
|
|
%t22 = zext i1 %t21 to i32
|
|
%t23 = icmp ne i32 %t22, 0
|
|
br i1 %t23, label %then3, label %ifend5
|
|
then3:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t24 = load i32, ptr %t1
|
|
%t25 = add i32 %t24, 1
|
|
store i32 %t25, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t26 = load i32, ptr %retval
|
|
ret i32 %t26
|
|
}
|
|
|
|
define void @fn_reorder_named(ptr %arg_e, ptr %arg_labels) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t7 = alloca i32
|
|
%t49 = alloca ptr
|
|
%t50 = alloca i32
|
|
%t58 = alloca ptr
|
|
%t59 = alloca i32
|
|
store ptr %arg_e, ptr %t0
|
|
store ptr %arg_labels, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call i32 @fn_args_are_named(ptr %t2)
|
|
%t4 = icmp eq i32 %t3, 0
|
|
%t5 = zext i1 %t4 to i32
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then0, label %ifend2
|
|
then0:
|
|
br label %ret
|
|
ifend2:
|
|
store i32 0, ptr %t7
|
|
br label %wcond3
|
|
wcond3:
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1
|
|
%t13 = load i32, ptr %t12
|
|
%t14 = icmp slt i32 %t8, %t13
|
|
%t15 = zext i1 %t14 to i32
|
|
%t16 = icmp ne i32 %t15, 0
|
|
br i1 %t16, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7
|
|
%t19 = load ptr, ptr %t18
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = load i32, ptr %t7
|
|
%t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 0
|
|
%t26 = load i32, ptr %t25
|
|
%t27 = icmp ne i32 %t26, 42
|
|
%t28 = zext i1 %t27 to i32
|
|
%t29 = icmp ne i32 %t28, 0
|
|
br i1 %t29, label %then6, label %ifend8
|
|
then6:
|
|
call void @fn_perr(ptr @.str1171)
|
|
br label %ifend8
|
|
ifend8:
|
|
%t30 = load i32, ptr %t7
|
|
%t31 = add i32 %t30, 1
|
|
store i32 %t31, ptr %t7
|
|
br label %wcond3
|
|
wend5:
|
|
%t32 = load ptr, ptr %t0
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 7
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1
|
|
%t36 = load i32, ptr %t35
|
|
%t37 = load ptr, ptr %t1
|
|
%t38 = getelementptr inbounds %LSlice, ptr %t37, i32 0, i32 1
|
|
%t39 = load i32, ptr %t38
|
|
%t40 = icmp ne i32 %t36, %t39
|
|
%t41 = zext i1 %t40 to i32
|
|
%t42 = icmp ne i32 %t41, 0
|
|
br i1 %t42, label %then9, label %ifend11
|
|
then9:
|
|
call void @fn_perr(ptr @.str1172)
|
|
br label %ifend11
|
|
ifend11:
|
|
%t43 = getelementptr %LSlice, ptr null, i32 1
|
|
%t44 = ptrtoint ptr %t43 to i64
|
|
%t45 = call ptr @malloc(i64 %t44)
|
|
%t46 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 0
|
|
store ptr null, ptr %t46
|
|
%t47 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1
|
|
store i32 0, ptr %t47
|
|
%t48 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 2
|
|
store i32 0, ptr %t48
|
|
store ptr %t45, ptr %t49
|
|
store i32 0, ptr %t50
|
|
br label %wcond12
|
|
wcond12:
|
|
%t51 = load i32, ptr %t50
|
|
%t52 = load ptr, ptr %t1
|
|
%t53 = getelementptr inbounds %LSlice, ptr %t52, i32 0, i32 1
|
|
%t54 = load i32, ptr %t53
|
|
%t55 = icmp slt i32 %t51, %t54
|
|
%t56 = zext i1 %t55 to i32
|
|
%t57 = icmp ne i32 %t56, 0
|
|
br i1 %t57, label %wbody13, label %wend14
|
|
wbody13:
|
|
store ptr null, ptr %t58
|
|
store i32 0, ptr %t59
|
|
br label %wcond15
|
|
wcond15:
|
|
%t60 = load i32, ptr %t59
|
|
%t61 = load ptr, ptr %t0
|
|
%t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 7
|
|
%t63 = load ptr, ptr %t62
|
|
%t64 = getelementptr inbounds %LSlice, ptr %t63, i32 0, i32 1
|
|
%t65 = load i32, ptr %t64
|
|
%t66 = icmp slt i32 %t60, %t65
|
|
%t67 = zext i1 %t66 to i32
|
|
%t68 = icmp ne i32 %t67, 0
|
|
br i1 %t68, label %wbody16, label %wend17
|
|
wbody16:
|
|
%t69 = load ptr, ptr %t0
|
|
%t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 7
|
|
%t71 = load ptr, ptr %t70
|
|
%t72 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0
|
|
%t73 = load ptr, ptr %t72
|
|
%t74 = load i32, ptr %t59
|
|
%t75 = getelementptr inbounds ptr, ptr %t73, i32 %t74
|
|
%t76 = load ptr, ptr %t75
|
|
%t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 1
|
|
%t78 = load ptr, ptr %t77
|
|
%t79 = load ptr, ptr %t1
|
|
%t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0
|
|
%t81 = load ptr, ptr %t80
|
|
%t82 = load i32, ptr %t50
|
|
%t83 = getelementptr inbounds ptr, ptr %t81, i32 %t82
|
|
%t84 = load ptr, ptr %t83
|
|
%t85 = call i32 @fn_str_eq(ptr %t78, ptr %t84)
|
|
%t86 = icmp ne i32 %t85, 0
|
|
br i1 %t86, label %then18, label %ifend20
|
|
then18:
|
|
%t87 = load ptr, ptr %t0
|
|
%t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 7
|
|
%t89 = load ptr, ptr %t88
|
|
%t90 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 0
|
|
%t91 = load ptr, ptr %t90
|
|
%t92 = load i32, ptr %t59
|
|
%t93 = getelementptr inbounds ptr, ptr %t91, i32 %t92
|
|
%t94 = load ptr, ptr %t93
|
|
store ptr %t94, ptr %t58
|
|
br label %ifend20
|
|
ifend20:
|
|
%t95 = load i32, ptr %t59
|
|
%t96 = add i32 %t95, 1
|
|
store i32 %t96, ptr %t59
|
|
br label %wcond15
|
|
wend17:
|
|
%t97 = load ptr, ptr %t58
|
|
%t98 = icmp eq ptr %t97, null
|
|
%t99 = zext i1 %t98 to i32
|
|
%t100 = icmp ne i32 %t99, 0
|
|
br i1 %t100, label %then21, label %ifend23
|
|
then21:
|
|
%t101 = load ptr, ptr %t1
|
|
%t102 = getelementptr inbounds %LSlice, ptr %t101, i32 0, i32 0
|
|
%t103 = load ptr, ptr %t102
|
|
%t104 = load i32, ptr %t50
|
|
%t105 = getelementptr inbounds ptr, ptr %t103, i32 %t104
|
|
%t106 = load ptr, ptr %t105
|
|
%t107 = call ptr @fn_str_concat(ptr @.str1173, ptr %t106)
|
|
call void @fn_perr(ptr %t107)
|
|
br label %ifend23
|
|
ifend23:
|
|
%t108 = load ptr, ptr %t49
|
|
%t109 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 1
|
|
%t110 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 2
|
|
%t111 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0
|
|
%t112 = load i32, ptr %t109
|
|
%t113 = load i32, ptr %t110
|
|
%t114 = icmp sge i32 %t112, %t113
|
|
br i1 %t114, label %grow24, label %put25
|
|
grow24:
|
|
%t115 = mul i32 %t113, 2
|
|
%t116 = icmp eq i32 %t113, 0
|
|
%t117 = select i1 %t116, i32 8, i32 %t115
|
|
%t118 = getelementptr ptr, ptr null, i32 1
|
|
%t119 = ptrtoint ptr %t118 to i64
|
|
%t120 = zext i32 %t117 to i64
|
|
%t121 = mul i64 %t120, %t119
|
|
%t122 = load ptr, ptr %t111
|
|
%t123 = call ptr @realloc(ptr %t122, i64 %t121)
|
|
store ptr %t123, ptr %t111
|
|
store i32 %t117, ptr %t110
|
|
br label %put25
|
|
put25:
|
|
%t124 = load ptr, ptr %t58
|
|
%t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 4
|
|
%t126 = load ptr, ptr %t125
|
|
%t127 = load ptr, ptr %t111
|
|
%t128 = getelementptr inbounds ptr, ptr %t127, i32 %t112
|
|
store ptr %t126, ptr %t128
|
|
%t129 = add i32 %t112, 1
|
|
store i32 %t129, ptr %t109
|
|
%t130 = load i32, ptr %t50
|
|
%t131 = add i32 %t130, 1
|
|
store i32 %t131, ptr %t50
|
|
br label %wcond12
|
|
wend14:
|
|
%t132 = load ptr, ptr %t0
|
|
%t133 = getelementptr inbounds %Cmp_Node, ptr %t132, i32 0, i32 7
|
|
%t134 = load ptr, ptr %t49
|
|
store ptr %t134, ptr %t133
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_param_labels(ptr %arg_fn) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t8 = alloca i32
|
|
store ptr %arg_fn, ptr %t0
|
|
%t1 = getelementptr %LSlice, ptr null, i32 1
|
|
%t2 = ptrtoint ptr %t1 to i64
|
|
%t3 = call ptr @malloc(i64 %t2)
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 0
|
|
store ptr null, ptr %t4
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
store i32 0, ptr %t5
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 2
|
|
store i32 0, ptr %t6
|
|
store ptr %t3, ptr %t7
|
|
store i32 0, ptr %t8
|
|
br label %wcond0
|
|
wcond0:
|
|
%t9 = load i32, ptr %t8
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 7
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1
|
|
%t14 = load i32, ptr %t13
|
|
%t15 = icmp slt i32 %t9, %t14
|
|
%t16 = zext i1 %t15 to i32
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t18 = load ptr, ptr %t0
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 7
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t8
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 0
|
|
%t27 = load i32, ptr %t26
|
|
%t28 = icmp eq i32 %t27, 5
|
|
%t29 = zext i1 %t28 to i32
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then3, label %ifend5
|
|
then3:
|
|
%t31 = load ptr, ptr %t7
|
|
%t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 2
|
|
%t34 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 0
|
|
%t35 = load i32, ptr %t32
|
|
%t36 = load i32, ptr %t33
|
|
%t37 = icmp sge i32 %t35, %t36
|
|
br i1 %t37, label %grow6, label %put7
|
|
grow6:
|
|
%t38 = mul i32 %t36, 2
|
|
%t39 = icmp eq i32 %t36, 0
|
|
%t40 = select i1 %t39, i32 8, i32 %t38
|
|
%t41 = getelementptr ptr, ptr null, i32 1
|
|
%t42 = ptrtoint ptr %t41 to i64
|
|
%t43 = zext i32 %t40 to i64
|
|
%t44 = mul i64 %t43, %t42
|
|
%t45 = load ptr, ptr %t34
|
|
%t46 = call ptr @realloc(ptr %t45, i64 %t44)
|
|
store ptr %t46, ptr %t34
|
|
store i32 %t40, ptr %t33
|
|
br label %put7
|
|
put7:
|
|
%t47 = load ptr, ptr %t0
|
|
%t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 7
|
|
%t49 = load ptr, ptr %t48
|
|
%t50 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = load i32, ptr %t8
|
|
%t53 = getelementptr inbounds ptr, ptr %t51, i32 %t52
|
|
%t54 = load ptr, ptr %t53
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1
|
|
%t56 = load ptr, ptr %t55
|
|
%t57 = load ptr, ptr %t34
|
|
%t58 = getelementptr inbounds ptr, ptr %t57, i32 %t35
|
|
store ptr %t56, ptr %t58
|
|
%t59 = add i32 %t35, 1
|
|
store i32 %t59, ptr %t32
|
|
br label %ifend5
|
|
ifend5:
|
|
%t60 = load i32, ptr %t8
|
|
%t61 = add i32 %t60, 1
|
|
store i32 %t61, ptr %t8
|
|
br label %wcond0
|
|
wend2:
|
|
%t62 = load ptr, ptr %t7
|
|
store ptr %t62, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t63 = load ptr, ptr %retval
|
|
ret ptr %t63
|
|
}
|
|
|
|
define ptr @fn_emit_ns_call(ptr %arg_ns, ptr %arg_meth, ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t10 = alloca ptr
|
|
%t751 = alloca ptr
|
|
store ptr %arg_ns, ptr %t0
|
|
store ptr %arg_meth, ptr %t1
|
|
store ptr %arg_e, ptr %t2
|
|
store ptr null, ptr %t3
|
|
%t4 = getelementptr %LSlice, ptr null, i32 1
|
|
%t5 = ptrtoint ptr %t4 to i64
|
|
%t6 = call ptr @malloc(i64 %t5)
|
|
%t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0
|
|
store ptr null, ptr %t7
|
|
%t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1
|
|
store i32 0, ptr %t8
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 2
|
|
store i32 0, ptr %t9
|
|
store ptr %t6, ptr %t10
|
|
%t11 = load ptr, ptr %t0
|
|
%t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str1174)
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %then0, label %ifend2
|
|
then0:
|
|
%t14 = load ptr, ptr %t1
|
|
%t15 = call i32 @fn_str_eq(ptr %t14, ptr @.str1175)
|
|
%t16 = icmp ne i32 %t15, 0
|
|
br i1 %t16, label %then3, label %ifend5
|
|
then3:
|
|
store ptr @.str1176, ptr %t3
|
|
%t17 = load ptr, ptr %t10
|
|
%t18 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 1
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 2
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0
|
|
%t21 = load i32, ptr %t18
|
|
%t22 = load i32, ptr %t19
|
|
%t23 = icmp sge i32 %t21, %t22
|
|
br i1 %t23, label %grow6, label %put7
|
|
grow6:
|
|
%t24 = mul i32 %t22, 2
|
|
%t25 = icmp eq i32 %t22, 0
|
|
%t26 = select i1 %t25, i32 8, i32 %t24
|
|
%t27 = getelementptr ptr, ptr null, i32 1
|
|
%t28 = ptrtoint ptr %t27 to i64
|
|
%t29 = zext i32 %t26 to i64
|
|
%t30 = mul i64 %t29, %t28
|
|
%t31 = load ptr, ptr %t20
|
|
%t32 = call ptr @realloc(ptr %t31, i64 %t30)
|
|
store ptr %t32, ptr %t20
|
|
store i32 %t26, ptr %t19
|
|
br label %put7
|
|
put7:
|
|
%t33 = load ptr, ptr %t20
|
|
%t34 = getelementptr inbounds ptr, ptr %t33, i32 %t21
|
|
store ptr @.str1177, ptr %t34
|
|
%t35 = add i32 %t21, 1
|
|
store i32 %t35, ptr %t18
|
|
br label %ifend5
|
|
ifend5:
|
|
%t36 = load ptr, ptr %t1
|
|
%t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str1178)
|
|
%t38 = icmp ne i32 %t37, 0
|
|
br i1 %t38, label %then8, label %ifend10
|
|
then8:
|
|
store ptr @.str1179, ptr %t3
|
|
%t39 = load ptr, ptr %t10
|
|
%t40 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 1
|
|
%t41 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 2
|
|
%t42 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0
|
|
%t43 = load i32, ptr %t40
|
|
%t44 = load i32, ptr %t41
|
|
%t45 = icmp sge i32 %t43, %t44
|
|
br i1 %t45, label %grow11, label %put12
|
|
grow11:
|
|
%t46 = mul i32 %t44, 2
|
|
%t47 = icmp eq i32 %t44, 0
|
|
%t48 = select i1 %t47, i32 8, i32 %t46
|
|
%t49 = getelementptr ptr, ptr null, i32 1
|
|
%t50 = ptrtoint ptr %t49 to i64
|
|
%t51 = zext i32 %t48 to i64
|
|
%t52 = mul i64 %t51, %t50
|
|
%t53 = load ptr, ptr %t42
|
|
%t54 = call ptr @realloc(ptr %t53, i64 %t52)
|
|
store ptr %t54, ptr %t42
|
|
store i32 %t48, ptr %t41
|
|
br label %put12
|
|
put12:
|
|
%t55 = load ptr, ptr %t42
|
|
%t56 = getelementptr inbounds ptr, ptr %t55, i32 %t43
|
|
store ptr @.str1180, ptr %t56
|
|
%t57 = add i32 %t43, 1
|
|
store i32 %t57, ptr %t40
|
|
%t58 = load ptr, ptr %t10
|
|
%t59 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1
|
|
%t60 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 2
|
|
%t61 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0
|
|
%t62 = load i32, ptr %t59
|
|
%t63 = load i32, ptr %t60
|
|
%t64 = icmp sge i32 %t62, %t63
|
|
br i1 %t64, label %grow13, label %put14
|
|
grow13:
|
|
%t65 = mul i32 %t63, 2
|
|
%t66 = icmp eq i32 %t63, 0
|
|
%t67 = select i1 %t66, i32 8, i32 %t65
|
|
%t68 = getelementptr ptr, ptr null, i32 1
|
|
%t69 = ptrtoint ptr %t68 to i64
|
|
%t70 = zext i32 %t67 to i64
|
|
%t71 = mul i64 %t70, %t69
|
|
%t72 = load ptr, ptr %t61
|
|
%t73 = call ptr @realloc(ptr %t72, i64 %t71)
|
|
store ptr %t73, ptr %t61
|
|
store i32 %t67, ptr %t60
|
|
br label %put14
|
|
put14:
|
|
%t74 = load ptr, ptr %t61
|
|
%t75 = getelementptr inbounds ptr, ptr %t74, i32 %t62
|
|
store ptr @.str1181, ptr %t75
|
|
%t76 = add i32 %t62, 1
|
|
store i32 %t76, ptr %t59
|
|
%t77 = load ptr, ptr %t10
|
|
%t78 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 1
|
|
%t79 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 2
|
|
%t80 = getelementptr inbounds %LSlice, ptr %t77, i32 0, i32 0
|
|
%t81 = load i32, ptr %t78
|
|
%t82 = load i32, ptr %t79
|
|
%t83 = icmp sge i32 %t81, %t82
|
|
br i1 %t83, label %grow15, label %put16
|
|
grow15:
|
|
%t84 = mul i32 %t82, 2
|
|
%t85 = icmp eq i32 %t82, 0
|
|
%t86 = select i1 %t85, i32 8, i32 %t84
|
|
%t87 = getelementptr ptr, ptr null, i32 1
|
|
%t88 = ptrtoint ptr %t87 to i64
|
|
%t89 = zext i32 %t86 to i64
|
|
%t90 = mul i64 %t89, %t88
|
|
%t91 = load ptr, ptr %t80
|
|
%t92 = call ptr @realloc(ptr %t91, i64 %t90)
|
|
store ptr %t92, ptr %t80
|
|
store i32 %t86, ptr %t79
|
|
br label %put16
|
|
put16:
|
|
%t93 = load ptr, ptr %t80
|
|
%t94 = getelementptr inbounds ptr, ptr %t93, i32 %t81
|
|
store ptr @.str1182, ptr %t94
|
|
%t95 = add i32 %t81, 1
|
|
store i32 %t95, ptr %t78
|
|
%t96 = load ptr, ptr %t10
|
|
%t97 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 1
|
|
%t98 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 2
|
|
%t99 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0
|
|
%t100 = load i32, ptr %t97
|
|
%t101 = load i32, ptr %t98
|
|
%t102 = icmp sge i32 %t100, %t101
|
|
br i1 %t102, label %grow17, label %put18
|
|
grow17:
|
|
%t103 = mul i32 %t101, 2
|
|
%t104 = icmp eq i32 %t101, 0
|
|
%t105 = select i1 %t104, i32 8, i32 %t103
|
|
%t106 = getelementptr ptr, ptr null, i32 1
|
|
%t107 = ptrtoint ptr %t106 to i64
|
|
%t108 = zext i32 %t105 to i64
|
|
%t109 = mul i64 %t108, %t107
|
|
%t110 = load ptr, ptr %t99
|
|
%t111 = call ptr @realloc(ptr %t110, i64 %t109)
|
|
store ptr %t111, ptr %t99
|
|
store i32 %t105, ptr %t98
|
|
br label %put18
|
|
put18:
|
|
%t112 = load ptr, ptr %t99
|
|
%t113 = getelementptr inbounds ptr, ptr %t112, i32 %t100
|
|
store ptr @.str1183, ptr %t113
|
|
%t114 = add i32 %t100, 1
|
|
store i32 %t114, ptr %t97
|
|
%t115 = load ptr, ptr %t10
|
|
%t116 = getelementptr inbounds %LSlice, ptr %t115, i32 0, i32 1
|
|
%t117 = getelementptr inbounds %LSlice, ptr %t115, i32 0, i32 2
|
|
%t118 = getelementptr inbounds %LSlice, ptr %t115, i32 0, i32 0
|
|
%t119 = load i32, ptr %t116
|
|
%t120 = load i32, ptr %t117
|
|
%t121 = icmp sge i32 %t119, %t120
|
|
br i1 %t121, label %grow19, label %put20
|
|
grow19:
|
|
%t122 = mul i32 %t120, 2
|
|
%t123 = icmp eq i32 %t120, 0
|
|
%t124 = select i1 %t123, i32 8, i32 %t122
|
|
%t125 = getelementptr ptr, ptr null, i32 1
|
|
%t126 = ptrtoint ptr %t125 to i64
|
|
%t127 = zext i32 %t124 to i64
|
|
%t128 = mul i64 %t127, %t126
|
|
%t129 = load ptr, ptr %t118
|
|
%t130 = call ptr @realloc(ptr %t129, i64 %t128)
|
|
store ptr %t130, ptr %t118
|
|
store i32 %t124, ptr %t117
|
|
br label %put20
|
|
put20:
|
|
%t131 = load ptr, ptr %t118
|
|
%t132 = getelementptr inbounds ptr, ptr %t131, i32 %t119
|
|
store ptr @.str1184, ptr %t132
|
|
%t133 = add i32 %t119, 1
|
|
store i32 %t133, ptr %t116
|
|
br label %ifend10
|
|
ifend10:
|
|
%t134 = load ptr, ptr %t1
|
|
%t135 = call i32 @fn_str_eq(ptr %t134, ptr @.str1185)
|
|
%t136 = icmp ne i32 %t135, 0
|
|
br i1 %t136, label %then21, label %ifend23
|
|
then21:
|
|
store ptr @.str1186, ptr %t3
|
|
%t137 = load ptr, ptr %t10
|
|
%t138 = getelementptr inbounds %LSlice, ptr %t137, i32 0, i32 1
|
|
%t139 = getelementptr inbounds %LSlice, ptr %t137, i32 0, i32 2
|
|
%t140 = getelementptr inbounds %LSlice, ptr %t137, i32 0, i32 0
|
|
%t141 = load i32, ptr %t138
|
|
%t142 = load i32, ptr %t139
|
|
%t143 = icmp sge i32 %t141, %t142
|
|
br i1 %t143, label %grow24, label %put25
|
|
grow24:
|
|
%t144 = mul i32 %t142, 2
|
|
%t145 = icmp eq i32 %t142, 0
|
|
%t146 = select i1 %t145, i32 8, i32 %t144
|
|
%t147 = getelementptr ptr, ptr null, i32 1
|
|
%t148 = ptrtoint ptr %t147 to i64
|
|
%t149 = zext i32 %t146 to i64
|
|
%t150 = mul i64 %t149, %t148
|
|
%t151 = load ptr, ptr %t140
|
|
%t152 = call ptr @realloc(ptr %t151, i64 %t150)
|
|
store ptr %t152, ptr %t140
|
|
store i32 %t146, ptr %t139
|
|
br label %put25
|
|
put25:
|
|
%t153 = load ptr, ptr %t140
|
|
%t154 = getelementptr inbounds ptr, ptr %t153, i32 %t141
|
|
store ptr @.str1187, ptr %t154
|
|
%t155 = add i32 %t141, 1
|
|
store i32 %t155, ptr %t138
|
|
%t156 = load ptr, ptr %t10
|
|
%t157 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 1
|
|
%t158 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 2
|
|
%t159 = getelementptr inbounds %LSlice, ptr %t156, i32 0, i32 0
|
|
%t160 = load i32, ptr %t157
|
|
%t161 = load i32, ptr %t158
|
|
%t162 = icmp sge i32 %t160, %t161
|
|
br i1 %t162, label %grow26, label %put27
|
|
grow26:
|
|
%t163 = mul i32 %t161, 2
|
|
%t164 = icmp eq i32 %t161, 0
|
|
%t165 = select i1 %t164, i32 8, i32 %t163
|
|
%t166 = getelementptr ptr, ptr null, i32 1
|
|
%t167 = ptrtoint ptr %t166 to i64
|
|
%t168 = zext i32 %t165 to i64
|
|
%t169 = mul i64 %t168, %t167
|
|
%t170 = load ptr, ptr %t159
|
|
%t171 = call ptr @realloc(ptr %t170, i64 %t169)
|
|
store ptr %t171, ptr %t159
|
|
store i32 %t165, ptr %t158
|
|
br label %put27
|
|
put27:
|
|
%t172 = load ptr, ptr %t159
|
|
%t173 = getelementptr inbounds ptr, ptr %t172, i32 %t160
|
|
store ptr @.str1188, ptr %t173
|
|
%t174 = add i32 %t160, 1
|
|
store i32 %t174, ptr %t157
|
|
%t175 = load ptr, ptr %t10
|
|
%t176 = getelementptr inbounds %LSlice, ptr %t175, i32 0, i32 1
|
|
%t177 = getelementptr inbounds %LSlice, ptr %t175, i32 0, i32 2
|
|
%t178 = getelementptr inbounds %LSlice, ptr %t175, i32 0, i32 0
|
|
%t179 = load i32, ptr %t176
|
|
%t180 = load i32, ptr %t177
|
|
%t181 = icmp sge i32 %t179, %t180
|
|
br i1 %t181, label %grow28, label %put29
|
|
grow28:
|
|
%t182 = mul i32 %t180, 2
|
|
%t183 = icmp eq i32 %t180, 0
|
|
%t184 = select i1 %t183, i32 8, i32 %t182
|
|
%t185 = getelementptr ptr, ptr null, i32 1
|
|
%t186 = ptrtoint ptr %t185 to i64
|
|
%t187 = zext i32 %t184 to i64
|
|
%t188 = mul i64 %t187, %t186
|
|
%t189 = load ptr, ptr %t178
|
|
%t190 = call ptr @realloc(ptr %t189, i64 %t188)
|
|
store ptr %t190, ptr %t178
|
|
store i32 %t184, ptr %t177
|
|
br label %put29
|
|
put29:
|
|
%t191 = load ptr, ptr %t178
|
|
%t192 = getelementptr inbounds ptr, ptr %t191, i32 %t179
|
|
store ptr @.str1189, ptr %t192
|
|
%t193 = add i32 %t179, 1
|
|
store i32 %t193, ptr %t176
|
|
%t194 = load ptr, ptr %t10
|
|
%t195 = getelementptr inbounds %LSlice, ptr %t194, i32 0, i32 1
|
|
%t196 = getelementptr inbounds %LSlice, ptr %t194, i32 0, i32 2
|
|
%t197 = getelementptr inbounds %LSlice, ptr %t194, i32 0, i32 0
|
|
%t198 = load i32, ptr %t195
|
|
%t199 = load i32, ptr %t196
|
|
%t200 = icmp sge i32 %t198, %t199
|
|
br i1 %t200, label %grow30, label %put31
|
|
grow30:
|
|
%t201 = mul i32 %t199, 2
|
|
%t202 = icmp eq i32 %t199, 0
|
|
%t203 = select i1 %t202, i32 8, i32 %t201
|
|
%t204 = getelementptr ptr, ptr null, i32 1
|
|
%t205 = ptrtoint ptr %t204 to i64
|
|
%t206 = zext i32 %t203 to i64
|
|
%t207 = mul i64 %t206, %t205
|
|
%t208 = load ptr, ptr %t197
|
|
%t209 = call ptr @realloc(ptr %t208, i64 %t207)
|
|
store ptr %t209, ptr %t197
|
|
store i32 %t203, ptr %t196
|
|
br label %put31
|
|
put31:
|
|
%t210 = load ptr, ptr %t197
|
|
%t211 = getelementptr inbounds ptr, ptr %t210, i32 %t198
|
|
store ptr @.str1190, ptr %t211
|
|
%t212 = add i32 %t198, 1
|
|
store i32 %t212, ptr %t195
|
|
%t213 = load ptr, ptr %t10
|
|
%t214 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 1
|
|
%t215 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 2
|
|
%t216 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 0
|
|
%t217 = load i32, ptr %t214
|
|
%t218 = load i32, ptr %t215
|
|
%t219 = icmp sge i32 %t217, %t218
|
|
br i1 %t219, label %grow32, label %put33
|
|
grow32:
|
|
%t220 = mul i32 %t218, 2
|
|
%t221 = icmp eq i32 %t218, 0
|
|
%t222 = select i1 %t221, i32 8, i32 %t220
|
|
%t223 = getelementptr ptr, ptr null, i32 1
|
|
%t224 = ptrtoint ptr %t223 to i64
|
|
%t225 = zext i32 %t222 to i64
|
|
%t226 = mul i64 %t225, %t224
|
|
%t227 = load ptr, ptr %t216
|
|
%t228 = call ptr @realloc(ptr %t227, i64 %t226)
|
|
store ptr %t228, ptr %t216
|
|
store i32 %t222, ptr %t215
|
|
br label %put33
|
|
put33:
|
|
%t229 = load ptr, ptr %t216
|
|
%t230 = getelementptr inbounds ptr, ptr %t229, i32 %t217
|
|
store ptr @.str1191, ptr %t230
|
|
%t231 = add i32 %t217, 1
|
|
store i32 %t231, ptr %t214
|
|
br label %ifend23
|
|
ifend23:
|
|
%t232 = load ptr, ptr %t1
|
|
%t233 = call i32 @fn_str_eq(ptr %t232, ptr @.str1192)
|
|
%t234 = icmp ne i32 %t233, 0
|
|
br i1 %t234, label %then34, label %ifend36
|
|
then34:
|
|
store ptr @.str1193, ptr %t3
|
|
%t235 = load ptr, ptr %t10
|
|
%t236 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 1
|
|
%t237 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 2
|
|
%t238 = getelementptr inbounds %LSlice, ptr %t235, i32 0, i32 0
|
|
%t239 = load i32, ptr %t236
|
|
%t240 = load i32, ptr %t237
|
|
%t241 = icmp sge i32 %t239, %t240
|
|
br i1 %t241, label %grow37, label %put38
|
|
grow37:
|
|
%t242 = mul i32 %t240, 2
|
|
%t243 = icmp eq i32 %t240, 0
|
|
%t244 = select i1 %t243, i32 8, i32 %t242
|
|
%t245 = getelementptr ptr, ptr null, i32 1
|
|
%t246 = ptrtoint ptr %t245 to i64
|
|
%t247 = zext i32 %t244 to i64
|
|
%t248 = mul i64 %t247, %t246
|
|
%t249 = load ptr, ptr %t238
|
|
%t250 = call ptr @realloc(ptr %t249, i64 %t248)
|
|
store ptr %t250, ptr %t238
|
|
store i32 %t244, ptr %t237
|
|
br label %put38
|
|
put38:
|
|
%t251 = load ptr, ptr %t238
|
|
%t252 = getelementptr inbounds ptr, ptr %t251, i32 %t239
|
|
store ptr @.str1194, ptr %t252
|
|
%t253 = add i32 %t239, 1
|
|
store i32 %t253, ptr %t236
|
|
%t254 = load ptr, ptr %t10
|
|
%t255 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 1
|
|
%t256 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 2
|
|
%t257 = getelementptr inbounds %LSlice, ptr %t254, i32 0, i32 0
|
|
%t258 = load i32, ptr %t255
|
|
%t259 = load i32, ptr %t256
|
|
%t260 = icmp sge i32 %t258, %t259
|
|
br i1 %t260, label %grow39, label %put40
|
|
grow39:
|
|
%t261 = mul i32 %t259, 2
|
|
%t262 = icmp eq i32 %t259, 0
|
|
%t263 = select i1 %t262, i32 8, i32 %t261
|
|
%t264 = getelementptr ptr, ptr null, i32 1
|
|
%t265 = ptrtoint ptr %t264 to i64
|
|
%t266 = zext i32 %t263 to i64
|
|
%t267 = mul i64 %t266, %t265
|
|
%t268 = load ptr, ptr %t257
|
|
%t269 = call ptr @realloc(ptr %t268, i64 %t267)
|
|
store ptr %t269, ptr %t257
|
|
store i32 %t263, ptr %t256
|
|
br label %put40
|
|
put40:
|
|
%t270 = load ptr, ptr %t257
|
|
%t271 = getelementptr inbounds ptr, ptr %t270, i32 %t258
|
|
store ptr @.str1195, ptr %t271
|
|
%t272 = add i32 %t258, 1
|
|
store i32 %t272, ptr %t255
|
|
%t273 = load ptr, ptr %t10
|
|
%t274 = getelementptr inbounds %LSlice, ptr %t273, i32 0, i32 1
|
|
%t275 = getelementptr inbounds %LSlice, ptr %t273, i32 0, i32 2
|
|
%t276 = getelementptr inbounds %LSlice, ptr %t273, i32 0, i32 0
|
|
%t277 = load i32, ptr %t274
|
|
%t278 = load i32, ptr %t275
|
|
%t279 = icmp sge i32 %t277, %t278
|
|
br i1 %t279, label %grow41, label %put42
|
|
grow41:
|
|
%t280 = mul i32 %t278, 2
|
|
%t281 = icmp eq i32 %t278, 0
|
|
%t282 = select i1 %t281, i32 8, i32 %t280
|
|
%t283 = getelementptr ptr, ptr null, i32 1
|
|
%t284 = ptrtoint ptr %t283 to i64
|
|
%t285 = zext i32 %t282 to i64
|
|
%t286 = mul i64 %t285, %t284
|
|
%t287 = load ptr, ptr %t276
|
|
%t288 = call ptr @realloc(ptr %t287, i64 %t286)
|
|
store ptr %t288, ptr %t276
|
|
store i32 %t282, ptr %t275
|
|
br label %put42
|
|
put42:
|
|
%t289 = load ptr, ptr %t276
|
|
%t290 = getelementptr inbounds ptr, ptr %t289, i32 %t277
|
|
store ptr @.str1196, ptr %t290
|
|
%t291 = add i32 %t277, 1
|
|
store i32 %t291, ptr %t274
|
|
br label %ifend36
|
|
ifend36:
|
|
%t292 = load ptr, ptr %t1
|
|
%t293 = call i32 @fn_str_eq(ptr %t292, ptr @.str1197)
|
|
%t294 = icmp ne i32 %t293, 0
|
|
br i1 %t294, label %then43, label %ifend45
|
|
then43:
|
|
store ptr @.str1198, ptr %t3
|
|
%t295 = load ptr, ptr %t10
|
|
%t296 = getelementptr inbounds %LSlice, ptr %t295, i32 0, i32 1
|
|
%t297 = getelementptr inbounds %LSlice, ptr %t295, i32 0, i32 2
|
|
%t298 = getelementptr inbounds %LSlice, ptr %t295, i32 0, i32 0
|
|
%t299 = load i32, ptr %t296
|
|
%t300 = load i32, ptr %t297
|
|
%t301 = icmp sge i32 %t299, %t300
|
|
br i1 %t301, label %grow46, label %put47
|
|
grow46:
|
|
%t302 = mul i32 %t300, 2
|
|
%t303 = icmp eq i32 %t300, 0
|
|
%t304 = select i1 %t303, i32 8, i32 %t302
|
|
%t305 = getelementptr ptr, ptr null, i32 1
|
|
%t306 = ptrtoint ptr %t305 to i64
|
|
%t307 = zext i32 %t304 to i64
|
|
%t308 = mul i64 %t307, %t306
|
|
%t309 = load ptr, ptr %t298
|
|
%t310 = call ptr @realloc(ptr %t309, i64 %t308)
|
|
store ptr %t310, ptr %t298
|
|
store i32 %t304, ptr %t297
|
|
br label %put47
|
|
put47:
|
|
%t311 = load ptr, ptr %t298
|
|
%t312 = getelementptr inbounds ptr, ptr %t311, i32 %t299
|
|
store ptr @.str1199, ptr %t312
|
|
%t313 = add i32 %t299, 1
|
|
store i32 %t313, ptr %t296
|
|
%t314 = load ptr, ptr %t10
|
|
%t315 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 1
|
|
%t316 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 2
|
|
%t317 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 0
|
|
%t318 = load i32, ptr %t315
|
|
%t319 = load i32, ptr %t316
|
|
%t320 = icmp sge i32 %t318, %t319
|
|
br i1 %t320, label %grow48, label %put49
|
|
grow48:
|
|
%t321 = mul i32 %t319, 2
|
|
%t322 = icmp eq i32 %t319, 0
|
|
%t323 = select i1 %t322, i32 8, i32 %t321
|
|
%t324 = getelementptr ptr, ptr null, i32 1
|
|
%t325 = ptrtoint ptr %t324 to i64
|
|
%t326 = zext i32 %t323 to i64
|
|
%t327 = mul i64 %t326, %t325
|
|
%t328 = load ptr, ptr %t317
|
|
%t329 = call ptr @realloc(ptr %t328, i64 %t327)
|
|
store ptr %t329, ptr %t317
|
|
store i32 %t323, ptr %t316
|
|
br label %put49
|
|
put49:
|
|
%t330 = load ptr, ptr %t317
|
|
%t331 = getelementptr inbounds ptr, ptr %t330, i32 %t318
|
|
store ptr @.str1200, ptr %t331
|
|
%t332 = add i32 %t318, 1
|
|
store i32 %t332, ptr %t315
|
|
%t333 = load ptr, ptr %t10
|
|
%t334 = getelementptr inbounds %LSlice, ptr %t333, i32 0, i32 1
|
|
%t335 = getelementptr inbounds %LSlice, ptr %t333, i32 0, i32 2
|
|
%t336 = getelementptr inbounds %LSlice, ptr %t333, i32 0, i32 0
|
|
%t337 = load i32, ptr %t334
|
|
%t338 = load i32, ptr %t335
|
|
%t339 = icmp sge i32 %t337, %t338
|
|
br i1 %t339, label %grow50, label %put51
|
|
grow50:
|
|
%t340 = mul i32 %t338, 2
|
|
%t341 = icmp eq i32 %t338, 0
|
|
%t342 = select i1 %t341, i32 8, i32 %t340
|
|
%t343 = getelementptr ptr, ptr null, i32 1
|
|
%t344 = ptrtoint ptr %t343 to i64
|
|
%t345 = zext i32 %t342 to i64
|
|
%t346 = mul i64 %t345, %t344
|
|
%t347 = load ptr, ptr %t336
|
|
%t348 = call ptr @realloc(ptr %t347, i64 %t346)
|
|
store ptr %t348, ptr %t336
|
|
store i32 %t342, ptr %t335
|
|
br label %put51
|
|
put51:
|
|
%t349 = load ptr, ptr %t336
|
|
%t350 = getelementptr inbounds ptr, ptr %t349, i32 %t337
|
|
store ptr @.str1201, ptr %t350
|
|
%t351 = add i32 %t337, 1
|
|
store i32 %t351, ptr %t334
|
|
%t352 = load ptr, ptr %t10
|
|
%t353 = getelementptr inbounds %LSlice, ptr %t352, i32 0, i32 1
|
|
%t354 = getelementptr inbounds %LSlice, ptr %t352, i32 0, i32 2
|
|
%t355 = getelementptr inbounds %LSlice, ptr %t352, i32 0, i32 0
|
|
%t356 = load i32, ptr %t353
|
|
%t357 = load i32, ptr %t354
|
|
%t358 = icmp sge i32 %t356, %t357
|
|
br i1 %t358, label %grow52, label %put53
|
|
grow52:
|
|
%t359 = mul i32 %t357, 2
|
|
%t360 = icmp eq i32 %t357, 0
|
|
%t361 = select i1 %t360, i32 8, i32 %t359
|
|
%t362 = getelementptr ptr, ptr null, i32 1
|
|
%t363 = ptrtoint ptr %t362 to i64
|
|
%t364 = zext i32 %t361 to i64
|
|
%t365 = mul i64 %t364, %t363
|
|
%t366 = load ptr, ptr %t355
|
|
%t367 = call ptr @realloc(ptr %t366, i64 %t365)
|
|
store ptr %t367, ptr %t355
|
|
store i32 %t361, ptr %t354
|
|
br label %put53
|
|
put53:
|
|
%t368 = load ptr, ptr %t355
|
|
%t369 = getelementptr inbounds ptr, ptr %t368, i32 %t356
|
|
store ptr @.str1202, ptr %t369
|
|
%t370 = add i32 %t356, 1
|
|
store i32 %t370, ptr %t353
|
|
%t371 = load ptr, ptr %t10
|
|
%t372 = getelementptr inbounds %LSlice, ptr %t371, i32 0, i32 1
|
|
%t373 = getelementptr inbounds %LSlice, ptr %t371, i32 0, i32 2
|
|
%t374 = getelementptr inbounds %LSlice, ptr %t371, i32 0, i32 0
|
|
%t375 = load i32, ptr %t372
|
|
%t376 = load i32, ptr %t373
|
|
%t377 = icmp sge i32 %t375, %t376
|
|
br i1 %t377, label %grow54, label %put55
|
|
grow54:
|
|
%t378 = mul i32 %t376, 2
|
|
%t379 = icmp eq i32 %t376, 0
|
|
%t380 = select i1 %t379, i32 8, i32 %t378
|
|
%t381 = getelementptr ptr, ptr null, i32 1
|
|
%t382 = ptrtoint ptr %t381 to i64
|
|
%t383 = zext i32 %t380 to i64
|
|
%t384 = mul i64 %t383, %t382
|
|
%t385 = load ptr, ptr %t374
|
|
%t386 = call ptr @realloc(ptr %t385, i64 %t384)
|
|
store ptr %t386, ptr %t374
|
|
store i32 %t380, ptr %t373
|
|
br label %put55
|
|
put55:
|
|
%t387 = load ptr, ptr %t374
|
|
%t388 = getelementptr inbounds ptr, ptr %t387, i32 %t375
|
|
store ptr @.str1203, ptr %t388
|
|
%t389 = add i32 %t375, 1
|
|
store i32 %t389, ptr %t372
|
|
br label %ifend45
|
|
ifend45:
|
|
%t390 = load ptr, ptr %t1
|
|
%t391 = call i32 @fn_str_eq(ptr %t390, ptr @.str1204)
|
|
%t392 = icmp ne i32 %t391, 0
|
|
br i1 %t392, label %then56, label %ifend58
|
|
then56:
|
|
store ptr @.str1205, ptr %t3
|
|
%t393 = load ptr, ptr %t10
|
|
%t394 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 1
|
|
%t395 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 2
|
|
%t396 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 0
|
|
%t397 = load i32, ptr %t394
|
|
%t398 = load i32, ptr %t395
|
|
%t399 = icmp sge i32 %t397, %t398
|
|
br i1 %t399, label %grow59, label %put60
|
|
grow59:
|
|
%t400 = mul i32 %t398, 2
|
|
%t401 = icmp eq i32 %t398, 0
|
|
%t402 = select i1 %t401, i32 8, i32 %t400
|
|
%t403 = getelementptr ptr, ptr null, i32 1
|
|
%t404 = ptrtoint ptr %t403 to i64
|
|
%t405 = zext i32 %t402 to i64
|
|
%t406 = mul i64 %t405, %t404
|
|
%t407 = load ptr, ptr %t396
|
|
%t408 = call ptr @realloc(ptr %t407, i64 %t406)
|
|
store ptr %t408, ptr %t396
|
|
store i32 %t402, ptr %t395
|
|
br label %put60
|
|
put60:
|
|
%t409 = load ptr, ptr %t396
|
|
%t410 = getelementptr inbounds ptr, ptr %t409, i32 %t397
|
|
store ptr @.str1206, ptr %t410
|
|
%t411 = add i32 %t397, 1
|
|
store i32 %t411, ptr %t394
|
|
%t412 = load ptr, ptr %t10
|
|
%t413 = getelementptr inbounds %LSlice, ptr %t412, i32 0, i32 1
|
|
%t414 = getelementptr inbounds %LSlice, ptr %t412, i32 0, i32 2
|
|
%t415 = getelementptr inbounds %LSlice, ptr %t412, i32 0, i32 0
|
|
%t416 = load i32, ptr %t413
|
|
%t417 = load i32, ptr %t414
|
|
%t418 = icmp sge i32 %t416, %t417
|
|
br i1 %t418, label %grow61, label %put62
|
|
grow61:
|
|
%t419 = mul i32 %t417, 2
|
|
%t420 = icmp eq i32 %t417, 0
|
|
%t421 = select i1 %t420, i32 8, i32 %t419
|
|
%t422 = getelementptr ptr, ptr null, i32 1
|
|
%t423 = ptrtoint ptr %t422 to i64
|
|
%t424 = zext i32 %t421 to i64
|
|
%t425 = mul i64 %t424, %t423
|
|
%t426 = load ptr, ptr %t415
|
|
%t427 = call ptr @realloc(ptr %t426, i64 %t425)
|
|
store ptr %t427, ptr %t415
|
|
store i32 %t421, ptr %t414
|
|
br label %put62
|
|
put62:
|
|
%t428 = load ptr, ptr %t415
|
|
%t429 = getelementptr inbounds ptr, ptr %t428, i32 %t416
|
|
store ptr @.str1207, ptr %t429
|
|
%t430 = add i32 %t416, 1
|
|
store i32 %t430, ptr %t413
|
|
%t431 = load ptr, ptr %t10
|
|
%t432 = getelementptr inbounds %LSlice, ptr %t431, i32 0, i32 1
|
|
%t433 = getelementptr inbounds %LSlice, ptr %t431, i32 0, i32 2
|
|
%t434 = getelementptr inbounds %LSlice, ptr %t431, i32 0, i32 0
|
|
%t435 = load i32, ptr %t432
|
|
%t436 = load i32, ptr %t433
|
|
%t437 = icmp sge i32 %t435, %t436
|
|
br i1 %t437, label %grow63, label %put64
|
|
grow63:
|
|
%t438 = mul i32 %t436, 2
|
|
%t439 = icmp eq i32 %t436, 0
|
|
%t440 = select i1 %t439, i32 8, i32 %t438
|
|
%t441 = getelementptr ptr, ptr null, i32 1
|
|
%t442 = ptrtoint ptr %t441 to i64
|
|
%t443 = zext i32 %t440 to i64
|
|
%t444 = mul i64 %t443, %t442
|
|
%t445 = load ptr, ptr %t434
|
|
%t446 = call ptr @realloc(ptr %t445, i64 %t444)
|
|
store ptr %t446, ptr %t434
|
|
store i32 %t440, ptr %t433
|
|
br label %put64
|
|
put64:
|
|
%t447 = load ptr, ptr %t434
|
|
%t448 = getelementptr inbounds ptr, ptr %t447, i32 %t435
|
|
store ptr @.str1208, ptr %t448
|
|
%t449 = add i32 %t435, 1
|
|
store i32 %t449, ptr %t432
|
|
%t450 = load ptr, ptr %t10
|
|
%t451 = getelementptr inbounds %LSlice, ptr %t450, i32 0, i32 1
|
|
%t452 = getelementptr inbounds %LSlice, ptr %t450, i32 0, i32 2
|
|
%t453 = getelementptr inbounds %LSlice, ptr %t450, i32 0, i32 0
|
|
%t454 = load i32, ptr %t451
|
|
%t455 = load i32, ptr %t452
|
|
%t456 = icmp sge i32 %t454, %t455
|
|
br i1 %t456, label %grow65, label %put66
|
|
grow65:
|
|
%t457 = mul i32 %t455, 2
|
|
%t458 = icmp eq i32 %t455, 0
|
|
%t459 = select i1 %t458, i32 8, i32 %t457
|
|
%t460 = getelementptr ptr, ptr null, i32 1
|
|
%t461 = ptrtoint ptr %t460 to i64
|
|
%t462 = zext i32 %t459 to i64
|
|
%t463 = mul i64 %t462, %t461
|
|
%t464 = load ptr, ptr %t453
|
|
%t465 = call ptr @realloc(ptr %t464, i64 %t463)
|
|
store ptr %t465, ptr %t453
|
|
store i32 %t459, ptr %t452
|
|
br label %put66
|
|
put66:
|
|
%t466 = load ptr, ptr %t453
|
|
%t467 = getelementptr inbounds ptr, ptr %t466, i32 %t454
|
|
store ptr @.str1209, ptr %t467
|
|
%t468 = add i32 %t454, 1
|
|
store i32 %t468, ptr %t451
|
|
%t469 = load ptr, ptr %t10
|
|
%t470 = getelementptr inbounds %LSlice, ptr %t469, i32 0, i32 1
|
|
%t471 = getelementptr inbounds %LSlice, ptr %t469, i32 0, i32 2
|
|
%t472 = getelementptr inbounds %LSlice, ptr %t469, i32 0, i32 0
|
|
%t473 = load i32, ptr %t470
|
|
%t474 = load i32, ptr %t471
|
|
%t475 = icmp sge i32 %t473, %t474
|
|
br i1 %t475, label %grow67, label %put68
|
|
grow67:
|
|
%t476 = mul i32 %t474, 2
|
|
%t477 = icmp eq i32 %t474, 0
|
|
%t478 = select i1 %t477, i32 8, i32 %t476
|
|
%t479 = getelementptr ptr, ptr null, i32 1
|
|
%t480 = ptrtoint ptr %t479 to i64
|
|
%t481 = zext i32 %t478 to i64
|
|
%t482 = mul i64 %t481, %t480
|
|
%t483 = load ptr, ptr %t472
|
|
%t484 = call ptr @realloc(ptr %t483, i64 %t482)
|
|
store ptr %t484, ptr %t472
|
|
store i32 %t478, ptr %t471
|
|
br label %put68
|
|
put68:
|
|
%t485 = load ptr, ptr %t472
|
|
%t486 = getelementptr inbounds ptr, ptr %t485, i32 %t473
|
|
store ptr @.str1210, ptr %t486
|
|
%t487 = add i32 %t473, 1
|
|
store i32 %t487, ptr %t470
|
|
br label %ifend58
|
|
ifend58:
|
|
%t488 = load ptr, ptr %t1
|
|
%t489 = call i32 @fn_str_eq(ptr %t488, ptr @.str1211)
|
|
%t490 = icmp ne i32 %t489, 0
|
|
br i1 %t490, label %then69, label %ifend71
|
|
then69:
|
|
store ptr @.str1212, ptr %t3
|
|
br label %ifend71
|
|
ifend71:
|
|
%t491 = load ptr, ptr %t1
|
|
%t492 = call i32 @fn_str_eq(ptr %t491, ptr @.str1213)
|
|
%t493 = icmp ne i32 %t492, 0
|
|
br i1 %t493, label %then72, label %ifend74
|
|
then72:
|
|
store ptr @.str1214, ptr %t3
|
|
br label %ifend74
|
|
ifend74:
|
|
%t494 = load ptr, ptr %t1
|
|
%t495 = call i32 @fn_str_eq(ptr %t494, ptr @.str1215)
|
|
%t496 = icmp ne i32 %t495, 0
|
|
br i1 %t496, label %then75, label %ifend77
|
|
then75:
|
|
store ptr @.str1216, ptr %t3
|
|
br label %ifend77
|
|
ifend77:
|
|
%t497 = load ptr, ptr %t1
|
|
%t498 = call i32 @fn_str_eq(ptr %t497, ptr @.str1217)
|
|
%t499 = icmp ne i32 %t498, 0
|
|
br i1 %t499, label %then78, label %ifend80
|
|
then78:
|
|
store ptr @.str1218, ptr %t3
|
|
%t500 = load ptr, ptr %t10
|
|
%t501 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 1
|
|
%t502 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 2
|
|
%t503 = getelementptr inbounds %LSlice, ptr %t500, i32 0, i32 0
|
|
%t504 = load i32, ptr %t501
|
|
%t505 = load i32, ptr %t502
|
|
%t506 = icmp sge i32 %t504, %t505
|
|
br i1 %t506, label %grow81, label %put82
|
|
grow81:
|
|
%t507 = mul i32 %t505, 2
|
|
%t508 = icmp eq i32 %t505, 0
|
|
%t509 = select i1 %t508, i32 8, i32 %t507
|
|
%t510 = getelementptr ptr, ptr null, i32 1
|
|
%t511 = ptrtoint ptr %t510 to i64
|
|
%t512 = zext i32 %t509 to i64
|
|
%t513 = mul i64 %t512, %t511
|
|
%t514 = load ptr, ptr %t503
|
|
%t515 = call ptr @realloc(ptr %t514, i64 %t513)
|
|
store ptr %t515, ptr %t503
|
|
store i32 %t509, ptr %t502
|
|
br label %put82
|
|
put82:
|
|
%t516 = load ptr, ptr %t503
|
|
%t517 = getelementptr inbounds ptr, ptr %t516, i32 %t504
|
|
store ptr @.str1219, ptr %t517
|
|
%t518 = add i32 %t504, 1
|
|
store i32 %t518, ptr %t501
|
|
br label %ifend80
|
|
ifend80:
|
|
br label %ifend2
|
|
ifend2:
|
|
%t519 = load ptr, ptr %t0
|
|
%t520 = call i32 @fn_str_eq(ptr %t519, ptr @.str1220)
|
|
%t521 = icmp ne i32 %t520, 0
|
|
br i1 %t521, label %then83, label %ifend85
|
|
then83:
|
|
%t522 = load ptr, ptr %t1
|
|
%t523 = call i32 @fn_str_eq(ptr %t522, ptr @.str1221)
|
|
%t524 = icmp ne i32 %t523, 0
|
|
br i1 %t524, label %then86, label %ifend88
|
|
then86:
|
|
store ptr @.str1222, ptr %t3
|
|
%t525 = load ptr, ptr %t10
|
|
%t526 = getelementptr inbounds %LSlice, ptr %t525, i32 0, i32 1
|
|
%t527 = getelementptr inbounds %LSlice, ptr %t525, i32 0, i32 2
|
|
%t528 = getelementptr inbounds %LSlice, ptr %t525, i32 0, i32 0
|
|
%t529 = load i32, ptr %t526
|
|
%t530 = load i32, ptr %t527
|
|
%t531 = icmp sge i32 %t529, %t530
|
|
br i1 %t531, label %grow89, label %put90
|
|
grow89:
|
|
%t532 = mul i32 %t530, 2
|
|
%t533 = icmp eq i32 %t530, 0
|
|
%t534 = select i1 %t533, i32 8, i32 %t532
|
|
%t535 = getelementptr ptr, ptr null, i32 1
|
|
%t536 = ptrtoint ptr %t535 to i64
|
|
%t537 = zext i32 %t534 to i64
|
|
%t538 = mul i64 %t537, %t536
|
|
%t539 = load ptr, ptr %t528
|
|
%t540 = call ptr @realloc(ptr %t539, i64 %t538)
|
|
store ptr %t540, ptr %t528
|
|
store i32 %t534, ptr %t527
|
|
br label %put90
|
|
put90:
|
|
%t541 = load ptr, ptr %t528
|
|
%t542 = getelementptr inbounds ptr, ptr %t541, i32 %t529
|
|
store ptr @.str1223, ptr %t542
|
|
%t543 = add i32 %t529, 1
|
|
store i32 %t543, ptr %t526
|
|
%t544 = load ptr, ptr %t10
|
|
%t545 = getelementptr inbounds %LSlice, ptr %t544, i32 0, i32 1
|
|
%t546 = getelementptr inbounds %LSlice, ptr %t544, i32 0, i32 2
|
|
%t547 = getelementptr inbounds %LSlice, ptr %t544, i32 0, i32 0
|
|
%t548 = load i32, ptr %t545
|
|
%t549 = load i32, ptr %t546
|
|
%t550 = icmp sge i32 %t548, %t549
|
|
br i1 %t550, label %grow91, label %put92
|
|
grow91:
|
|
%t551 = mul i32 %t549, 2
|
|
%t552 = icmp eq i32 %t549, 0
|
|
%t553 = select i1 %t552, i32 8, i32 %t551
|
|
%t554 = getelementptr ptr, ptr null, i32 1
|
|
%t555 = ptrtoint ptr %t554 to i64
|
|
%t556 = zext i32 %t553 to i64
|
|
%t557 = mul i64 %t556, %t555
|
|
%t558 = load ptr, ptr %t547
|
|
%t559 = call ptr @realloc(ptr %t558, i64 %t557)
|
|
store ptr %t559, ptr %t547
|
|
store i32 %t553, ptr %t546
|
|
br label %put92
|
|
put92:
|
|
%t560 = load ptr, ptr %t547
|
|
%t561 = getelementptr inbounds ptr, ptr %t560, i32 %t548
|
|
store ptr @.str1224, ptr %t561
|
|
%t562 = add i32 %t548, 1
|
|
store i32 %t562, ptr %t545
|
|
br label %ifend88
|
|
ifend88:
|
|
%t563 = load ptr, ptr %t1
|
|
%t564 = call i32 @fn_str_eq(ptr %t563, ptr @.str1225)
|
|
%t565 = icmp ne i32 %t564, 0
|
|
br i1 %t565, label %then93, label %ifend95
|
|
then93:
|
|
store ptr @.str1226, ptr %t3
|
|
%t566 = load ptr, ptr %t10
|
|
%t567 = getelementptr inbounds %LSlice, ptr %t566, i32 0, i32 1
|
|
%t568 = getelementptr inbounds %LSlice, ptr %t566, i32 0, i32 2
|
|
%t569 = getelementptr inbounds %LSlice, ptr %t566, i32 0, i32 0
|
|
%t570 = load i32, ptr %t567
|
|
%t571 = load i32, ptr %t568
|
|
%t572 = icmp sge i32 %t570, %t571
|
|
br i1 %t572, label %grow96, label %put97
|
|
grow96:
|
|
%t573 = mul i32 %t571, 2
|
|
%t574 = icmp eq i32 %t571, 0
|
|
%t575 = select i1 %t574, i32 8, i32 %t573
|
|
%t576 = getelementptr ptr, ptr null, i32 1
|
|
%t577 = ptrtoint ptr %t576 to i64
|
|
%t578 = zext i32 %t575 to i64
|
|
%t579 = mul i64 %t578, %t577
|
|
%t580 = load ptr, ptr %t569
|
|
%t581 = call ptr @realloc(ptr %t580, i64 %t579)
|
|
store ptr %t581, ptr %t569
|
|
store i32 %t575, ptr %t568
|
|
br label %put97
|
|
put97:
|
|
%t582 = load ptr, ptr %t569
|
|
%t583 = getelementptr inbounds ptr, ptr %t582, i32 %t570
|
|
store ptr @.str1227, ptr %t583
|
|
%t584 = add i32 %t570, 1
|
|
store i32 %t584, ptr %t567
|
|
%t585 = load ptr, ptr %t10
|
|
%t586 = getelementptr inbounds %LSlice, ptr %t585, i32 0, i32 1
|
|
%t587 = getelementptr inbounds %LSlice, ptr %t585, i32 0, i32 2
|
|
%t588 = getelementptr inbounds %LSlice, ptr %t585, i32 0, i32 0
|
|
%t589 = load i32, ptr %t586
|
|
%t590 = load i32, ptr %t587
|
|
%t591 = icmp sge i32 %t589, %t590
|
|
br i1 %t591, label %grow98, label %put99
|
|
grow98:
|
|
%t592 = mul i32 %t590, 2
|
|
%t593 = icmp eq i32 %t590, 0
|
|
%t594 = select i1 %t593, i32 8, i32 %t592
|
|
%t595 = getelementptr ptr, ptr null, i32 1
|
|
%t596 = ptrtoint ptr %t595 to i64
|
|
%t597 = zext i32 %t594 to i64
|
|
%t598 = mul i64 %t597, %t596
|
|
%t599 = load ptr, ptr %t588
|
|
%t600 = call ptr @realloc(ptr %t599, i64 %t598)
|
|
store ptr %t600, ptr %t588
|
|
store i32 %t594, ptr %t587
|
|
br label %put99
|
|
put99:
|
|
%t601 = load ptr, ptr %t588
|
|
%t602 = getelementptr inbounds ptr, ptr %t601, i32 %t589
|
|
store ptr @.str1228, ptr %t602
|
|
%t603 = add i32 %t589, 1
|
|
store i32 %t603, ptr %t586
|
|
br label %ifend95
|
|
ifend95:
|
|
%t604 = load ptr, ptr %t1
|
|
%t605 = call i32 @fn_str_eq(ptr %t604, ptr @.str1229)
|
|
%t606 = icmp ne i32 %t605, 0
|
|
br i1 %t606, label %then100, label %ifend102
|
|
then100:
|
|
store ptr @.str1230, ptr %t3
|
|
%t607 = load ptr, ptr %t10
|
|
%t608 = getelementptr inbounds %LSlice, ptr %t607, i32 0, i32 1
|
|
%t609 = getelementptr inbounds %LSlice, ptr %t607, i32 0, i32 2
|
|
%t610 = getelementptr inbounds %LSlice, ptr %t607, i32 0, i32 0
|
|
%t611 = load i32, ptr %t608
|
|
%t612 = load i32, ptr %t609
|
|
%t613 = icmp sge i32 %t611, %t612
|
|
br i1 %t613, label %grow103, label %put104
|
|
grow103:
|
|
%t614 = mul i32 %t612, 2
|
|
%t615 = icmp eq i32 %t612, 0
|
|
%t616 = select i1 %t615, i32 8, i32 %t614
|
|
%t617 = getelementptr ptr, ptr null, i32 1
|
|
%t618 = ptrtoint ptr %t617 to i64
|
|
%t619 = zext i32 %t616 to i64
|
|
%t620 = mul i64 %t619, %t618
|
|
%t621 = load ptr, ptr %t610
|
|
%t622 = call ptr @realloc(ptr %t621, i64 %t620)
|
|
store ptr %t622, ptr %t610
|
|
store i32 %t616, ptr %t609
|
|
br label %put104
|
|
put104:
|
|
%t623 = load ptr, ptr %t610
|
|
%t624 = getelementptr inbounds ptr, ptr %t623, i32 %t611
|
|
store ptr @.str1231, ptr %t624
|
|
%t625 = add i32 %t611, 1
|
|
store i32 %t625, ptr %t608
|
|
%t626 = load ptr, ptr %t10
|
|
%t627 = getelementptr inbounds %LSlice, ptr %t626, i32 0, i32 1
|
|
%t628 = getelementptr inbounds %LSlice, ptr %t626, i32 0, i32 2
|
|
%t629 = getelementptr inbounds %LSlice, ptr %t626, i32 0, i32 0
|
|
%t630 = load i32, ptr %t627
|
|
%t631 = load i32, ptr %t628
|
|
%t632 = icmp sge i32 %t630, %t631
|
|
br i1 %t632, label %grow105, label %put106
|
|
grow105:
|
|
%t633 = mul i32 %t631, 2
|
|
%t634 = icmp eq i32 %t631, 0
|
|
%t635 = select i1 %t634, i32 8, i32 %t633
|
|
%t636 = getelementptr ptr, ptr null, i32 1
|
|
%t637 = ptrtoint ptr %t636 to i64
|
|
%t638 = zext i32 %t635 to i64
|
|
%t639 = mul i64 %t638, %t637
|
|
%t640 = load ptr, ptr %t629
|
|
%t641 = call ptr @realloc(ptr %t640, i64 %t639)
|
|
store ptr %t641, ptr %t629
|
|
store i32 %t635, ptr %t628
|
|
br label %put106
|
|
put106:
|
|
%t642 = load ptr, ptr %t629
|
|
%t643 = getelementptr inbounds ptr, ptr %t642, i32 %t630
|
|
store ptr @.str1232, ptr %t643
|
|
%t644 = add i32 %t630, 1
|
|
store i32 %t644, ptr %t627
|
|
br label %ifend102
|
|
ifend102:
|
|
br label %ifend85
|
|
ifend85:
|
|
%t645 = load ptr, ptr %t0
|
|
%t646 = call i32 @fn_str_eq(ptr %t645, ptr @.str1233)
|
|
%t647 = icmp ne i32 %t646, 0
|
|
br i1 %t647, label %then107, label %ifend109
|
|
then107:
|
|
%t648 = load ptr, ptr %t1
|
|
%t649 = call i32 @fn_str_eq(ptr %t648, ptr @.str1234)
|
|
%t650 = icmp ne i32 %t649, 0
|
|
br i1 %t650, label %then110, label %ifend112
|
|
then110:
|
|
store ptr @.str1235, ptr %t3
|
|
%t651 = load ptr, ptr %t10
|
|
%t652 = getelementptr inbounds %LSlice, ptr %t651, i32 0, i32 1
|
|
%t653 = getelementptr inbounds %LSlice, ptr %t651, i32 0, i32 2
|
|
%t654 = getelementptr inbounds %LSlice, ptr %t651, i32 0, i32 0
|
|
%t655 = load i32, ptr %t652
|
|
%t656 = load i32, ptr %t653
|
|
%t657 = icmp sge i32 %t655, %t656
|
|
br i1 %t657, label %grow113, label %put114
|
|
grow113:
|
|
%t658 = mul i32 %t656, 2
|
|
%t659 = icmp eq i32 %t656, 0
|
|
%t660 = select i1 %t659, i32 8, i32 %t658
|
|
%t661 = getelementptr ptr, ptr null, i32 1
|
|
%t662 = ptrtoint ptr %t661 to i64
|
|
%t663 = zext i32 %t660 to i64
|
|
%t664 = mul i64 %t663, %t662
|
|
%t665 = load ptr, ptr %t654
|
|
%t666 = call ptr @realloc(ptr %t665, i64 %t664)
|
|
store ptr %t666, ptr %t654
|
|
store i32 %t660, ptr %t653
|
|
br label %put114
|
|
put114:
|
|
%t667 = load ptr, ptr %t654
|
|
%t668 = getelementptr inbounds ptr, ptr %t667, i32 %t655
|
|
store ptr @.str1236, ptr %t668
|
|
%t669 = add i32 %t655, 1
|
|
store i32 %t669, ptr %t652
|
|
%t670 = load ptr, ptr %t10
|
|
%t671 = getelementptr inbounds %LSlice, ptr %t670, i32 0, i32 1
|
|
%t672 = getelementptr inbounds %LSlice, ptr %t670, i32 0, i32 2
|
|
%t673 = getelementptr inbounds %LSlice, ptr %t670, i32 0, i32 0
|
|
%t674 = load i32, ptr %t671
|
|
%t675 = load i32, ptr %t672
|
|
%t676 = icmp sge i32 %t674, %t675
|
|
br i1 %t676, label %grow115, label %put116
|
|
grow115:
|
|
%t677 = mul i32 %t675, 2
|
|
%t678 = icmp eq i32 %t675, 0
|
|
%t679 = select i1 %t678, i32 8, i32 %t677
|
|
%t680 = getelementptr ptr, ptr null, i32 1
|
|
%t681 = ptrtoint ptr %t680 to i64
|
|
%t682 = zext i32 %t679 to i64
|
|
%t683 = mul i64 %t682, %t681
|
|
%t684 = load ptr, ptr %t673
|
|
%t685 = call ptr @realloc(ptr %t684, i64 %t683)
|
|
store ptr %t685, ptr %t673
|
|
store i32 %t679, ptr %t672
|
|
br label %put116
|
|
put116:
|
|
%t686 = load ptr, ptr %t673
|
|
%t687 = getelementptr inbounds ptr, ptr %t686, i32 %t674
|
|
store ptr @.str1237, ptr %t687
|
|
%t688 = add i32 %t674, 1
|
|
store i32 %t688, ptr %t671
|
|
br label %ifend112
|
|
ifend112:
|
|
%t689 = load ptr, ptr %t1
|
|
%t690 = call i32 @fn_str_eq(ptr %t689, ptr @.str1238)
|
|
%t691 = icmp ne i32 %t690, 0
|
|
br i1 %t691, label %then117, label %ifend119
|
|
then117:
|
|
store ptr @.str1239, ptr %t3
|
|
%t692 = load ptr, ptr %t10
|
|
%t693 = getelementptr inbounds %LSlice, ptr %t692, i32 0, i32 1
|
|
%t694 = getelementptr inbounds %LSlice, ptr %t692, i32 0, i32 2
|
|
%t695 = getelementptr inbounds %LSlice, ptr %t692, i32 0, i32 0
|
|
%t696 = load i32, ptr %t693
|
|
%t697 = load i32, ptr %t694
|
|
%t698 = icmp sge i32 %t696, %t697
|
|
br i1 %t698, label %grow120, label %put121
|
|
grow120:
|
|
%t699 = mul i32 %t697, 2
|
|
%t700 = icmp eq i32 %t697, 0
|
|
%t701 = select i1 %t700, i32 8, i32 %t699
|
|
%t702 = getelementptr ptr, ptr null, i32 1
|
|
%t703 = ptrtoint ptr %t702 to i64
|
|
%t704 = zext i32 %t701 to i64
|
|
%t705 = mul i64 %t704, %t703
|
|
%t706 = load ptr, ptr %t695
|
|
%t707 = call ptr @realloc(ptr %t706, i64 %t705)
|
|
store ptr %t707, ptr %t695
|
|
store i32 %t701, ptr %t694
|
|
br label %put121
|
|
put121:
|
|
%t708 = load ptr, ptr %t695
|
|
%t709 = getelementptr inbounds ptr, ptr %t708, i32 %t696
|
|
store ptr @.str1240, ptr %t709
|
|
%t710 = add i32 %t696, 1
|
|
store i32 %t710, ptr %t693
|
|
br label %ifend119
|
|
ifend119:
|
|
%t711 = load ptr, ptr %t1
|
|
%t712 = call i32 @fn_str_eq(ptr %t711, ptr @.str1241)
|
|
%t713 = icmp ne i32 %t712, 0
|
|
br i1 %t713, label %then122, label %ifend124
|
|
then122:
|
|
store ptr @.str1242, ptr %t3
|
|
%t714 = load ptr, ptr %t10
|
|
%t715 = getelementptr inbounds %LSlice, ptr %t714, i32 0, i32 1
|
|
%t716 = getelementptr inbounds %LSlice, ptr %t714, i32 0, i32 2
|
|
%t717 = getelementptr inbounds %LSlice, ptr %t714, i32 0, i32 0
|
|
%t718 = load i32, ptr %t715
|
|
%t719 = load i32, ptr %t716
|
|
%t720 = icmp sge i32 %t718, %t719
|
|
br i1 %t720, label %grow125, label %put126
|
|
grow125:
|
|
%t721 = mul i32 %t719, 2
|
|
%t722 = icmp eq i32 %t719, 0
|
|
%t723 = select i1 %t722, i32 8, i32 %t721
|
|
%t724 = getelementptr ptr, ptr null, i32 1
|
|
%t725 = ptrtoint ptr %t724 to i64
|
|
%t726 = zext i32 %t723 to i64
|
|
%t727 = mul i64 %t726, %t725
|
|
%t728 = load ptr, ptr %t717
|
|
%t729 = call ptr @realloc(ptr %t728, i64 %t727)
|
|
store ptr %t729, ptr %t717
|
|
store i32 %t723, ptr %t716
|
|
br label %put126
|
|
put126:
|
|
%t730 = load ptr, ptr %t717
|
|
%t731 = getelementptr inbounds ptr, ptr %t730, i32 %t718
|
|
store ptr @.str1243, ptr %t731
|
|
%t732 = add i32 %t718, 1
|
|
store i32 %t732, ptr %t715
|
|
br label %ifend124
|
|
ifend124:
|
|
br label %ifend109
|
|
ifend109:
|
|
%t733 = load ptr, ptr %t0
|
|
%t734 = call i32 @fn_str_eq(ptr %t733, ptr @.str1244)
|
|
%t735 = icmp ne i32 %t734, 0
|
|
br i1 %t735, label %then127, label %ifend129
|
|
then127:
|
|
%t736 = load ptr, ptr %t1
|
|
%t737 = call i32 @fn_str_eq(ptr %t736, ptr @.str1245)
|
|
%t738 = icmp ne i32 %t737, 0
|
|
br i1 %t738, label %then130, label %ifend132
|
|
then130:
|
|
store ptr @.str1246, ptr %t3
|
|
br label %ifend132
|
|
ifend132:
|
|
br label %ifend129
|
|
ifend129:
|
|
%t739 = load ptr, ptr %t3
|
|
%t740 = icmp eq ptr %t739, null
|
|
%t741 = zext i1 %t740 to i32
|
|
%t742 = icmp ne i32 %t741, 0
|
|
br i1 %t742, label %then133, label %ifend135
|
|
then133:
|
|
%t743 = load ptr, ptr %t0
|
|
%t744 = call ptr @fn_str_concat(ptr @.str1247, ptr %t743)
|
|
%t745 = call ptr @fn_str_concat(ptr %t744, ptr @.str1248)
|
|
%t746 = load ptr, ptr %t1
|
|
%t747 = call ptr @fn_str_concat(ptr %t745, ptr %t746)
|
|
call void @fn_perr(ptr %t747)
|
|
br label %ifend135
|
|
ifend135:
|
|
%t748 = load ptr, ptr %t2
|
|
%t749 = load ptr, ptr %t10
|
|
call void @fn_reorder_named(ptr %t748, ptr %t749)
|
|
%t750 = call ptr @fn_node(i32 33)
|
|
store ptr %t750, ptr %t751
|
|
%t752 = load ptr, ptr %t751
|
|
%t753 = getelementptr inbounds %Cmp_Node, ptr %t752, i32 0, i32 1
|
|
%t754 = load ptr, ptr %t3
|
|
store ptr %t754, ptr %t753
|
|
%t755 = load ptr, ptr %t2
|
|
%t756 = getelementptr inbounds %Cmp_Node, ptr %t755, i32 0, i32 4
|
|
%t757 = load ptr, ptr %t751
|
|
store ptr %t757, ptr %t756
|
|
%t758 = load ptr, ptr %t2
|
|
%t759 = call ptr @fn_emit_call(ptr %t758)
|
|
store ptr %t759, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t760 = load ptr, ptr %retval
|
|
ret ptr %t760
|
|
}
|
|
|
|
define ptr @fn_emit_call(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t38 = alloca ptr
|
|
%t91 = alloca ptr
|
|
%t110 = alloca ptr
|
|
%t119 = alloca ptr
|
|
%t142 = alloca ptr
|
|
%t151 = alloca ptr
|
|
%t175 = alloca ptr
|
|
%t184 = alloca ptr
|
|
%t193 = alloca ptr
|
|
%t215 = alloca ptr
|
|
%t234 = alloca ptr
|
|
%t253 = alloca ptr
|
|
%t262 = alloca ptr
|
|
%t281 = alloca ptr
|
|
%t293 = alloca ptr
|
|
%t298 = alloca ptr
|
|
%t332 = alloca ptr
|
|
%t348 = alloca ptr
|
|
%t353 = alloca i32
|
|
%t373 = alloca ptr
|
|
%t382 = alloca ptr
|
|
%t391 = alloca ptr
|
|
%t402 = alloca i32
|
|
%t422 = alloca ptr
|
|
%t431 = alloca ptr
|
|
%t465 = alloca ptr
|
|
%t491 = alloca ptr
|
|
%t520 = alloca ptr
|
|
%t527 = alloca ptr
|
|
%t544 = alloca ptr
|
|
%t551 = alloca ptr
|
|
%t556 = alloca ptr
|
|
%t573 = alloca ptr
|
|
%t592 = alloca ptr
|
|
%t611 = alloca ptr
|
|
%t630 = alloca ptr
|
|
%t639 = alloca ptr
|
|
%t663 = alloca ptr
|
|
%t672 = alloca ptr
|
|
%t681 = alloca ptr
|
|
%t698 = alloca ptr
|
|
%t715 = alloca ptr
|
|
%t724 = alloca ptr
|
|
%t733 = alloca ptr
|
|
%t742 = alloca ptr
|
|
%t749 = alloca ptr
|
|
%t772 = alloca ptr
|
|
%t781 = alloca ptr
|
|
%t810 = alloca ptr
|
|
%t829 = alloca ptr
|
|
%t848 = alloca ptr
|
|
%t857 = alloca ptr
|
|
%t881 = alloca ptr
|
|
%t890 = alloca ptr
|
|
%t914 = alloca ptr
|
|
%t923 = alloca ptr
|
|
%t942 = alloca ptr
|
|
%t951 = alloca ptr
|
|
%t970 = alloca ptr
|
|
%t998 = alloca ptr
|
|
%t1012 = alloca ptr
|
|
%t1019 = alloca ptr
|
|
%t1020 = alloca i32
|
|
%t1039 = alloca ptr
|
|
%t1090 = alloca ptr
|
|
%t1091 = alloca ptr
|
|
%t1138 = alloca ptr
|
|
%t1140 = alloca ptr
|
|
%t1147 = alloca ptr
|
|
%t1166 = alloca ptr
|
|
%t1173 = alloca ptr
|
|
%t1174 = alloca i32
|
|
%t1193 = alloca ptr
|
|
%t1244 = alloca ptr
|
|
%t1245 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 0
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp eq i32 %t5, 35
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %then0, label %ifend2
|
|
then0:
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 4
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = icmp eq i32 %t15, 33
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
%t19 = load ptr, ptr %t0
|
|
%t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 4
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 4
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = load ptr, ptr %t0
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 4
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = load ptr, ptr %t0
|
|
%t32 = call ptr @fn_emit_ns_call(ptr %t25, ptr %t30, ptr %t31)
|
|
store ptr %t32, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
call void @fn_perr(ptr @.str1249)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t33 = load ptr, ptr %t0
|
|
%t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 4
|
|
%t35 = load ptr, ptr %t34
|
|
%t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 1
|
|
%t37 = load ptr, ptr %t36
|
|
store ptr %t37, ptr %t38
|
|
%t39 = load ptr, ptr %t38
|
|
%t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str1250)
|
|
%t41 = icmp ne i32 %t40, 0
|
|
br i1 %t41, label %then6, label %ifend8
|
|
then6:
|
|
%t42 = load i32, ptr @g_nself
|
|
%t43 = icmp eq i32 %t42, 0
|
|
%t44 = zext i1 %t43 to i32
|
|
%t45 = icmp ne i32 %t44, 0
|
|
br i1 %t45, label %then9, label %ifend11
|
|
then9:
|
|
%t46 = call ptr @fn_val(ptr @.str1251, ptr @.str1252)
|
|
store ptr %t46, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t47 = load ptr, ptr @g_self_stk
|
|
%t48 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0
|
|
%t49 = load ptr, ptr %t48
|
|
%t50 = load i32, ptr @g_nself
|
|
%t51 = sub i32 %t50, 1
|
|
%t52 = getelementptr inbounds ptr, ptr %t49, i32 %t51
|
|
%t53 = load ptr, ptr %t52
|
|
%t54 = call ptr @fn_str_concat(ptr @.str1253, ptr %t53)
|
|
%t55 = call ptr @fn_emit_bind(ptr %t54)
|
|
%t56 = call ptr @fn_val(ptr %t55, ptr @.str1254)
|
|
store ptr %t56, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t57 = load ptr, ptr %t38
|
|
%t58 = call i32 @fn_str_eq(ptr %t57, ptr @.str1255)
|
|
%t59 = icmp ne i32 %t58, 0
|
|
br i1 %t59, label %then12, label %ifend14
|
|
then12:
|
|
%t60 = call ptr @fn_emit_bind(ptr @.str1256)
|
|
%t61 = call ptr @fn_val(ptr %t60, ptr @.str1257)
|
|
store ptr %t61, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
%t62 = load ptr, ptr %t38
|
|
%t63 = call i32 @fn_str_eq(ptr %t62, ptr @.str1258)
|
|
%t64 = icmp ne i32 %t63, 0
|
|
br i1 %t64, label %then15, label %ifend17
|
|
then15:
|
|
call void @fn_emit(ptr @.str1259)
|
|
%t65 = call ptr @fn_val(ptr @.str1260, ptr @.str1261)
|
|
store ptr %t65, ptr %retval
|
|
br label %ret
|
|
ifend17:
|
|
%t66 = load ptr, ptr %t38
|
|
%t67 = call i32 @fn_str_eq(ptr %t66, ptr @.str1262)
|
|
%t68 = icmp ne i32 %t67, 0
|
|
br i1 %t68, label %then18, label %ifend20
|
|
then18:
|
|
call void @fn_emit(ptr @.str1263)
|
|
%t69 = call ptr @fn_val(ptr @.str1264, ptr @.str1265)
|
|
store ptr %t69, ptr %retval
|
|
br label %ret
|
|
ifend20:
|
|
%t70 = load ptr, ptr %t38
|
|
%t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str1266)
|
|
%t72 = icmp ne i32 %t71, 0
|
|
br i1 %t72, label %then21, label %ifend23
|
|
then21:
|
|
%t73 = call ptr @fn_emit_bind(ptr @.str1267)
|
|
%t74 = call ptr @fn_val(ptr %t73, ptr @.str1268)
|
|
store ptr %t74, ptr %retval
|
|
br label %ret
|
|
ifend23:
|
|
%t75 = load ptr, ptr %t38
|
|
%t76 = call i32 @fn_str_eq(ptr %t75, ptr @.str1269)
|
|
%t77 = icmp ne i32 %t76, 0
|
|
br i1 %t77, label %then24, label %ifend26
|
|
then24:
|
|
%t78 = call ptr @fn_emit_bind(ptr @.str1270)
|
|
%t79 = call ptr @fn_val(ptr %t78, ptr @.str1271)
|
|
store ptr %t79, ptr %retval
|
|
br label %ret
|
|
ifend26:
|
|
%t80 = load ptr, ptr %t38
|
|
%t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str1272)
|
|
%t82 = icmp ne i32 %t81, 0
|
|
br i1 %t82, label %then27, label %ifend29
|
|
then27:
|
|
%t83 = load ptr, ptr %t0
|
|
%t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 7
|
|
%t85 = load ptr, ptr %t84
|
|
%t86 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 0
|
|
%t87 = load ptr, ptr %t86
|
|
%t88 = getelementptr inbounds ptr, ptr %t87, i32 0
|
|
%t89 = load ptr, ptr %t88
|
|
%t90 = call ptr @fn_emit_expr(ptr %t89)
|
|
store ptr %t90, ptr %t91
|
|
%t92 = load ptr, ptr %t91
|
|
%t93 = getelementptr inbounds %Cmp_Val, ptr %t92, i32 0, i32 0
|
|
%t94 = load ptr, ptr %t93
|
|
%t95 = call ptr @fn_str_concat(ptr @.str1273, ptr %t94)
|
|
%t96 = call ptr @fn_str_concat(ptr %t95, ptr @.str1274)
|
|
%t97 = call ptr @fn_emit_bind(ptr %t96)
|
|
%t98 = call ptr @fn_val(ptr %t97, ptr @.str1275)
|
|
store ptr %t98, ptr %retval
|
|
br label %ret
|
|
ifend29:
|
|
%t99 = load ptr, ptr %t38
|
|
%t100 = call i32 @fn_str_eq(ptr %t99, ptr @.str1276)
|
|
%t101 = icmp ne i32 %t100, 0
|
|
br i1 %t101, label %then30, label %ifend32
|
|
then30:
|
|
%t102 = load ptr, ptr %t0
|
|
%t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 7
|
|
%t104 = load ptr, ptr %t103
|
|
%t105 = getelementptr inbounds %LSlice, ptr %t104, i32 0, i32 0
|
|
%t106 = load ptr, ptr %t105
|
|
%t107 = getelementptr inbounds ptr, ptr %t106, i32 0
|
|
%t108 = load ptr, ptr %t107
|
|
%t109 = call ptr @fn_emit_expr(ptr %t108)
|
|
store ptr %t109, ptr %t110
|
|
%t111 = load ptr, ptr %t0
|
|
%t112 = getelementptr inbounds %Cmp_Node, ptr %t111, i32 0, i32 7
|
|
%t113 = load ptr, ptr %t112
|
|
%t114 = getelementptr inbounds %LSlice, ptr %t113, i32 0, i32 0
|
|
%t115 = load ptr, ptr %t114
|
|
%t116 = getelementptr inbounds ptr, ptr %t115, i32 1
|
|
%t117 = load ptr, ptr %t116
|
|
%t118 = call ptr @fn_emit_expr(ptr %t117)
|
|
store ptr %t118, ptr %t119
|
|
call void @fn_emit(ptr @.str1277)
|
|
%t120 = load ptr, ptr %t110
|
|
%t121 = getelementptr inbounds %Cmp_Val, ptr %t120, i32 0, i32 0
|
|
%t122 = load ptr, ptr %t121
|
|
call void @fn_emit(ptr %t122)
|
|
call void @fn_emit(ptr @.str1278)
|
|
%t123 = load ptr, ptr %t119
|
|
%t124 = getelementptr inbounds %Cmp_Val, ptr %t123, i32 0, i32 0
|
|
%t125 = load ptr, ptr %t124
|
|
call void @fn_emit(ptr %t125)
|
|
call void @fn_emit(ptr @.str1279)
|
|
%t126 = call ptr @fn_val(ptr @.str1280, ptr @.str1281)
|
|
store ptr %t126, ptr %retval
|
|
br label %ret
|
|
ifend32:
|
|
%t127 = load ptr, ptr %t38
|
|
%t128 = call i32 @fn_str_eq(ptr %t127, ptr @.str1282)
|
|
%t129 = icmp ne i32 %t128, 0
|
|
br i1 %t129, label %then33, label %ifend35
|
|
then33:
|
|
call void @fn_emit(ptr @.str1283)
|
|
%t130 = call ptr @fn_val(ptr @.str1284, ptr @.str1285)
|
|
store ptr %t130, ptr %retval
|
|
br label %ret
|
|
ifend35:
|
|
%t131 = load ptr, ptr %t38
|
|
%t132 = call i32 @fn_str_eq(ptr %t131, ptr @.str1286)
|
|
%t133 = icmp ne i32 %t132, 0
|
|
br i1 %t133, label %then36, label %ifend38
|
|
then36:
|
|
%t134 = load ptr, ptr %t0
|
|
%t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 7
|
|
%t136 = load ptr, ptr %t135
|
|
%t137 = getelementptr inbounds %LSlice, ptr %t136, i32 0, i32 0
|
|
%t138 = load ptr, ptr %t137
|
|
%t139 = getelementptr inbounds ptr, ptr %t138, i32 0
|
|
%t140 = load ptr, ptr %t139
|
|
%t141 = call ptr @fn_emit_expr(ptr %t140)
|
|
store ptr %t141, ptr %t142
|
|
%t143 = load ptr, ptr %t0
|
|
%t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 7
|
|
%t145 = load ptr, ptr %t144
|
|
%t146 = getelementptr inbounds %LSlice, ptr %t145, i32 0, i32 0
|
|
%t147 = load ptr, ptr %t146
|
|
%t148 = getelementptr inbounds ptr, ptr %t147, i32 1
|
|
%t149 = load ptr, ptr %t148
|
|
%t150 = call ptr @fn_emit_expr(ptr %t149)
|
|
store ptr %t150, ptr %t151
|
|
%t152 = load ptr, ptr %t142
|
|
%t153 = getelementptr inbounds %Cmp_Val, ptr %t152, i32 0, i32 0
|
|
%t154 = load ptr, ptr %t153
|
|
%t155 = call ptr @fn_str_concat(ptr @.str1287, ptr %t154)
|
|
%t156 = call ptr @fn_str_concat(ptr %t155, ptr @.str1288)
|
|
%t157 = load ptr, ptr %t151
|
|
%t158 = getelementptr inbounds %Cmp_Val, ptr %t157, i32 0, i32 0
|
|
%t159 = load ptr, ptr %t158
|
|
%t160 = call ptr @fn_str_concat(ptr %t156, ptr %t159)
|
|
%t161 = call ptr @fn_str_concat(ptr %t160, ptr @.str1289)
|
|
%t162 = call ptr @fn_emit_bind(ptr %t161)
|
|
%t163 = call ptr @fn_val(ptr %t162, ptr @.str1290)
|
|
store ptr %t163, ptr %retval
|
|
br label %ret
|
|
ifend38:
|
|
%t164 = load ptr, ptr %t38
|
|
%t165 = call i32 @fn_str_eq(ptr %t164, ptr @.str1291)
|
|
%t166 = icmp ne i32 %t165, 0
|
|
br i1 %t166, label %then39, label %ifend41
|
|
then39:
|
|
%t167 = load ptr, ptr %t0
|
|
%t168 = getelementptr inbounds %Cmp_Node, ptr %t167, i32 0, i32 7
|
|
%t169 = load ptr, ptr %t168
|
|
%t170 = getelementptr inbounds %LSlice, ptr %t169, i32 0, i32 0
|
|
%t171 = load ptr, ptr %t170
|
|
%t172 = getelementptr inbounds ptr, ptr %t171, i32 0
|
|
%t173 = load ptr, ptr %t172
|
|
%t174 = call ptr @fn_emit_expr(ptr %t173)
|
|
store ptr %t174, ptr %t175
|
|
%t176 = load ptr, ptr %t0
|
|
%t177 = getelementptr inbounds %Cmp_Node, ptr %t176, i32 0, i32 7
|
|
%t178 = load ptr, ptr %t177
|
|
%t179 = getelementptr inbounds %LSlice, ptr %t178, i32 0, i32 0
|
|
%t180 = load ptr, ptr %t179
|
|
%t181 = getelementptr inbounds ptr, ptr %t180, i32 1
|
|
%t182 = load ptr, ptr %t181
|
|
%t183 = call ptr @fn_emit_expr(ptr %t182)
|
|
store ptr %t183, ptr %t184
|
|
%t185 = load ptr, ptr %t0
|
|
%t186 = getelementptr inbounds %Cmp_Node, ptr %t185, i32 0, i32 7
|
|
%t187 = load ptr, ptr %t186
|
|
%t188 = getelementptr inbounds %LSlice, ptr %t187, i32 0, i32 0
|
|
%t189 = load ptr, ptr %t188
|
|
%t190 = getelementptr inbounds ptr, ptr %t189, i32 2
|
|
%t191 = load ptr, ptr %t190
|
|
%t192 = call ptr @fn_emit_expr(ptr %t191)
|
|
store ptr %t192, ptr %t193
|
|
call void @fn_emit(ptr @.str1292)
|
|
%t194 = load ptr, ptr %t175
|
|
%t195 = getelementptr inbounds %Cmp_Val, ptr %t194, i32 0, i32 0
|
|
%t196 = load ptr, ptr %t195
|
|
call void @fn_emit(ptr %t196)
|
|
call void @fn_emit(ptr @.str1293)
|
|
%t197 = load ptr, ptr %t184
|
|
%t198 = getelementptr inbounds %Cmp_Val, ptr %t197, i32 0, i32 0
|
|
%t199 = load ptr, ptr %t198
|
|
call void @fn_emit(ptr %t199)
|
|
call void @fn_emit(ptr @.str1294)
|
|
%t200 = load ptr, ptr %t193
|
|
%t201 = getelementptr inbounds %Cmp_Val, ptr %t200, i32 0, i32 0
|
|
%t202 = load ptr, ptr %t201
|
|
call void @fn_emit(ptr %t202)
|
|
call void @fn_emit(ptr @.str1295)
|
|
%t203 = call ptr @fn_val(ptr @.str1296, ptr @.str1297)
|
|
store ptr %t203, ptr %retval
|
|
br label %ret
|
|
ifend41:
|
|
%t204 = load ptr, ptr %t38
|
|
%t205 = call i32 @fn_str_eq(ptr %t204, ptr @.str1298)
|
|
%t206 = icmp ne i32 %t205, 0
|
|
br i1 %t206, label %then42, label %ifend44
|
|
then42:
|
|
%t207 = load ptr, ptr %t0
|
|
%t208 = getelementptr inbounds %Cmp_Node, ptr %t207, i32 0, i32 7
|
|
%t209 = load ptr, ptr %t208
|
|
%t210 = getelementptr inbounds %LSlice, ptr %t209, i32 0, i32 0
|
|
%t211 = load ptr, ptr %t210
|
|
%t212 = getelementptr inbounds ptr, ptr %t211, i32 0
|
|
%t213 = load ptr, ptr %t212
|
|
%t214 = call ptr @fn_emit_expr(ptr %t213)
|
|
store ptr %t214, ptr %t215
|
|
%t216 = load ptr, ptr %t215
|
|
%t217 = getelementptr inbounds %Cmp_Val, ptr %t216, i32 0, i32 0
|
|
%t218 = load ptr, ptr %t217
|
|
%t219 = call ptr @fn_str_concat(ptr @.str1299, ptr %t218)
|
|
%t220 = call ptr @fn_str_concat(ptr %t219, ptr @.str1300)
|
|
%t221 = call ptr @fn_emit_bind(ptr %t220)
|
|
%t222 = call ptr @fn_val(ptr %t221, ptr @.str1301)
|
|
store ptr %t222, ptr %retval
|
|
br label %ret
|
|
ifend44:
|
|
%t223 = load ptr, ptr %t38
|
|
%t224 = call i32 @fn_str_eq(ptr %t223, ptr @.str1302)
|
|
%t225 = icmp ne i32 %t224, 0
|
|
br i1 %t225, label %then45, label %ifend47
|
|
then45:
|
|
%t226 = load ptr, ptr %t0
|
|
%t227 = getelementptr inbounds %Cmp_Node, ptr %t226, i32 0, i32 7
|
|
%t228 = load ptr, ptr %t227
|
|
%t229 = getelementptr inbounds %LSlice, ptr %t228, i32 0, i32 0
|
|
%t230 = load ptr, ptr %t229
|
|
%t231 = getelementptr inbounds ptr, ptr %t230, i32 0
|
|
%t232 = load ptr, ptr %t231
|
|
%t233 = call ptr @fn_emit_expr(ptr %t232)
|
|
store ptr %t233, ptr %t234
|
|
%t235 = load ptr, ptr %t234
|
|
%t236 = getelementptr inbounds %Cmp_Val, ptr %t235, i32 0, i32 0
|
|
%t237 = load ptr, ptr %t236
|
|
%t238 = call ptr @fn_str_concat(ptr @.str1303, ptr %t237)
|
|
%t239 = call ptr @fn_str_concat(ptr %t238, ptr @.str1304)
|
|
%t240 = call ptr @fn_emit_bind(ptr %t239)
|
|
%t241 = call ptr @fn_val(ptr %t240, ptr @.str1305)
|
|
store ptr %t241, ptr %retval
|
|
br label %ret
|
|
ifend47:
|
|
%t242 = load ptr, ptr %t38
|
|
%t243 = call i32 @fn_str_eq(ptr %t242, ptr @.str1306)
|
|
%t244 = icmp ne i32 %t243, 0
|
|
br i1 %t244, label %then48, label %ifend50
|
|
then48:
|
|
%t245 = load ptr, ptr %t0
|
|
%t246 = getelementptr inbounds %Cmp_Node, ptr %t245, i32 0, i32 7
|
|
%t247 = load ptr, ptr %t246
|
|
%t248 = getelementptr inbounds %LSlice, ptr %t247, i32 0, i32 0
|
|
%t249 = load ptr, ptr %t248
|
|
%t250 = getelementptr inbounds ptr, ptr %t249, i32 0
|
|
%t251 = load ptr, ptr %t250
|
|
%t252 = call ptr @fn_emit_expr(ptr %t251)
|
|
store ptr %t252, ptr %t253
|
|
%t254 = load ptr, ptr %t0
|
|
%t255 = getelementptr inbounds %Cmp_Node, ptr %t254, i32 0, i32 7
|
|
%t256 = load ptr, ptr %t255
|
|
%t257 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 0
|
|
%t258 = load ptr, ptr %t257
|
|
%t259 = getelementptr inbounds ptr, ptr %t258, i32 1
|
|
%t260 = load ptr, ptr %t259
|
|
%t261 = call ptr @fn_emit_expr(ptr %t260)
|
|
store ptr %t261, ptr %t262
|
|
call void @fn_emit(ptr @.str1307)
|
|
%t263 = load ptr, ptr %t253
|
|
%t264 = getelementptr inbounds %Cmp_Val, ptr %t263, i32 0, i32 0
|
|
%t265 = load ptr, ptr %t264
|
|
call void @fn_emit(ptr %t265)
|
|
call void @fn_emit(ptr @.str1308)
|
|
%t266 = load ptr, ptr %t262
|
|
%t267 = getelementptr inbounds %Cmp_Val, ptr %t266, i32 0, i32 0
|
|
%t268 = load ptr, ptr %t267
|
|
call void @fn_emit(ptr %t268)
|
|
call void @fn_emit(ptr @.str1309)
|
|
%t269 = call ptr @fn_val(ptr @.str1310, ptr @.str1311)
|
|
store ptr %t269, ptr %retval
|
|
br label %ret
|
|
ifend50:
|
|
%t270 = load ptr, ptr %t38
|
|
%t271 = call i32 @fn_str_eq(ptr %t270, ptr @.str1312)
|
|
%t272 = icmp ne i32 %t271, 0
|
|
br i1 %t272, label %then51, label %ifend53
|
|
then51:
|
|
%t273 = load ptr, ptr %t0
|
|
%t274 = getelementptr inbounds %Cmp_Node, ptr %t273, i32 0, i32 7
|
|
%t275 = load ptr, ptr %t274
|
|
%t276 = getelementptr inbounds %LSlice, ptr %t275, i32 0, i32 0
|
|
%t277 = load ptr, ptr %t276
|
|
%t278 = getelementptr inbounds ptr, ptr %t277, i32 0
|
|
%t279 = load ptr, ptr %t278
|
|
%t280 = call ptr @fn_emit_expr(ptr %t279)
|
|
store ptr %t280, ptr %t281
|
|
%t282 = load ptr, ptr %t281
|
|
%t283 = getelementptr inbounds %Cmp_Val, ptr %t282, i32 0, i32 0
|
|
%t284 = load ptr, ptr %t283
|
|
%t285 = call ptr @fn_str_concat(ptr @.str1313, ptr %t284)
|
|
%t286 = call ptr @fn_str_concat(ptr %t285, ptr @.str1314)
|
|
%t287 = call ptr @fn_emit_bind(ptr %t286)
|
|
%t288 = call ptr @fn_val(ptr %t287, ptr @.str1315)
|
|
store ptr %t288, ptr %retval
|
|
br label %ret
|
|
ifend53:
|
|
%t289 = load ptr, ptr %t38
|
|
%t290 = call i32 @fn_str_eq(ptr %t289, ptr @.str1316)
|
|
%t291 = icmp ne i32 %t290, 0
|
|
br i1 %t291, label %then54, label %ifend56
|
|
then54:
|
|
%t292 = call ptr @fn_emit_bind(ptr @.str1317)
|
|
store ptr %t292, ptr %t293
|
|
%t294 = load ptr, ptr %t293
|
|
%t295 = call ptr @fn_str_concat(ptr @.str1318, ptr %t294)
|
|
%t296 = call ptr @fn_str_concat(ptr %t295, ptr @.str1319)
|
|
%t297 = call ptr @fn_emit_bind(ptr %t296)
|
|
store ptr %t297, ptr %t298
|
|
%t299 = load ptr, ptr %t298
|
|
%t300 = call ptr @fn_str_concat(ptr @.str1320, ptr %t299)
|
|
%t301 = call ptr @fn_str_concat(ptr %t300, ptr @.str1321)
|
|
%t302 = call ptr @fn_emit_bind(ptr %t301)
|
|
%t303 = call ptr @fn_val(ptr %t302, ptr @.str1322)
|
|
store ptr %t303, ptr %retval
|
|
br label %ret
|
|
ifend56:
|
|
%t304 = load ptr, ptr %t38
|
|
%t305 = call i32 @fn_str_eq(ptr %t304, ptr @.str1323)
|
|
%t306 = icmp ne i32 %t305, 0
|
|
br i1 %t306, label %then57, label %ifend59
|
|
then57:
|
|
%t307 = call ptr @fn_emit_bind(ptr @.str1324)
|
|
%t308 = call ptr @fn_val(ptr %t307, ptr @.str1325)
|
|
store ptr %t308, ptr %retval
|
|
br label %ret
|
|
ifend59:
|
|
%t309 = load ptr, ptr %t38
|
|
%t310 = call i32 @fn_str_eq(ptr %t309, ptr @.str1326)
|
|
%t311 = icmp ne i32 %t310, 0
|
|
br i1 %t311, label %then60, label %ifend62
|
|
then60:
|
|
call void @fn_emit(ptr @.str1327)
|
|
%t312 = call ptr @fn_val(ptr @.str1328, ptr @.str1329)
|
|
store ptr %t312, ptr %retval
|
|
br label %ret
|
|
ifend62:
|
|
%t313 = load ptr, ptr %t38
|
|
%t314 = call i32 @fn_str_eq(ptr %t313, ptr @.str1330)
|
|
%t315 = icmp ne i32 %t314, 0
|
|
br i1 %t315, label %then63, label %ifend65
|
|
then63:
|
|
call void @fn_emit(ptr @.str1331)
|
|
%t316 = call ptr @fn_val(ptr @.str1332, ptr @.str1333)
|
|
store ptr %t316, ptr %retval
|
|
br label %ret
|
|
ifend65:
|
|
%t317 = load ptr, ptr %t38
|
|
%t318 = call i32 @fn_str_eq(ptr %t317, ptr @.str1334)
|
|
%t319 = icmp ne i32 %t318, 0
|
|
br i1 %t319, label %then66, label %ifend68
|
|
then66:
|
|
call void @fn_emit(ptr @.str1335)
|
|
%t320 = call ptr @fn_val(ptr @.str1336, ptr @.str1337)
|
|
store ptr %t320, ptr %retval
|
|
br label %ret
|
|
ifend68:
|
|
%t321 = load ptr, ptr %t38
|
|
%t322 = call i32 @fn_str_eq(ptr %t321, ptr @.str1338)
|
|
%t323 = icmp ne i32 %t322, 0
|
|
br i1 %t323, label %then69, label %ifend71
|
|
then69:
|
|
%t324 = load ptr, ptr %t0
|
|
%t325 = getelementptr inbounds %Cmp_Node, ptr %t324, i32 0, i32 7
|
|
%t326 = load ptr, ptr %t325
|
|
%t327 = getelementptr inbounds %LSlice, ptr %t326, i32 0, i32 0
|
|
%t328 = load ptr, ptr %t327
|
|
%t329 = getelementptr inbounds ptr, ptr %t328, i32 0
|
|
%t330 = load ptr, ptr %t329
|
|
%t331 = call ptr @fn_emit_expr(ptr %t330)
|
|
store ptr %t331, ptr %t332
|
|
call void @fn_emit(ptr @.str1339)
|
|
%t333 = load ptr, ptr %t332
|
|
%t334 = getelementptr inbounds %Cmp_Val, ptr %t333, i32 0, i32 0
|
|
%t335 = load ptr, ptr %t334
|
|
call void @fn_emit(ptr %t335)
|
|
call void @fn_emit(ptr @.str1340)
|
|
%t336 = call ptr @fn_val(ptr @.str1341, ptr @.str1342)
|
|
store ptr %t336, ptr %retval
|
|
br label %ret
|
|
ifend71:
|
|
%t337 = load ptr, ptr %t38
|
|
%t338 = call i32 @fn_str_eq(ptr %t337, ptr @.str1343)
|
|
%t339 = icmp ne i32 %t338, 0
|
|
br i1 %t339, label %then72, label %ifend74
|
|
then72:
|
|
%t340 = load ptr, ptr %t0
|
|
%t341 = getelementptr inbounds %Cmp_Node, ptr %t340, i32 0, i32 7
|
|
%t342 = load ptr, ptr %t341
|
|
%t343 = getelementptr inbounds %LSlice, ptr %t342, i32 0, i32 0
|
|
%t344 = load ptr, ptr %t343
|
|
%t345 = getelementptr inbounds ptr, ptr %t344, i32 0
|
|
%t346 = load ptr, ptr %t345
|
|
%t347 = call ptr @fn_emit_expr(ptr %t346)
|
|
store ptr %t347, ptr %t348
|
|
call void @fn_emit(ptr @.str1344)
|
|
%t349 = load ptr, ptr %t348
|
|
%t350 = getelementptr inbounds %Cmp_Val, ptr %t349, i32 0, i32 0
|
|
%t351 = load ptr, ptr %t350
|
|
call void @fn_emit(ptr %t351)
|
|
call void @fn_emit(ptr @.str1345)
|
|
%t352 = call ptr @fn_val(ptr @.str1346, ptr @.str1347)
|
|
store ptr %t352, ptr %retval
|
|
br label %ret
|
|
ifend74:
|
|
%t354 = load ptr, ptr %t38
|
|
%t355 = call i32 @fn_str_eq(ptr %t354, ptr @.str1348)
|
|
%t356 = icmp ne i32 %t355, 0
|
|
%t357 = zext i1 %t356 to i32
|
|
store i32 %t357, ptr %t353
|
|
br i1 %t356, label %sc75, label %scend76
|
|
sc75:
|
|
%t358 = call ptr @fn_find_extern(ptr @.str1349)
|
|
%t359 = icmp eq ptr %t358, null
|
|
%t360 = zext i1 %t359 to i32
|
|
%t361 = icmp ne i32 %t360, 0
|
|
%t362 = zext i1 %t361 to i32
|
|
store i32 %t362, ptr %t353
|
|
br label %scend76
|
|
scend76:
|
|
%t363 = load i32, ptr %t353
|
|
%t364 = icmp ne i32 %t363, 0
|
|
br i1 %t364, label %then77, label %ifend79
|
|
then77:
|
|
store i32 1, ptr @g_g_uses_loopback
|
|
%t365 = load ptr, ptr %t0
|
|
%t366 = getelementptr inbounds %Cmp_Node, ptr %t365, i32 0, i32 7
|
|
%t367 = load ptr, ptr %t366
|
|
%t368 = getelementptr inbounds %LSlice, ptr %t367, i32 0, i32 0
|
|
%t369 = load ptr, ptr %t368
|
|
%t370 = getelementptr inbounds ptr, ptr %t369, i32 0
|
|
%t371 = load ptr, ptr %t370
|
|
%t372 = call ptr @fn_emit_expr(ptr %t371)
|
|
store ptr %t372, ptr %t373
|
|
%t374 = load ptr, ptr %t0
|
|
%t375 = getelementptr inbounds %Cmp_Node, ptr %t374, i32 0, i32 7
|
|
%t376 = load ptr, ptr %t375
|
|
%t377 = getelementptr inbounds %LSlice, ptr %t376, i32 0, i32 0
|
|
%t378 = load ptr, ptr %t377
|
|
%t379 = getelementptr inbounds ptr, ptr %t378, i32 1
|
|
%t380 = load ptr, ptr %t379
|
|
%t381 = call ptr @fn_emit_expr(ptr %t380)
|
|
store ptr %t381, ptr %t382
|
|
%t383 = load ptr, ptr %t0
|
|
%t384 = getelementptr inbounds %Cmp_Node, ptr %t383, i32 0, i32 7
|
|
%t385 = load ptr, ptr %t384
|
|
%t386 = getelementptr inbounds %LSlice, ptr %t385, i32 0, i32 0
|
|
%t387 = load ptr, ptr %t386
|
|
%t388 = getelementptr inbounds ptr, ptr %t387, i32 2
|
|
%t389 = load ptr, ptr %t388
|
|
%t390 = call ptr @fn_emit_expr(ptr %t389)
|
|
store ptr %t390, ptr %t391
|
|
call void @fn_emit(ptr @.str1350)
|
|
%t392 = load ptr, ptr %t373
|
|
%t393 = getelementptr inbounds %Cmp_Val, ptr %t392, i32 0, i32 0
|
|
%t394 = load ptr, ptr %t393
|
|
call void @fn_emit(ptr %t394)
|
|
call void @fn_emit(ptr @.str1351)
|
|
%t395 = load ptr, ptr %t382
|
|
%t396 = getelementptr inbounds %Cmp_Val, ptr %t395, i32 0, i32 0
|
|
%t397 = load ptr, ptr %t396
|
|
call void @fn_emit(ptr %t397)
|
|
call void @fn_emit(ptr @.str1352)
|
|
%t398 = load ptr, ptr %t391
|
|
%t399 = getelementptr inbounds %Cmp_Val, ptr %t398, i32 0, i32 0
|
|
%t400 = load ptr, ptr %t399
|
|
call void @fn_emit(ptr %t400)
|
|
call void @fn_emit(ptr @.str1353)
|
|
%t401 = call ptr @fn_val(ptr @.str1354, ptr @.str1355)
|
|
store ptr %t401, ptr %retval
|
|
br label %ret
|
|
ifend79:
|
|
%t403 = load ptr, ptr %t38
|
|
%t404 = call i32 @fn_str_eq(ptr %t403, ptr @.str1356)
|
|
%t405 = icmp ne i32 %t404, 0
|
|
%t406 = zext i1 %t405 to i32
|
|
store i32 %t406, ptr %t402
|
|
br i1 %t405, label %sc80, label %scend81
|
|
sc80:
|
|
%t407 = call ptr @fn_find_extern(ptr @.str1357)
|
|
%t408 = icmp eq ptr %t407, null
|
|
%t409 = zext i1 %t408 to i32
|
|
%t410 = icmp ne i32 %t409, 0
|
|
%t411 = zext i1 %t410 to i32
|
|
store i32 %t411, ptr %t402
|
|
br label %scend81
|
|
scend81:
|
|
%t412 = load i32, ptr %t402
|
|
%t413 = icmp ne i32 %t412, 0
|
|
br i1 %t413, label %then82, label %ifend84
|
|
then82:
|
|
store i32 1, ptr @g_g_uses_loopback
|
|
%t414 = load ptr, ptr %t0
|
|
%t415 = getelementptr inbounds %Cmp_Node, ptr %t414, i32 0, i32 7
|
|
%t416 = load ptr, ptr %t415
|
|
%t417 = getelementptr inbounds %LSlice, ptr %t416, i32 0, i32 0
|
|
%t418 = load ptr, ptr %t417
|
|
%t419 = getelementptr inbounds ptr, ptr %t418, i32 0
|
|
%t420 = load ptr, ptr %t419
|
|
%t421 = call ptr @fn_emit_expr(ptr %t420)
|
|
store ptr %t421, ptr %t422
|
|
%t423 = load ptr, ptr %t0
|
|
%t424 = getelementptr inbounds %Cmp_Node, ptr %t423, i32 0, i32 7
|
|
%t425 = load ptr, ptr %t424
|
|
%t426 = getelementptr inbounds %LSlice, ptr %t425, i32 0, i32 0
|
|
%t427 = load ptr, ptr %t426
|
|
%t428 = getelementptr inbounds ptr, ptr %t427, i32 1
|
|
%t429 = load ptr, ptr %t428
|
|
%t430 = call ptr @fn_emit_expr(ptr %t429)
|
|
store ptr %t430, ptr %t431
|
|
%t432 = load ptr, ptr %t422
|
|
%t433 = getelementptr inbounds %Cmp_Val, ptr %t432, i32 0, i32 0
|
|
%t434 = load ptr, ptr %t433
|
|
%t435 = call ptr @fn_str_concat(ptr @.str1358, ptr %t434)
|
|
%t436 = call ptr @fn_str_concat(ptr %t435, ptr @.str1359)
|
|
%t437 = load ptr, ptr %t431
|
|
%t438 = getelementptr inbounds %Cmp_Val, ptr %t437, i32 0, i32 0
|
|
%t439 = load ptr, ptr %t438
|
|
%t440 = call ptr @fn_str_concat(ptr %t436, ptr %t439)
|
|
%t441 = call ptr @fn_str_concat(ptr %t440, ptr @.str1360)
|
|
%t442 = call ptr @fn_emit_bind(ptr %t441)
|
|
%t443 = call ptr @fn_val(ptr %t442, ptr @.str1361)
|
|
store ptr %t443, ptr %retval
|
|
br label %ret
|
|
ifend84:
|
|
%t444 = load ptr, ptr %t38
|
|
%t445 = call i32 @fn_str_eq(ptr %t444, ptr @.str1362)
|
|
%t446 = icmp ne i32 %t445, 0
|
|
br i1 %t446, label %then85, label %ifend87
|
|
then85:
|
|
%t447 = load ptr, ptr %t0
|
|
%t448 = call ptr @fn_emit_len(ptr %t447)
|
|
store ptr %t448, ptr %retval
|
|
br label %ret
|
|
ifend87:
|
|
%t449 = load ptr, ptr %t38
|
|
%t450 = call i32 @fn_str_eq(ptr %t449, ptr @.str1363)
|
|
%t451 = icmp ne i32 %t450, 0
|
|
br i1 %t451, label %then88, label %ifend90
|
|
then88:
|
|
%t452 = load ptr, ptr %t0
|
|
%t453 = call ptr @fn_emit_push(ptr %t452)
|
|
store ptr %t453, ptr %retval
|
|
br label %ret
|
|
ifend90:
|
|
%t454 = load ptr, ptr %t38
|
|
%t455 = call i32 @fn_str_eq(ptr %t454, ptr @.str1364)
|
|
%t456 = icmp ne i32 %t455, 0
|
|
br i1 %t456, label %then91, label %ifend93
|
|
then91:
|
|
%t457 = load ptr, ptr %t0
|
|
%t458 = getelementptr inbounds %Cmp_Node, ptr %t457, i32 0, i32 7
|
|
%t459 = load ptr, ptr %t458
|
|
%t460 = getelementptr inbounds %LSlice, ptr %t459, i32 0, i32 0
|
|
%t461 = load ptr, ptr %t460
|
|
%t462 = getelementptr inbounds ptr, ptr %t461, i32 0
|
|
%t463 = load ptr, ptr %t462
|
|
%t464 = call ptr @fn_emit_expr(ptr %t463)
|
|
store ptr %t464, ptr %t465
|
|
%t466 = load ptr, ptr %t465
|
|
%t467 = getelementptr inbounds %Cmp_Val, ptr %t466, i32 0, i32 1
|
|
%t468 = load ptr, ptr %t467
|
|
%t469 = call ptr @fn_llty(ptr %t468)
|
|
%t470 = call i32 @fn_str_eq(ptr %t469, ptr @.str1365)
|
|
%t471 = icmp ne i32 %t470, 0
|
|
br i1 %t471, label %then94, label %ifend96
|
|
then94:
|
|
%t472 = load ptr, ptr %t465
|
|
store ptr %t472, ptr %retval
|
|
br label %ret
|
|
ifend96:
|
|
store i32 1, ptr @g_g_uses_intstr
|
|
%t473 = load ptr, ptr %t465
|
|
%t474 = getelementptr inbounds %Cmp_Val, ptr %t473, i32 0, i32 0
|
|
%t475 = load ptr, ptr %t474
|
|
%t476 = call ptr @fn_str_concat(ptr @.str1366, ptr %t475)
|
|
%t477 = call ptr @fn_str_concat(ptr %t476, ptr @.str1367)
|
|
%t478 = call ptr @fn_emit_bind(ptr %t477)
|
|
%t479 = call ptr @fn_val(ptr %t478, ptr @.str1368)
|
|
store ptr %t479, ptr %retval
|
|
br label %ret
|
|
ifend93:
|
|
%t480 = load ptr, ptr %t38
|
|
%t481 = call i32 @fn_str_eq(ptr %t480, ptr @.str1369)
|
|
%t482 = icmp ne i32 %t481, 0
|
|
br i1 %t482, label %then97, label %ifend99
|
|
then97:
|
|
%t483 = load ptr, ptr %t0
|
|
%t484 = getelementptr inbounds %Cmp_Node, ptr %t483, i32 0, i32 7
|
|
%t485 = load ptr, ptr %t484
|
|
%t486 = getelementptr inbounds %LSlice, ptr %t485, i32 0, i32 0
|
|
%t487 = load ptr, ptr %t486
|
|
%t488 = getelementptr inbounds ptr, ptr %t487, i32 0
|
|
%t489 = load ptr, ptr %t488
|
|
%t490 = call ptr @fn_emit_expr(ptr %t489)
|
|
store ptr %t490, ptr %t491
|
|
%t492 = load ptr, ptr %t491
|
|
%t493 = getelementptr inbounds %Cmp_Val, ptr %t492, i32 0, i32 1
|
|
%t494 = load ptr, ptr %t493
|
|
%t495 = call ptr @fn_llty(ptr %t494)
|
|
%t496 = call i32 @fn_str_eq(ptr %t495, ptr @.str1370)
|
|
%t497 = icmp ne i32 %t496, 0
|
|
br i1 %t497, label %then100, label %else101
|
|
then100:
|
|
%t498 = load ptr, ptr %t491
|
|
%t499 = getelementptr inbounds %Cmp_Val, ptr %t498, i32 0, i32 0
|
|
%t500 = load ptr, ptr %t499
|
|
%t501 = call ptr @fn_str_concat(ptr %t500, ptr @.str1372)
|
|
%t502 = call ptr @fn_str_concat(ptr @.str1371, ptr %t501)
|
|
call void @fn_emit(ptr %t502)
|
|
br label %ifend102
|
|
else101:
|
|
%t503 = load ptr, ptr %t491
|
|
%t504 = getelementptr inbounds %Cmp_Val, ptr %t503, i32 0, i32 0
|
|
%t505 = load ptr, ptr %t504
|
|
%t506 = call ptr @fn_str_concat(ptr %t505, ptr @.str1374)
|
|
%t507 = call ptr @fn_str_concat(ptr @.str1373, ptr %t506)
|
|
call void @fn_emit(ptr %t507)
|
|
br label %ifend102
|
|
ifend102:
|
|
%t508 = call ptr @fn_val(ptr @.str1375, ptr @.str1376)
|
|
store ptr %t508, ptr %retval
|
|
br label %ret
|
|
ifend99:
|
|
%t509 = load ptr, ptr %t38
|
|
%t510 = call i32 @fn_str_eq(ptr %t509, ptr @.str1377)
|
|
%t511 = icmp ne i32 %t510, 0
|
|
br i1 %t511, label %then103, label %ifend105
|
|
then103:
|
|
%t512 = load ptr, ptr %t0
|
|
%t513 = getelementptr inbounds %Cmp_Node, ptr %t512, i32 0, i32 7
|
|
%t514 = load ptr, ptr %t513
|
|
%t515 = getelementptr inbounds %LSlice, ptr %t514, i32 0, i32 0
|
|
%t516 = load ptr, ptr %t515
|
|
%t517 = getelementptr inbounds ptr, ptr %t516, i32 0
|
|
%t518 = load ptr, ptr %t517
|
|
%t519 = call ptr @fn_emit_expr(ptr %t518)
|
|
store ptr %t519, ptr %t520
|
|
%t521 = load ptr, ptr %t520
|
|
%t522 = getelementptr inbounds %Cmp_Val, ptr %t521, i32 0, i32 0
|
|
%t523 = load ptr, ptr %t522
|
|
%t524 = call ptr @fn_str_concat(ptr @.str1378, ptr %t523)
|
|
%t525 = call ptr @fn_str_concat(ptr %t524, ptr @.str1379)
|
|
%t526 = call ptr @fn_emit_bind(ptr %t525)
|
|
store ptr %t526, ptr %t527
|
|
%t528 = load ptr, ptr %t527
|
|
%t529 = call ptr @fn_str_concat(ptr @.str1380, ptr %t528)
|
|
%t530 = call ptr @fn_str_concat(ptr %t529, ptr @.str1381)
|
|
%t531 = call ptr @fn_emit_bind(ptr %t530)
|
|
%t532 = call ptr @fn_val(ptr %t531, ptr @.str1382)
|
|
store ptr %t532, ptr %retval
|
|
br label %ret
|
|
ifend105:
|
|
%t533 = load ptr, ptr %t38
|
|
%t534 = call i32 @fn_str_eq(ptr %t533, ptr @.str1383)
|
|
%t535 = icmp ne i32 %t534, 0
|
|
br i1 %t535, label %then106, label %ifend108
|
|
then106:
|
|
%t536 = load ptr, ptr %t0
|
|
%t537 = getelementptr inbounds %Cmp_Node, ptr %t536, i32 0, i32 7
|
|
%t538 = load ptr, ptr %t537
|
|
%t539 = getelementptr inbounds %LSlice, ptr %t538, i32 0, i32 0
|
|
%t540 = load ptr, ptr %t539
|
|
%t541 = getelementptr inbounds ptr, ptr %t540, i32 0
|
|
%t542 = load ptr, ptr %t541
|
|
%t543 = call ptr @fn_emit_expr(ptr %t542)
|
|
store ptr %t543, ptr %t544
|
|
%t545 = load ptr, ptr %t544
|
|
%t546 = getelementptr inbounds %Cmp_Val, ptr %t545, i32 0, i32 0
|
|
%t547 = load ptr, ptr %t546
|
|
%t548 = call ptr @fn_str_concat(ptr @.str1384, ptr %t547)
|
|
%t549 = call ptr @fn_str_concat(ptr %t548, ptr @.str1385)
|
|
%t550 = call ptr @fn_emit_bind(ptr %t549)
|
|
store ptr %t550, ptr %t551
|
|
%t552 = load ptr, ptr %t551
|
|
%t553 = call ptr @fn_str_concat(ptr @.str1386, ptr %t552)
|
|
%t554 = call ptr @fn_str_concat(ptr %t553, ptr @.str1387)
|
|
%t555 = call ptr @fn_emit_bind(ptr %t554)
|
|
store ptr %t555, ptr %t556
|
|
%t557 = load ptr, ptr %t556
|
|
%t558 = call ptr @fn_str_concat(ptr @.str1388, ptr %t557)
|
|
%t559 = call ptr @fn_str_concat(ptr %t558, ptr @.str1389)
|
|
%t560 = call ptr @fn_emit_bind(ptr %t559)
|
|
%t561 = call ptr @fn_val(ptr %t560, ptr @.str1390)
|
|
store ptr %t561, ptr %retval
|
|
br label %ret
|
|
ifend108:
|
|
%t562 = load ptr, ptr %t38
|
|
%t563 = call i32 @fn_str_eq(ptr %t562, ptr @.str1391)
|
|
%t564 = icmp ne i32 %t563, 0
|
|
br i1 %t564, label %then109, label %ifend111
|
|
then109:
|
|
%t565 = load ptr, ptr %t0
|
|
%t566 = getelementptr inbounds %Cmp_Node, ptr %t565, i32 0, i32 7
|
|
%t567 = load ptr, ptr %t566
|
|
%t568 = getelementptr inbounds %LSlice, ptr %t567, i32 0, i32 0
|
|
%t569 = load ptr, ptr %t568
|
|
%t570 = getelementptr inbounds ptr, ptr %t569, i32 0
|
|
%t571 = load ptr, ptr %t570
|
|
%t572 = call ptr @fn_emit_expr(ptr %t571)
|
|
store ptr %t572, ptr %t573
|
|
%t574 = load ptr, ptr %t573
|
|
%t575 = getelementptr inbounds %Cmp_Val, ptr %t574, i32 0, i32 0
|
|
%t576 = load ptr, ptr %t575
|
|
%t577 = call ptr @fn_str_concat(ptr @.str1392, ptr %t576)
|
|
%t578 = call ptr @fn_str_concat(ptr %t577, ptr @.str1393)
|
|
%t579 = call ptr @fn_emit_bind(ptr %t578)
|
|
%t580 = call ptr @fn_val(ptr %t579, ptr @.str1394)
|
|
store ptr %t580, ptr %retval
|
|
br label %ret
|
|
ifend111:
|
|
%t581 = load ptr, ptr %t38
|
|
%t582 = call i32 @fn_str_eq(ptr %t581, ptr @.str1395)
|
|
%t583 = icmp ne i32 %t582, 0
|
|
br i1 %t583, label %then112, label %ifend114
|
|
then112:
|
|
%t584 = load ptr, ptr %t0
|
|
%t585 = getelementptr inbounds %Cmp_Node, ptr %t584, i32 0, i32 7
|
|
%t586 = load ptr, ptr %t585
|
|
%t587 = getelementptr inbounds %LSlice, ptr %t586, i32 0, i32 0
|
|
%t588 = load ptr, ptr %t587
|
|
%t589 = getelementptr inbounds ptr, ptr %t588, i32 0
|
|
%t590 = load ptr, ptr %t589
|
|
%t591 = call ptr @fn_emit_expr(ptr %t590)
|
|
store ptr %t591, ptr %t592
|
|
%t593 = load ptr, ptr %t592
|
|
%t594 = getelementptr inbounds %Cmp_Val, ptr %t593, i32 0, i32 0
|
|
%t595 = load ptr, ptr %t594
|
|
%t596 = call ptr @fn_str_concat(ptr @.str1396, ptr %t595)
|
|
%t597 = call ptr @fn_str_concat(ptr %t596, ptr @.str1397)
|
|
%t598 = call ptr @fn_emit_bind(ptr %t597)
|
|
%t599 = call ptr @fn_val(ptr %t598, ptr @.str1398)
|
|
store ptr %t599, ptr %retval
|
|
br label %ret
|
|
ifend114:
|
|
%t600 = load ptr, ptr %t38
|
|
%t601 = call i32 @fn_str_eq(ptr %t600, ptr @.str1399)
|
|
%t602 = icmp ne i32 %t601, 0
|
|
br i1 %t602, label %then115, label %ifend117
|
|
then115:
|
|
%t603 = load ptr, ptr %t0
|
|
%t604 = getelementptr inbounds %Cmp_Node, ptr %t603, i32 0, i32 7
|
|
%t605 = load ptr, ptr %t604
|
|
%t606 = getelementptr inbounds %LSlice, ptr %t605, i32 0, i32 0
|
|
%t607 = load ptr, ptr %t606
|
|
%t608 = getelementptr inbounds ptr, ptr %t607, i32 0
|
|
%t609 = load ptr, ptr %t608
|
|
%t610 = call ptr @fn_emit_expr(ptr %t609)
|
|
store ptr %t610, ptr %t611
|
|
%t612 = load ptr, ptr %t611
|
|
%t613 = getelementptr inbounds %Cmp_Val, ptr %t612, i32 0, i32 0
|
|
%t614 = load ptr, ptr %t613
|
|
%t615 = call ptr @fn_str_concat(ptr @.str1400, ptr %t614)
|
|
%t616 = call ptr @fn_str_concat(ptr %t615, ptr @.str1401)
|
|
%t617 = call ptr @fn_emit_bind(ptr %t616)
|
|
%t618 = call ptr @fn_val(ptr %t617, ptr @.str1402)
|
|
store ptr %t618, ptr %retval
|
|
br label %ret
|
|
ifend117:
|
|
%t619 = load ptr, ptr %t38
|
|
%t620 = call i32 @fn_str_eq(ptr %t619, ptr @.str1403)
|
|
%t621 = icmp ne i32 %t620, 0
|
|
br i1 %t621, label %then118, label %ifend120
|
|
then118:
|
|
%t622 = load ptr, ptr %t0
|
|
%t623 = getelementptr inbounds %Cmp_Node, ptr %t622, i32 0, i32 7
|
|
%t624 = load ptr, ptr %t623
|
|
%t625 = getelementptr inbounds %LSlice, ptr %t624, i32 0, i32 0
|
|
%t626 = load ptr, ptr %t625
|
|
%t627 = getelementptr inbounds ptr, ptr %t626, i32 0
|
|
%t628 = load ptr, ptr %t627
|
|
%t629 = call ptr @fn_emit_expr(ptr %t628)
|
|
store ptr %t629, ptr %t630
|
|
%t631 = load ptr, ptr %t0
|
|
%t632 = getelementptr inbounds %Cmp_Node, ptr %t631, i32 0, i32 7
|
|
%t633 = load ptr, ptr %t632
|
|
%t634 = getelementptr inbounds %LSlice, ptr %t633, i32 0, i32 0
|
|
%t635 = load ptr, ptr %t634
|
|
%t636 = getelementptr inbounds ptr, ptr %t635, i32 1
|
|
%t637 = load ptr, ptr %t636
|
|
%t638 = call ptr @fn_emit_expr(ptr %t637)
|
|
store ptr %t638, ptr %t639
|
|
%t640 = load ptr, ptr %t630
|
|
%t641 = getelementptr inbounds %Cmp_Val, ptr %t640, i32 0, i32 0
|
|
%t642 = load ptr, ptr %t641
|
|
%t643 = call ptr @fn_str_concat(ptr @.str1404, ptr %t642)
|
|
%t644 = call ptr @fn_str_concat(ptr %t643, ptr @.str1405)
|
|
%t645 = load ptr, ptr %t639
|
|
%t646 = getelementptr inbounds %Cmp_Val, ptr %t645, i32 0, i32 0
|
|
%t647 = load ptr, ptr %t646
|
|
%t648 = call ptr @fn_str_concat(ptr %t644, ptr %t647)
|
|
%t649 = call ptr @fn_str_concat(ptr %t648, ptr @.str1406)
|
|
%t650 = call ptr @fn_emit_bind(ptr %t649)
|
|
%t651 = call ptr @fn_val(ptr %t650, ptr @.str1407)
|
|
store ptr %t651, ptr %retval
|
|
br label %ret
|
|
ifend120:
|
|
%t652 = load ptr, ptr %t38
|
|
%t653 = call i32 @fn_str_eq(ptr %t652, ptr @.str1408)
|
|
%t654 = icmp ne i32 %t653, 0
|
|
br i1 %t654, label %then121, label %ifend123
|
|
then121:
|
|
%t655 = load ptr, ptr %t0
|
|
%t656 = getelementptr inbounds %Cmp_Node, ptr %t655, i32 0, i32 7
|
|
%t657 = load ptr, ptr %t656
|
|
%t658 = getelementptr inbounds %LSlice, ptr %t657, i32 0, i32 0
|
|
%t659 = load ptr, ptr %t658
|
|
%t660 = getelementptr inbounds ptr, ptr %t659, i32 0
|
|
%t661 = load ptr, ptr %t660
|
|
%t662 = call ptr @fn_emit_expr(ptr %t661)
|
|
store ptr %t662, ptr %t663
|
|
%t664 = load ptr, ptr %t0
|
|
%t665 = getelementptr inbounds %Cmp_Node, ptr %t664, i32 0, i32 7
|
|
%t666 = load ptr, ptr %t665
|
|
%t667 = getelementptr inbounds %LSlice, ptr %t666, i32 0, i32 0
|
|
%t668 = load ptr, ptr %t667
|
|
%t669 = getelementptr inbounds ptr, ptr %t668, i32 1
|
|
%t670 = load ptr, ptr %t669
|
|
%t671 = call ptr @fn_emit_expr(ptr %t670)
|
|
store ptr %t671, ptr %t672
|
|
%t673 = load ptr, ptr %t0
|
|
%t674 = getelementptr inbounds %Cmp_Node, ptr %t673, i32 0, i32 7
|
|
%t675 = load ptr, ptr %t674
|
|
%t676 = getelementptr inbounds %LSlice, ptr %t675, i32 0, i32 0
|
|
%t677 = load ptr, ptr %t676
|
|
%t678 = getelementptr inbounds ptr, ptr %t677, i32 2
|
|
%t679 = load ptr, ptr %t678
|
|
%t680 = call ptr @fn_emit_expr(ptr %t679)
|
|
store ptr %t680, ptr %t681
|
|
%t682 = load ptr, ptr %t663
|
|
%t683 = getelementptr inbounds %Cmp_Val, ptr %t682, i32 0, i32 0
|
|
%t684 = load ptr, ptr %t683
|
|
%t685 = call ptr @fn_str_concat(ptr @.str1409, ptr %t684)
|
|
%t686 = call ptr @fn_str_concat(ptr %t685, ptr @.str1410)
|
|
%t687 = load ptr, ptr %t672
|
|
%t688 = getelementptr inbounds %Cmp_Val, ptr %t687, i32 0, i32 0
|
|
%t689 = load ptr, ptr %t688
|
|
%t690 = call ptr @fn_str_concat(ptr %t686, ptr %t689)
|
|
%t691 = call ptr @fn_str_concat(ptr %t690, ptr @.str1411)
|
|
%t692 = load ptr, ptr %t681
|
|
%t693 = getelementptr inbounds %Cmp_Val, ptr %t692, i32 0, i32 0
|
|
%t694 = load ptr, ptr %t693
|
|
%t695 = call ptr @fn_str_concat(ptr %t691, ptr %t694)
|
|
%t696 = call ptr @fn_str_concat(ptr %t695, ptr @.str1412)
|
|
%t697 = call ptr @fn_emit_bind(ptr %t696)
|
|
store ptr %t697, ptr %t698
|
|
%t699 = load ptr, ptr %t698
|
|
%t700 = call ptr @fn_str_concat(ptr @.str1413, ptr %t699)
|
|
%t701 = call ptr @fn_str_concat(ptr %t700, ptr @.str1414)
|
|
%t702 = call ptr @fn_emit_bind(ptr %t701)
|
|
%t703 = call ptr @fn_val(ptr %t702, ptr @.str1415)
|
|
store ptr %t703, ptr %retval
|
|
br label %ret
|
|
ifend123:
|
|
%t704 = load ptr, ptr %t38
|
|
%t705 = call i32 @fn_str_eq(ptr %t704, ptr @.str1416)
|
|
%t706 = icmp ne i32 %t705, 0
|
|
br i1 %t706, label %then124, label %ifend126
|
|
then124:
|
|
%t707 = load ptr, ptr %t0
|
|
%t708 = getelementptr inbounds %Cmp_Node, ptr %t707, i32 0, i32 7
|
|
%t709 = load ptr, ptr %t708
|
|
%t710 = getelementptr inbounds %LSlice, ptr %t709, i32 0, i32 0
|
|
%t711 = load ptr, ptr %t710
|
|
%t712 = getelementptr inbounds ptr, ptr %t711, i32 0
|
|
%t713 = load ptr, ptr %t712
|
|
%t714 = call ptr @fn_emit_expr(ptr %t713)
|
|
store ptr %t714, ptr %t715
|
|
%t716 = load ptr, ptr %t0
|
|
%t717 = getelementptr inbounds %Cmp_Node, ptr %t716, i32 0, i32 7
|
|
%t718 = load ptr, ptr %t717
|
|
%t719 = getelementptr inbounds %LSlice, ptr %t718, i32 0, i32 0
|
|
%t720 = load ptr, ptr %t719
|
|
%t721 = getelementptr inbounds ptr, ptr %t720, i32 1
|
|
%t722 = load ptr, ptr %t721
|
|
%t723 = call ptr @fn_emit_expr(ptr %t722)
|
|
store ptr %t723, ptr %t724
|
|
%t725 = load ptr, ptr %t0
|
|
%t726 = getelementptr inbounds %Cmp_Node, ptr %t725, i32 0, i32 7
|
|
%t727 = load ptr, ptr %t726
|
|
%t728 = getelementptr inbounds %LSlice, ptr %t727, i32 0, i32 0
|
|
%t729 = load ptr, ptr %t728
|
|
%t730 = getelementptr inbounds ptr, ptr %t729, i32 2
|
|
%t731 = load ptr, ptr %t730
|
|
%t732 = call ptr @fn_emit_expr(ptr %t731)
|
|
store ptr %t732, ptr %t733
|
|
%t734 = load ptr, ptr %t0
|
|
%t735 = getelementptr inbounds %Cmp_Node, ptr %t734, i32 0, i32 7
|
|
%t736 = load ptr, ptr %t735
|
|
%t737 = getelementptr inbounds %LSlice, ptr %t736, i32 0, i32 0
|
|
%t738 = load ptr, ptr %t737
|
|
%t739 = getelementptr inbounds ptr, ptr %t738, i32 3
|
|
%t740 = load ptr, ptr %t739
|
|
%t741 = call ptr @fn_emit_expr(ptr %t740)
|
|
store ptr %t741, ptr %t742
|
|
%t743 = load ptr, ptr %t742
|
|
%t744 = getelementptr inbounds %Cmp_Val, ptr %t743, i32 0, i32 0
|
|
%t745 = load ptr, ptr %t744
|
|
%t746 = call ptr @fn_str_concat(ptr @.str1417, ptr %t745)
|
|
%t747 = call ptr @fn_str_concat(ptr %t746, ptr @.str1418)
|
|
%t748 = call ptr @fn_emit_bind(ptr %t747)
|
|
store ptr %t748, ptr %t749
|
|
call void @fn_emit(ptr @.str1419)
|
|
%t750 = load ptr, ptr %t715
|
|
%t751 = getelementptr inbounds %Cmp_Val, ptr %t750, i32 0, i32 0
|
|
%t752 = load ptr, ptr %t751
|
|
call void @fn_emit(ptr %t752)
|
|
call void @fn_emit(ptr @.str1420)
|
|
%t753 = load ptr, ptr %t724
|
|
%t754 = getelementptr inbounds %Cmp_Val, ptr %t753, i32 0, i32 0
|
|
%t755 = load ptr, ptr %t754
|
|
call void @fn_emit(ptr %t755)
|
|
call void @fn_emit(ptr @.str1421)
|
|
%t756 = load ptr, ptr %t733
|
|
%t757 = getelementptr inbounds %Cmp_Val, ptr %t756, i32 0, i32 0
|
|
%t758 = load ptr, ptr %t757
|
|
call void @fn_emit(ptr %t758)
|
|
call void @fn_emit(ptr @.str1422)
|
|
%t759 = load ptr, ptr %t749
|
|
call void @fn_emit(ptr %t759)
|
|
call void @fn_emit(ptr @.str1423)
|
|
%t760 = call ptr @fn_val(ptr @.str1424, ptr @.str1425)
|
|
store ptr %t760, ptr %retval
|
|
br label %ret
|
|
ifend126:
|
|
%t761 = load ptr, ptr %t38
|
|
%t762 = call i32 @fn_str_eq(ptr %t761, ptr @.str1426)
|
|
%t763 = icmp ne i32 %t762, 0
|
|
br i1 %t763, label %then127, label %ifend129
|
|
then127:
|
|
%t764 = load ptr, ptr %t0
|
|
%t765 = getelementptr inbounds %Cmp_Node, ptr %t764, i32 0, i32 7
|
|
%t766 = load ptr, ptr %t765
|
|
%t767 = getelementptr inbounds %LSlice, ptr %t766, i32 0, i32 0
|
|
%t768 = load ptr, ptr %t767
|
|
%t769 = getelementptr inbounds ptr, ptr %t768, i32 0
|
|
%t770 = load ptr, ptr %t769
|
|
%t771 = call ptr @fn_emit_expr(ptr %t770)
|
|
store ptr %t771, ptr %t772
|
|
%t773 = load ptr, ptr %t0
|
|
%t774 = getelementptr inbounds %Cmp_Node, ptr %t773, i32 0, i32 7
|
|
%t775 = load ptr, ptr %t774
|
|
%t776 = getelementptr inbounds %LSlice, ptr %t775, i32 0, i32 0
|
|
%t777 = load ptr, ptr %t776
|
|
%t778 = getelementptr inbounds ptr, ptr %t777, i32 1
|
|
%t779 = load ptr, ptr %t778
|
|
%t780 = call ptr @fn_emit_expr(ptr %t779)
|
|
store ptr %t780, ptr %t781
|
|
%t782 = load ptr, ptr %t772
|
|
%t783 = getelementptr inbounds %Cmp_Val, ptr %t782, i32 0, i32 0
|
|
%t784 = load ptr, ptr %t783
|
|
%t785 = call ptr @fn_str_concat(ptr @.str1427, ptr %t784)
|
|
%t786 = call ptr @fn_str_concat(ptr %t785, ptr @.str1428)
|
|
%t787 = load ptr, ptr %t781
|
|
%t788 = getelementptr inbounds %Cmp_Val, ptr %t787, i32 0, i32 0
|
|
%t789 = load ptr, ptr %t788
|
|
%t790 = call ptr @fn_str_concat(ptr %t786, ptr %t789)
|
|
%t791 = call ptr @fn_str_concat(ptr %t790, ptr @.str1429)
|
|
%t792 = call ptr @fn_emit_bind(ptr %t791)
|
|
%t793 = call ptr @fn_val(ptr %t792, ptr @.str1430)
|
|
store ptr %t793, ptr %retval
|
|
br label %ret
|
|
ifend129:
|
|
%t794 = load ptr, ptr %t38
|
|
%t795 = call i32 @fn_str_eq(ptr %t794, ptr @.str1431)
|
|
%t796 = icmp ne i32 %t795, 0
|
|
br i1 %t796, label %then130, label %ifend132
|
|
then130:
|
|
%t797 = call ptr @fn_emit_bind(ptr @.str1432)
|
|
%t798 = call ptr @fn_val(ptr %t797, ptr @.str1433)
|
|
store ptr %t798, ptr %retval
|
|
br label %ret
|
|
ifend132:
|
|
%t799 = load ptr, ptr %t38
|
|
%t800 = call i32 @fn_str_eq(ptr %t799, ptr @.str1434)
|
|
%t801 = icmp ne i32 %t800, 0
|
|
br i1 %t801, label %then133, label %ifend135
|
|
then133:
|
|
%t802 = load ptr, ptr %t0
|
|
%t803 = getelementptr inbounds %Cmp_Node, ptr %t802, i32 0, i32 7
|
|
%t804 = load ptr, ptr %t803
|
|
%t805 = getelementptr inbounds %LSlice, ptr %t804, i32 0, i32 0
|
|
%t806 = load ptr, ptr %t805
|
|
%t807 = getelementptr inbounds ptr, ptr %t806, i32 0
|
|
%t808 = load ptr, ptr %t807
|
|
%t809 = call ptr @fn_emit_expr(ptr %t808)
|
|
store ptr %t809, ptr %t810
|
|
%t811 = load ptr, ptr %t810
|
|
%t812 = getelementptr inbounds %Cmp_Val, ptr %t811, i32 0, i32 0
|
|
%t813 = load ptr, ptr %t812
|
|
%t814 = call ptr @fn_str_concat(ptr @.str1435, ptr %t813)
|
|
%t815 = call ptr @fn_str_concat(ptr %t814, ptr @.str1436)
|
|
%t816 = call ptr @fn_emit_bind(ptr %t815)
|
|
%t817 = call ptr @fn_val(ptr %t816, ptr @.str1437)
|
|
store ptr %t817, ptr %retval
|
|
br label %ret
|
|
ifend135:
|
|
%t818 = load ptr, ptr %t38
|
|
%t819 = call i32 @fn_str_eq(ptr %t818, ptr @.str1438)
|
|
%t820 = icmp ne i32 %t819, 0
|
|
br i1 %t820, label %then136, label %ifend138
|
|
then136:
|
|
%t821 = load ptr, ptr %t0
|
|
%t822 = getelementptr inbounds %Cmp_Node, ptr %t821, i32 0, i32 7
|
|
%t823 = load ptr, ptr %t822
|
|
%t824 = getelementptr inbounds %LSlice, ptr %t823, i32 0, i32 0
|
|
%t825 = load ptr, ptr %t824
|
|
%t826 = getelementptr inbounds ptr, ptr %t825, i32 0
|
|
%t827 = load ptr, ptr %t826
|
|
%t828 = call ptr @fn_emit_expr(ptr %t827)
|
|
store ptr %t828, ptr %t829
|
|
%t830 = load ptr, ptr %t829
|
|
%t831 = getelementptr inbounds %Cmp_Val, ptr %t830, i32 0, i32 0
|
|
%t832 = load ptr, ptr %t831
|
|
%t833 = call ptr @fn_str_concat(ptr @.str1439, ptr %t832)
|
|
%t834 = call ptr @fn_str_concat(ptr %t833, ptr @.str1440)
|
|
%t835 = call ptr @fn_emit_bind(ptr %t834)
|
|
%t836 = call ptr @fn_val(ptr %t835, ptr @.str1441)
|
|
store ptr %t836, ptr %retval
|
|
br label %ret
|
|
ifend138:
|
|
%t837 = load ptr, ptr %t38
|
|
%t838 = call i32 @fn_str_eq(ptr %t837, ptr @.str1442)
|
|
%t839 = icmp ne i32 %t838, 0
|
|
br i1 %t839, label %then139, label %ifend141
|
|
then139:
|
|
%t840 = load ptr, ptr %t0
|
|
%t841 = getelementptr inbounds %Cmp_Node, ptr %t840, i32 0, i32 7
|
|
%t842 = load ptr, ptr %t841
|
|
%t843 = getelementptr inbounds %LSlice, ptr %t842, i32 0, i32 0
|
|
%t844 = load ptr, ptr %t843
|
|
%t845 = getelementptr inbounds ptr, ptr %t844, i32 0
|
|
%t846 = load ptr, ptr %t845
|
|
%t847 = call ptr @fn_emit_expr(ptr %t846)
|
|
store ptr %t847, ptr %t848
|
|
%t849 = load ptr, ptr %t0
|
|
%t850 = getelementptr inbounds %Cmp_Node, ptr %t849, i32 0, i32 7
|
|
%t851 = load ptr, ptr %t850
|
|
%t852 = getelementptr inbounds %LSlice, ptr %t851, i32 0, i32 0
|
|
%t853 = load ptr, ptr %t852
|
|
%t854 = getelementptr inbounds ptr, ptr %t853, i32 1
|
|
%t855 = load ptr, ptr %t854
|
|
%t856 = call ptr @fn_emit_expr(ptr %t855)
|
|
store ptr %t856, ptr %t857
|
|
%t858 = load ptr, ptr %t848
|
|
%t859 = getelementptr inbounds %Cmp_Val, ptr %t858, i32 0, i32 0
|
|
%t860 = load ptr, ptr %t859
|
|
%t861 = call ptr @fn_str_concat(ptr @.str1443, ptr %t860)
|
|
%t862 = call ptr @fn_str_concat(ptr %t861, ptr @.str1444)
|
|
%t863 = load ptr, ptr %t857
|
|
%t864 = getelementptr inbounds %Cmp_Val, ptr %t863, i32 0, i32 0
|
|
%t865 = load ptr, ptr %t864
|
|
%t866 = call ptr @fn_str_concat(ptr %t862, ptr %t865)
|
|
%t867 = call ptr @fn_str_concat(ptr %t866, ptr @.str1445)
|
|
%t868 = call ptr @fn_emit_bind(ptr %t867)
|
|
%t869 = call ptr @fn_val(ptr %t868, ptr @.str1446)
|
|
store ptr %t869, ptr %retval
|
|
br label %ret
|
|
ifend141:
|
|
%t870 = load ptr, ptr %t38
|
|
%t871 = call i32 @fn_str_eq(ptr %t870, ptr @.str1447)
|
|
%t872 = icmp ne i32 %t871, 0
|
|
br i1 %t872, label %then142, label %ifend144
|
|
then142:
|
|
%t873 = load ptr, ptr %t0
|
|
%t874 = getelementptr inbounds %Cmp_Node, ptr %t873, i32 0, i32 7
|
|
%t875 = load ptr, ptr %t874
|
|
%t876 = getelementptr inbounds %LSlice, ptr %t875, i32 0, i32 0
|
|
%t877 = load ptr, ptr %t876
|
|
%t878 = getelementptr inbounds ptr, ptr %t877, i32 0
|
|
%t879 = load ptr, ptr %t878
|
|
%t880 = call ptr @fn_emit_expr(ptr %t879)
|
|
store ptr %t880, ptr %t881
|
|
%t882 = load ptr, ptr %t0
|
|
%t883 = getelementptr inbounds %Cmp_Node, ptr %t882, i32 0, i32 7
|
|
%t884 = load ptr, ptr %t883
|
|
%t885 = getelementptr inbounds %LSlice, ptr %t884, i32 0, i32 0
|
|
%t886 = load ptr, ptr %t885
|
|
%t887 = getelementptr inbounds ptr, ptr %t886, i32 1
|
|
%t888 = load ptr, ptr %t887
|
|
%t889 = call ptr @fn_emit_expr(ptr %t888)
|
|
store ptr %t889, ptr %t890
|
|
%t891 = load ptr, ptr %t881
|
|
%t892 = getelementptr inbounds %Cmp_Val, ptr %t891, i32 0, i32 0
|
|
%t893 = load ptr, ptr %t892
|
|
%t894 = call ptr @fn_str_concat(ptr @.str1448, ptr %t893)
|
|
%t895 = call ptr @fn_str_concat(ptr %t894, ptr @.str1449)
|
|
%t896 = load ptr, ptr %t890
|
|
%t897 = getelementptr inbounds %Cmp_Val, ptr %t896, i32 0, i32 0
|
|
%t898 = load ptr, ptr %t897
|
|
%t899 = call ptr @fn_str_concat(ptr %t895, ptr %t898)
|
|
%t900 = call ptr @fn_str_concat(ptr %t899, ptr @.str1450)
|
|
%t901 = call ptr @fn_emit_bind(ptr %t900)
|
|
%t902 = call ptr @fn_val(ptr %t901, ptr @.str1451)
|
|
store ptr %t902, ptr %retval
|
|
br label %ret
|
|
ifend144:
|
|
%t903 = load ptr, ptr %t38
|
|
%t904 = call i32 @fn_str_eq(ptr %t903, ptr @.str1452)
|
|
%t905 = icmp ne i32 %t904, 0
|
|
br i1 %t905, label %then145, label %ifend147
|
|
then145:
|
|
%t906 = load ptr, ptr %t0
|
|
%t907 = getelementptr inbounds %Cmp_Node, ptr %t906, i32 0, i32 7
|
|
%t908 = load ptr, ptr %t907
|
|
%t909 = getelementptr inbounds %LSlice, ptr %t908, i32 0, i32 0
|
|
%t910 = load ptr, ptr %t909
|
|
%t911 = getelementptr inbounds ptr, ptr %t910, i32 0
|
|
%t912 = load ptr, ptr %t911
|
|
%t913 = call ptr @fn_emit_expr(ptr %t912)
|
|
store ptr %t913, ptr %t914
|
|
%t915 = load ptr, ptr %t0
|
|
%t916 = getelementptr inbounds %Cmp_Node, ptr %t915, i32 0, i32 7
|
|
%t917 = load ptr, ptr %t916
|
|
%t918 = getelementptr inbounds %LSlice, ptr %t917, i32 0, i32 0
|
|
%t919 = load ptr, ptr %t918
|
|
%t920 = getelementptr inbounds ptr, ptr %t919, i32 1
|
|
%t921 = load ptr, ptr %t920
|
|
%t922 = call ptr @fn_emit_expr(ptr %t921)
|
|
store ptr %t922, ptr %t923
|
|
call void @fn_emit(ptr @.str1453)
|
|
%t924 = load ptr, ptr %t914
|
|
%t925 = getelementptr inbounds %Cmp_Val, ptr %t924, i32 0, i32 0
|
|
%t926 = load ptr, ptr %t925
|
|
call void @fn_emit(ptr %t926)
|
|
call void @fn_emit(ptr @.str1454)
|
|
%t927 = load ptr, ptr %t923
|
|
%t928 = getelementptr inbounds %Cmp_Val, ptr %t927, i32 0, i32 0
|
|
%t929 = load ptr, ptr %t928
|
|
call void @fn_emit(ptr %t929)
|
|
call void @fn_emit(ptr @.str1455)
|
|
%t930 = call ptr @fn_val(ptr @.str1456, ptr @.str1457)
|
|
store ptr %t930, ptr %retval
|
|
br label %ret
|
|
ifend147:
|
|
%t931 = load ptr, ptr %t38
|
|
%t932 = call i32 @fn_str_eq(ptr %t931, ptr @.str1458)
|
|
%t933 = icmp ne i32 %t932, 0
|
|
br i1 %t933, label %then148, label %ifend150
|
|
then148:
|
|
%t934 = load ptr, ptr %t0
|
|
%t935 = getelementptr inbounds %Cmp_Node, ptr %t934, i32 0, i32 7
|
|
%t936 = load ptr, ptr %t935
|
|
%t937 = getelementptr inbounds %LSlice, ptr %t936, i32 0, i32 0
|
|
%t938 = load ptr, ptr %t937
|
|
%t939 = getelementptr inbounds ptr, ptr %t938, i32 0
|
|
%t940 = load ptr, ptr %t939
|
|
%t941 = call ptr @fn_emit_expr(ptr %t940)
|
|
store ptr %t941, ptr %t942
|
|
%t943 = load ptr, ptr %t0
|
|
%t944 = getelementptr inbounds %Cmp_Node, ptr %t943, i32 0, i32 7
|
|
%t945 = load ptr, ptr %t944
|
|
%t946 = getelementptr inbounds %LSlice, ptr %t945, i32 0, i32 0
|
|
%t947 = load ptr, ptr %t946
|
|
%t948 = getelementptr inbounds ptr, ptr %t947, i32 1
|
|
%t949 = load ptr, ptr %t948
|
|
%t950 = call ptr @fn_emit_expr(ptr %t949)
|
|
store ptr %t950, ptr %t951
|
|
call void @fn_emit(ptr @.str1459)
|
|
%t952 = load ptr, ptr %t942
|
|
%t953 = getelementptr inbounds %Cmp_Val, ptr %t952, i32 0, i32 0
|
|
%t954 = load ptr, ptr %t953
|
|
call void @fn_emit(ptr %t954)
|
|
call void @fn_emit(ptr @.str1460)
|
|
%t955 = load ptr, ptr %t951
|
|
%t956 = getelementptr inbounds %Cmp_Val, ptr %t955, i32 0, i32 0
|
|
%t957 = load ptr, ptr %t956
|
|
call void @fn_emit(ptr %t957)
|
|
call void @fn_emit(ptr @.str1461)
|
|
%t958 = call ptr @fn_val(ptr @.str1462, ptr @.str1463)
|
|
store ptr %t958, ptr %retval
|
|
br label %ret
|
|
ifend150:
|
|
%t959 = load ptr, ptr %t38
|
|
%t960 = call i32 @fn_str_eq(ptr %t959, ptr @.str1464)
|
|
%t961 = icmp ne i32 %t960, 0
|
|
br i1 %t961, label %then151, label %ifend153
|
|
then151:
|
|
%t962 = load ptr, ptr %t0
|
|
%t963 = getelementptr inbounds %Cmp_Node, ptr %t962, i32 0, i32 7
|
|
%t964 = load ptr, ptr %t963
|
|
%t965 = getelementptr inbounds %LSlice, ptr %t964, i32 0, i32 0
|
|
%t966 = load ptr, ptr %t965
|
|
%t967 = getelementptr inbounds ptr, ptr %t966, i32 0
|
|
%t968 = load ptr, ptr %t967
|
|
%t969 = call ptr @fn_emit_expr(ptr %t968)
|
|
store ptr %t969, ptr %t970
|
|
%t971 = load ptr, ptr %t970
|
|
%t972 = getelementptr inbounds %Cmp_Val, ptr %t971, i32 0, i32 0
|
|
%t973 = load ptr, ptr %t972
|
|
%t974 = call ptr @fn_str_concat(ptr @.str1465, ptr %t973)
|
|
%t975 = call ptr @fn_str_concat(ptr %t974, ptr @.str1466)
|
|
%t976 = call ptr @fn_emit_bind(ptr %t975)
|
|
%t977 = call ptr @fn_val(ptr %t976, ptr @.str1467)
|
|
store ptr %t977, ptr %retval
|
|
br label %ret
|
|
ifend153:
|
|
%t978 = load ptr, ptr %t38
|
|
%t979 = call i32 @fn_is_intrinsic(ptr %t978)
|
|
%t980 = icmp ne i32 %t979, 0
|
|
br i1 %t980, label %then154, label %ifend156
|
|
then154:
|
|
%t981 = load ptr, ptr %t38
|
|
%t982 = load ptr, ptr %t0
|
|
%t983 = call ptr @fn_emit_intrinsic(ptr %t981, ptr %t982)
|
|
store ptr %t983, ptr %retval
|
|
br label %ret
|
|
ifend156:
|
|
%t984 = load ptr, ptr %t38
|
|
%t985 = call i32 @fn_is_intrinsic2(ptr %t984)
|
|
%t986 = icmp ne i32 %t985, 0
|
|
br i1 %t986, label %then157, label %ifend159
|
|
then157:
|
|
%t987 = load ptr, ptr %t38
|
|
%t988 = load ptr, ptr %t0
|
|
%t989 = call ptr @fn_emit_intrinsic2(ptr %t987, ptr %t988)
|
|
store ptr %t989, ptr %retval
|
|
br label %ret
|
|
ifend159:
|
|
%t990 = load ptr, ptr %t38
|
|
%t991 = call i32 @fn_is_math_builtin(ptr %t990)
|
|
%t992 = icmp ne i32 %t991, 0
|
|
br i1 %t992, label %then160, label %ifend162
|
|
then160:
|
|
%t993 = load ptr, ptr %t38
|
|
%t994 = load ptr, ptr %t0
|
|
%t995 = call ptr @fn_emit_math_builtin(ptr %t993, ptr %t994)
|
|
store ptr %t995, ptr %retval
|
|
br label %ret
|
|
ifend162:
|
|
%t996 = load ptr, ptr %t38
|
|
%t997 = call ptr @fn_find_extern(ptr %t996)
|
|
store ptr %t997, ptr %t998
|
|
%t999 = load ptr, ptr %t998
|
|
%t1000 = icmp ne ptr %t999, null
|
|
%t1001 = zext i1 %t1000 to i32
|
|
%t1002 = icmp ne i32 %t1001, 0
|
|
br i1 %t1002, label %then163, label %ifend165
|
|
then163:
|
|
%t1003 = load ptr, ptr %t0
|
|
%t1004 = load ptr, ptr %t998
|
|
%t1005 = call ptr @fn_param_labels(ptr %t1004)
|
|
call void @fn_reorder_named(ptr %t1003, ptr %t1005)
|
|
%t1006 = getelementptr %LSlice, ptr null, i32 1
|
|
%t1007 = ptrtoint ptr %t1006 to i64
|
|
%t1008 = call ptr @malloc(i64 %t1007)
|
|
%t1009 = getelementptr inbounds %LSlice, ptr %t1008, i32 0, i32 0
|
|
store ptr null, ptr %t1009
|
|
%t1010 = getelementptr inbounds %LSlice, ptr %t1008, i32 0, i32 1
|
|
store i32 0, ptr %t1010
|
|
%t1011 = getelementptr inbounds %LSlice, ptr %t1008, i32 0, i32 2
|
|
store i32 0, ptr %t1011
|
|
store ptr %t1008, ptr %t1012
|
|
%t1013 = getelementptr %LSlice, ptr null, i32 1
|
|
%t1014 = ptrtoint ptr %t1013 to i64
|
|
%t1015 = call ptr @malloc(i64 %t1014)
|
|
%t1016 = getelementptr inbounds %LSlice, ptr %t1015, i32 0, i32 0
|
|
store ptr null, ptr %t1016
|
|
%t1017 = getelementptr inbounds %LSlice, ptr %t1015, i32 0, i32 1
|
|
store i32 0, ptr %t1017
|
|
%t1018 = getelementptr inbounds %LSlice, ptr %t1015, i32 0, i32 2
|
|
store i32 0, ptr %t1018
|
|
store ptr %t1015, ptr %t1019
|
|
store i32 0, ptr %t1020
|
|
br label %wcond166
|
|
wcond166:
|
|
%t1021 = load i32, ptr %t1020
|
|
%t1022 = load ptr, ptr %t0
|
|
%t1023 = getelementptr inbounds %Cmp_Node, ptr %t1022, i32 0, i32 7
|
|
%t1024 = load ptr, ptr %t1023
|
|
%t1025 = getelementptr inbounds %LSlice, ptr %t1024, i32 0, i32 1
|
|
%t1026 = load i32, ptr %t1025
|
|
%t1027 = icmp slt i32 %t1021, %t1026
|
|
%t1028 = zext i1 %t1027 to i32
|
|
%t1029 = icmp ne i32 %t1028, 0
|
|
br i1 %t1029, label %wbody167, label %wend168
|
|
wbody167:
|
|
%t1030 = load ptr, ptr %t0
|
|
%t1031 = getelementptr inbounds %Cmp_Node, ptr %t1030, i32 0, i32 7
|
|
%t1032 = load ptr, ptr %t1031
|
|
%t1033 = getelementptr inbounds %LSlice, ptr %t1032, i32 0, i32 0
|
|
%t1034 = load ptr, ptr %t1033
|
|
%t1035 = load i32, ptr %t1020
|
|
%t1036 = getelementptr inbounds ptr, ptr %t1034, i32 %t1035
|
|
%t1037 = load ptr, ptr %t1036
|
|
%t1038 = call ptr @fn_emit_expr(ptr %t1037)
|
|
store ptr %t1038, ptr %t1039
|
|
%t1040 = load ptr, ptr %t1012
|
|
%t1041 = getelementptr inbounds %LSlice, ptr %t1040, i32 0, i32 1
|
|
%t1042 = getelementptr inbounds %LSlice, ptr %t1040, i32 0, i32 2
|
|
%t1043 = getelementptr inbounds %LSlice, ptr %t1040, i32 0, i32 0
|
|
%t1044 = load i32, ptr %t1041
|
|
%t1045 = load i32, ptr %t1042
|
|
%t1046 = icmp sge i32 %t1044, %t1045
|
|
br i1 %t1046, label %grow169, label %put170
|
|
grow169:
|
|
%t1047 = mul i32 %t1045, 2
|
|
%t1048 = icmp eq i32 %t1045, 0
|
|
%t1049 = select i1 %t1048, i32 8, i32 %t1047
|
|
%t1050 = getelementptr ptr, ptr null, i32 1
|
|
%t1051 = ptrtoint ptr %t1050 to i64
|
|
%t1052 = zext i32 %t1049 to i64
|
|
%t1053 = mul i64 %t1052, %t1051
|
|
%t1054 = load ptr, ptr %t1043
|
|
%t1055 = call ptr @realloc(ptr %t1054, i64 %t1053)
|
|
store ptr %t1055, ptr %t1043
|
|
store i32 %t1049, ptr %t1042
|
|
br label %put170
|
|
put170:
|
|
%t1056 = load ptr, ptr %t1039
|
|
%t1057 = getelementptr inbounds %Cmp_Val, ptr %t1056, i32 0, i32 0
|
|
%t1058 = load ptr, ptr %t1057
|
|
%t1059 = load ptr, ptr %t1043
|
|
%t1060 = getelementptr inbounds ptr, ptr %t1059, i32 %t1044
|
|
store ptr %t1058, ptr %t1060
|
|
%t1061 = add i32 %t1044, 1
|
|
store i32 %t1061, ptr %t1041
|
|
%t1062 = load ptr, ptr %t1019
|
|
%t1063 = getelementptr inbounds %LSlice, ptr %t1062, i32 0, i32 1
|
|
%t1064 = getelementptr inbounds %LSlice, ptr %t1062, i32 0, i32 2
|
|
%t1065 = getelementptr inbounds %LSlice, ptr %t1062, i32 0, i32 0
|
|
%t1066 = load i32, ptr %t1063
|
|
%t1067 = load i32, ptr %t1064
|
|
%t1068 = icmp sge i32 %t1066, %t1067
|
|
br i1 %t1068, label %grow171, label %put172
|
|
grow171:
|
|
%t1069 = mul i32 %t1067, 2
|
|
%t1070 = icmp eq i32 %t1067, 0
|
|
%t1071 = select i1 %t1070, i32 8, i32 %t1069
|
|
%t1072 = getelementptr ptr, ptr null, i32 1
|
|
%t1073 = ptrtoint ptr %t1072 to i64
|
|
%t1074 = zext i32 %t1071 to i64
|
|
%t1075 = mul i64 %t1074, %t1073
|
|
%t1076 = load ptr, ptr %t1065
|
|
%t1077 = call ptr @realloc(ptr %t1076, i64 %t1075)
|
|
store ptr %t1077, ptr %t1065
|
|
store i32 %t1071, ptr %t1064
|
|
br label %put172
|
|
put172:
|
|
%t1078 = load ptr, ptr %t1039
|
|
%t1079 = getelementptr inbounds %Cmp_Val, ptr %t1078, i32 0, i32 1
|
|
%t1080 = load ptr, ptr %t1079
|
|
%t1081 = load ptr, ptr %t1065
|
|
%t1082 = getelementptr inbounds ptr, ptr %t1081, i32 %t1066
|
|
store ptr %t1080, ptr %t1082
|
|
%t1083 = add i32 %t1066, 1
|
|
store i32 %t1083, ptr %t1063
|
|
%t1084 = load i32, ptr %t1020
|
|
%t1085 = add i32 %t1084, 1
|
|
store i32 %t1085, ptr %t1020
|
|
br label %wcond166
|
|
wend168:
|
|
%t1086 = load ptr, ptr %t998
|
|
%t1087 = getelementptr inbounds %Cmp_Node, ptr %t1086, i32 0, i32 3
|
|
%t1088 = load ptr, ptr %t1087
|
|
%t1089 = call ptr @fn_llty(ptr %t1088)
|
|
store ptr %t1089, ptr %t1090
|
|
call void @fn_emit(ptr @.str1468)
|
|
store ptr @.str1469, ptr %t1091
|
|
%t1092 = load ptr, ptr %t1090
|
|
%t1093 = call i32 @fn_str_eq(ptr %t1092, ptr @.str1470)
|
|
%t1094 = icmp eq i32 %t1093, 0
|
|
%t1095 = zext i1 %t1094 to i32
|
|
%t1096 = icmp ne i32 %t1095, 0
|
|
br i1 %t1096, label %then173, label %ifend175
|
|
then173:
|
|
%t1097 = call ptr @fn_nreg()
|
|
store ptr %t1097, ptr %t1091
|
|
%t1098 = load ptr, ptr %t1091
|
|
call void @fn_emit(ptr %t1098)
|
|
call void @fn_emit(ptr @.str1471)
|
|
br label %ifend175
|
|
ifend175:
|
|
call void @fn_emit(ptr @.str1472)
|
|
%t1099 = load ptr, ptr %t1090
|
|
call void @fn_emit(ptr %t1099)
|
|
call void @fn_emit(ptr @.str1473)
|
|
%t1100 = load ptr, ptr %t998
|
|
%t1101 = getelementptr inbounds %Cmp_Node, ptr %t1100, i32 0, i32 4
|
|
%t1102 = load ptr, ptr %t1101
|
|
%t1103 = getelementptr inbounds %Cmp_Node, ptr %t1102, i32 0, i32 1
|
|
%t1104 = load ptr, ptr %t1103
|
|
call void @fn_emit(ptr %t1104)
|
|
call void @fn_emit(ptr @.str1474)
|
|
store i32 0, ptr %t1020
|
|
br label %wcond176
|
|
wcond176:
|
|
%t1105 = load i32, ptr %t1020
|
|
%t1106 = load ptr, ptr %t1012
|
|
%t1107 = getelementptr inbounds %LSlice, ptr %t1106, i32 0, i32 1
|
|
%t1108 = load i32, ptr %t1107
|
|
%t1109 = icmp slt i32 %t1105, %t1108
|
|
%t1110 = zext i1 %t1109 to i32
|
|
%t1111 = icmp ne i32 %t1110, 0
|
|
br i1 %t1111, label %wbody177, label %wend178
|
|
wbody177:
|
|
%t1112 = load i32, ptr %t1020
|
|
%t1113 = icmp sgt i32 %t1112, 0
|
|
%t1114 = zext i1 %t1113 to i32
|
|
%t1115 = icmp ne i32 %t1114, 0
|
|
br i1 %t1115, label %then179, label %ifend181
|
|
then179:
|
|
call void @fn_emit(ptr @.str1475)
|
|
br label %ifend181
|
|
ifend181:
|
|
%t1116 = load ptr, ptr %t1019
|
|
%t1117 = getelementptr inbounds %LSlice, ptr %t1116, i32 0, i32 0
|
|
%t1118 = load ptr, ptr %t1117
|
|
%t1119 = load i32, ptr %t1020
|
|
%t1120 = getelementptr inbounds ptr, ptr %t1118, i32 %t1119
|
|
%t1121 = load ptr, ptr %t1120
|
|
%t1122 = call ptr @fn_llty(ptr %t1121)
|
|
call void @fn_emit(ptr %t1122)
|
|
call void @fn_emit(ptr @.str1476)
|
|
%t1123 = load ptr, ptr %t1012
|
|
%t1124 = getelementptr inbounds %LSlice, ptr %t1123, i32 0, i32 0
|
|
%t1125 = load ptr, ptr %t1124
|
|
%t1126 = load i32, ptr %t1020
|
|
%t1127 = getelementptr inbounds ptr, ptr %t1125, i32 %t1126
|
|
%t1128 = load ptr, ptr %t1127
|
|
call void @fn_emit(ptr %t1128)
|
|
%t1129 = load i32, ptr %t1020
|
|
%t1130 = add i32 %t1129, 1
|
|
store i32 %t1130, ptr %t1020
|
|
br label %wcond176
|
|
wend178:
|
|
call void @fn_emit(ptr @.str1477)
|
|
%t1131 = load ptr, ptr %t1091
|
|
%t1132 = load ptr, ptr %t998
|
|
%t1133 = getelementptr inbounds %Cmp_Node, ptr %t1132, i32 0, i32 3
|
|
%t1134 = load ptr, ptr %t1133
|
|
%t1135 = call ptr @fn_val(ptr %t1131, ptr %t1134)
|
|
store ptr %t1135, ptr %retval
|
|
br label %ret
|
|
ifend165:
|
|
%t1136 = load ptr, ptr %t38
|
|
%t1137 = call ptr @fn_find_fn(ptr %t1136)
|
|
store ptr %t1137, ptr %t1138
|
|
%t1139 = load ptr, ptr %t38
|
|
store ptr %t1139, ptr %t1140
|
|
%t1141 = load ptr, ptr %t1138
|
|
%t1142 = icmp eq ptr %t1141, null
|
|
%t1143 = zext i1 %t1142 to i32
|
|
%t1144 = icmp ne i32 %t1143, 0
|
|
br i1 %t1144, label %then182, label %ifend184
|
|
then182:
|
|
%t1145 = load ptr, ptr %t38
|
|
%t1146 = call ptr @fn_str_concat(ptr @.str1478, ptr %t1145)
|
|
store ptr %t1146, ptr %t1147
|
|
%t1148 = load ptr, ptr %t1147
|
|
%t1149 = call ptr @fn_find_fn(ptr %t1148)
|
|
store ptr %t1149, ptr %t1138
|
|
%t1150 = load ptr, ptr %t1138
|
|
%t1151 = icmp eq ptr %t1150, null
|
|
%t1152 = zext i1 %t1151 to i32
|
|
%t1153 = icmp ne i32 %t1152, 0
|
|
br i1 %t1153, label %then185, label %ifend187
|
|
then185:
|
|
%t1154 = load ptr, ptr %t38
|
|
%t1155 = call ptr @fn_str_concat(ptr @.str1479, ptr %t1154)
|
|
call void @fn_perr(ptr %t1155)
|
|
br label %ifend187
|
|
ifend187:
|
|
%t1156 = load ptr, ptr %t1147
|
|
store ptr %t1156, ptr %t1140
|
|
br label %ifend184
|
|
ifend184:
|
|
%t1157 = load ptr, ptr %t0
|
|
%t1158 = load ptr, ptr %t1138
|
|
%t1159 = call ptr @fn_param_labels(ptr %t1158)
|
|
call void @fn_reorder_named(ptr %t1157, ptr %t1159)
|
|
%t1160 = getelementptr %LSlice, ptr null, i32 1
|
|
%t1161 = ptrtoint ptr %t1160 to i64
|
|
%t1162 = call ptr @malloc(i64 %t1161)
|
|
%t1163 = getelementptr inbounds %LSlice, ptr %t1162, i32 0, i32 0
|
|
store ptr null, ptr %t1163
|
|
%t1164 = getelementptr inbounds %LSlice, ptr %t1162, i32 0, i32 1
|
|
store i32 0, ptr %t1164
|
|
%t1165 = getelementptr inbounds %LSlice, ptr %t1162, i32 0, i32 2
|
|
store i32 0, ptr %t1165
|
|
store ptr %t1162, ptr %t1166
|
|
%t1167 = getelementptr %LSlice, ptr null, i32 1
|
|
%t1168 = ptrtoint ptr %t1167 to i64
|
|
%t1169 = call ptr @malloc(i64 %t1168)
|
|
%t1170 = getelementptr inbounds %LSlice, ptr %t1169, i32 0, i32 0
|
|
store ptr null, ptr %t1170
|
|
%t1171 = getelementptr inbounds %LSlice, ptr %t1169, i32 0, i32 1
|
|
store i32 0, ptr %t1171
|
|
%t1172 = getelementptr inbounds %LSlice, ptr %t1169, i32 0, i32 2
|
|
store i32 0, ptr %t1172
|
|
store ptr %t1169, ptr %t1173
|
|
store i32 0, ptr %t1174
|
|
br label %wcond188
|
|
wcond188:
|
|
%t1175 = load i32, ptr %t1174
|
|
%t1176 = load ptr, ptr %t0
|
|
%t1177 = getelementptr inbounds %Cmp_Node, ptr %t1176, i32 0, i32 7
|
|
%t1178 = load ptr, ptr %t1177
|
|
%t1179 = getelementptr inbounds %LSlice, ptr %t1178, i32 0, i32 1
|
|
%t1180 = load i32, ptr %t1179
|
|
%t1181 = icmp slt i32 %t1175, %t1180
|
|
%t1182 = zext i1 %t1181 to i32
|
|
%t1183 = icmp ne i32 %t1182, 0
|
|
br i1 %t1183, label %wbody189, label %wend190
|
|
wbody189:
|
|
%t1184 = load ptr, ptr %t0
|
|
%t1185 = getelementptr inbounds %Cmp_Node, ptr %t1184, i32 0, i32 7
|
|
%t1186 = load ptr, ptr %t1185
|
|
%t1187 = getelementptr inbounds %LSlice, ptr %t1186, i32 0, i32 0
|
|
%t1188 = load ptr, ptr %t1187
|
|
%t1189 = load i32, ptr %t1174
|
|
%t1190 = getelementptr inbounds ptr, ptr %t1188, i32 %t1189
|
|
%t1191 = load ptr, ptr %t1190
|
|
%t1192 = call ptr @fn_emit_expr(ptr %t1191)
|
|
store ptr %t1192, ptr %t1193
|
|
%t1194 = load ptr, ptr %t1166
|
|
%t1195 = getelementptr inbounds %LSlice, ptr %t1194, i32 0, i32 1
|
|
%t1196 = getelementptr inbounds %LSlice, ptr %t1194, i32 0, i32 2
|
|
%t1197 = getelementptr inbounds %LSlice, ptr %t1194, i32 0, i32 0
|
|
%t1198 = load i32, ptr %t1195
|
|
%t1199 = load i32, ptr %t1196
|
|
%t1200 = icmp sge i32 %t1198, %t1199
|
|
br i1 %t1200, label %grow191, label %put192
|
|
grow191:
|
|
%t1201 = mul i32 %t1199, 2
|
|
%t1202 = icmp eq i32 %t1199, 0
|
|
%t1203 = select i1 %t1202, i32 8, i32 %t1201
|
|
%t1204 = getelementptr ptr, ptr null, i32 1
|
|
%t1205 = ptrtoint ptr %t1204 to i64
|
|
%t1206 = zext i32 %t1203 to i64
|
|
%t1207 = mul i64 %t1206, %t1205
|
|
%t1208 = load ptr, ptr %t1197
|
|
%t1209 = call ptr @realloc(ptr %t1208, i64 %t1207)
|
|
store ptr %t1209, ptr %t1197
|
|
store i32 %t1203, ptr %t1196
|
|
br label %put192
|
|
put192:
|
|
%t1210 = load ptr, ptr %t1193
|
|
%t1211 = getelementptr inbounds %Cmp_Val, ptr %t1210, i32 0, i32 0
|
|
%t1212 = load ptr, ptr %t1211
|
|
%t1213 = load ptr, ptr %t1197
|
|
%t1214 = getelementptr inbounds ptr, ptr %t1213, i32 %t1198
|
|
store ptr %t1212, ptr %t1214
|
|
%t1215 = add i32 %t1198, 1
|
|
store i32 %t1215, ptr %t1195
|
|
%t1216 = load ptr, ptr %t1173
|
|
%t1217 = getelementptr inbounds %LSlice, ptr %t1216, i32 0, i32 1
|
|
%t1218 = getelementptr inbounds %LSlice, ptr %t1216, i32 0, i32 2
|
|
%t1219 = getelementptr inbounds %LSlice, ptr %t1216, i32 0, i32 0
|
|
%t1220 = load i32, ptr %t1217
|
|
%t1221 = load i32, ptr %t1218
|
|
%t1222 = icmp sge i32 %t1220, %t1221
|
|
br i1 %t1222, label %grow193, label %put194
|
|
grow193:
|
|
%t1223 = mul i32 %t1221, 2
|
|
%t1224 = icmp eq i32 %t1221, 0
|
|
%t1225 = select i1 %t1224, i32 8, i32 %t1223
|
|
%t1226 = getelementptr ptr, ptr null, i32 1
|
|
%t1227 = ptrtoint ptr %t1226 to i64
|
|
%t1228 = zext i32 %t1225 to i64
|
|
%t1229 = mul i64 %t1228, %t1227
|
|
%t1230 = load ptr, ptr %t1219
|
|
%t1231 = call ptr @realloc(ptr %t1230, i64 %t1229)
|
|
store ptr %t1231, ptr %t1219
|
|
store i32 %t1225, ptr %t1218
|
|
br label %put194
|
|
put194:
|
|
%t1232 = load ptr, ptr %t1193
|
|
%t1233 = getelementptr inbounds %Cmp_Val, ptr %t1232, i32 0, i32 1
|
|
%t1234 = load ptr, ptr %t1233
|
|
%t1235 = load ptr, ptr %t1219
|
|
%t1236 = getelementptr inbounds ptr, ptr %t1235, i32 %t1220
|
|
store ptr %t1234, ptr %t1236
|
|
%t1237 = add i32 %t1220, 1
|
|
store i32 %t1237, ptr %t1217
|
|
%t1238 = load i32, ptr %t1174
|
|
%t1239 = add i32 %t1238, 1
|
|
store i32 %t1239, ptr %t1174
|
|
br label %wcond188
|
|
wend190:
|
|
%t1240 = load ptr, ptr %t1138
|
|
%t1241 = getelementptr inbounds %Cmp_Node, ptr %t1240, i32 0, i32 3
|
|
%t1242 = load ptr, ptr %t1241
|
|
%t1243 = call ptr @fn_llty(ptr %t1242)
|
|
store ptr %t1243, ptr %t1244
|
|
call void @fn_emit(ptr @.str1480)
|
|
store ptr @.str1481, ptr %t1245
|
|
%t1246 = load ptr, ptr %t1244
|
|
%t1247 = call i32 @fn_str_eq(ptr %t1246, ptr @.str1482)
|
|
%t1248 = icmp eq i32 %t1247, 0
|
|
%t1249 = zext i1 %t1248 to i32
|
|
%t1250 = icmp ne i32 %t1249, 0
|
|
br i1 %t1250, label %then195, label %ifend197
|
|
then195:
|
|
%t1251 = call ptr @fn_nreg()
|
|
store ptr %t1251, ptr %t1245
|
|
%t1252 = load ptr, ptr %t1245
|
|
call void @fn_emit(ptr %t1252)
|
|
call void @fn_emit(ptr @.str1483)
|
|
br label %ifend197
|
|
ifend197:
|
|
call void @fn_emit(ptr @.str1484)
|
|
%t1253 = load ptr, ptr %t1244
|
|
call void @fn_emit(ptr %t1253)
|
|
call void @fn_emit(ptr @.str1485)
|
|
%t1254 = load ptr, ptr %t1140
|
|
call void @fn_emit(ptr %t1254)
|
|
call void @fn_emit(ptr @.str1486)
|
|
store i32 0, ptr %t1174
|
|
br label %wcond198
|
|
wcond198:
|
|
%t1255 = load i32, ptr %t1174
|
|
%t1256 = load ptr, ptr %t1166
|
|
%t1257 = getelementptr inbounds %LSlice, ptr %t1256, i32 0, i32 1
|
|
%t1258 = load i32, ptr %t1257
|
|
%t1259 = icmp slt i32 %t1255, %t1258
|
|
%t1260 = zext i1 %t1259 to i32
|
|
%t1261 = icmp ne i32 %t1260, 0
|
|
br i1 %t1261, label %wbody199, label %wend200
|
|
wbody199:
|
|
%t1262 = load i32, ptr %t1174
|
|
%t1263 = icmp sgt i32 %t1262, 0
|
|
%t1264 = zext i1 %t1263 to i32
|
|
%t1265 = icmp ne i32 %t1264, 0
|
|
br i1 %t1265, label %then201, label %ifend203
|
|
then201:
|
|
call void @fn_emit(ptr @.str1487)
|
|
br label %ifend203
|
|
ifend203:
|
|
%t1266 = load ptr, ptr %t1173
|
|
%t1267 = getelementptr inbounds %LSlice, ptr %t1266, i32 0, i32 0
|
|
%t1268 = load ptr, ptr %t1267
|
|
%t1269 = load i32, ptr %t1174
|
|
%t1270 = getelementptr inbounds ptr, ptr %t1268, i32 %t1269
|
|
%t1271 = load ptr, ptr %t1270
|
|
%t1272 = call ptr @fn_llty(ptr %t1271)
|
|
call void @fn_emit(ptr %t1272)
|
|
call void @fn_emit(ptr @.str1488)
|
|
%t1273 = load ptr, ptr %t1166
|
|
%t1274 = getelementptr inbounds %LSlice, ptr %t1273, i32 0, i32 0
|
|
%t1275 = load ptr, ptr %t1274
|
|
%t1276 = load i32, ptr %t1174
|
|
%t1277 = getelementptr inbounds ptr, ptr %t1275, i32 %t1276
|
|
%t1278 = load ptr, ptr %t1277
|
|
call void @fn_emit(ptr %t1278)
|
|
%t1279 = load i32, ptr %t1174
|
|
%t1280 = add i32 %t1279, 1
|
|
store i32 %t1280, ptr %t1174
|
|
br label %wcond198
|
|
wend200:
|
|
call void @fn_emit(ptr @.str1489)
|
|
%t1281 = load ptr, ptr %t1245
|
|
%t1282 = load ptr, ptr %t1138
|
|
%t1283 = getelementptr inbounds %Cmp_Node, ptr %t1282, i32 0, i32 3
|
|
%t1284 = load ptr, ptr %t1283
|
|
%t1285 = call ptr @fn_val(ptr %t1281, ptr %t1284)
|
|
store ptr %t1285, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t1286 = load ptr, ptr %retval
|
|
ret ptr %t1286
|
|
}
|
|
|
|
define ptr @fn_emit_expr(ptr %arg_e) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t56 = alloca ptr
|
|
%t61 = alloca ptr
|
|
%t66 = alloca ptr
|
|
%t124 = alloca i32
|
|
%t146 = alloca ptr
|
|
%t175 = alloca ptr
|
|
%t221 = alloca i32
|
|
%t242 = alloca i32
|
|
%t254 = alloca ptr
|
|
%t264 = alloca ptr
|
|
%t277 = alloca ptr
|
|
%t289 = alloca ptr
|
|
%t296 = alloca ptr
|
|
%t339 = alloca ptr
|
|
%t369 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = icmp eq ptr %t1, null
|
|
%t3 = zext i1 %t2 to i32
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
%t5 = call ptr @fn_val(ptr @.str1490, ptr @.str1491)
|
|
store ptr %t5, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 0
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = icmp eq i32 %t8, 30
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %then3, label %ifend5
|
|
then3:
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 2
|
|
%t14 = load i32, ptr %t13
|
|
%t15 = call ptr @fn_itoa(i32 %t14)
|
|
%t16 = call ptr @fn_val(ptr %t15, ptr @.str1492)
|
|
store ptr %t16, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 0
|
|
%t19 = load i32, ptr %t18
|
|
%t20 = icmp eq i32 %t19, 40
|
|
%t21 = zext i1 %t20 to i32
|
|
%t22 = icmp ne i32 %t21, 0
|
|
br i1 %t22, label %then6, label %ifend8
|
|
then6:
|
|
%t23 = load ptr, ptr %t0
|
|
%t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 2
|
|
%t25 = load i32, ptr %t24
|
|
%t26 = call ptr @fn_itoa(i32 %t25)
|
|
%t27 = call ptr @fn_val(ptr %t26, ptr @.str1493)
|
|
store ptr %t27, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 0
|
|
%t30 = load i32, ptr %t29
|
|
%t31 = icmp eq i32 %t30, 32
|
|
%t32 = zext i1 %t31 to i32
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then9, label %ifend11
|
|
then9:
|
|
%t34 = load ptr, ptr %t0
|
|
%t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 2
|
|
%t36 = load i32, ptr %t35
|
|
%t37 = call ptr @fn_itoa(i32 %t36)
|
|
%t38 = call ptr @fn_val(ptr %t37, ptr @.str1494)
|
|
store ptr %t38, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t39 = load ptr, ptr %t0
|
|
%t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 0
|
|
%t41 = load i32, ptr %t40
|
|
%t42 = icmp eq i32 %t41, 43
|
|
%t43 = zext i1 %t42 to i32
|
|
%t44 = icmp ne i32 %t43, 0
|
|
br i1 %t44, label %then12, label %ifend14
|
|
then12:
|
|
%t45 = call ptr @fn_val(ptr @.str1495, ptr @.str1496)
|
|
store ptr %t45, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
%t46 = load ptr, ptr %t0
|
|
%t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 0
|
|
%t48 = load i32, ptr %t47
|
|
%t49 = icmp eq i32 %t48, 44
|
|
%t50 = zext i1 %t49 to i32
|
|
%t51 = icmp ne i32 %t50, 0
|
|
br i1 %t51, label %then15, label %ifend17
|
|
then15:
|
|
%t52 = load ptr, ptr %t0
|
|
%t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 4
|
|
%t54 = load ptr, ptr %t53
|
|
%t55 = call ptr @fn_emit_expr(ptr %t54)
|
|
store ptr %t55, ptr %t56
|
|
%t57 = load ptr, ptr %t0
|
|
%t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 5
|
|
%t59 = load ptr, ptr %t58
|
|
%t60 = call ptr @fn_emit_expr(ptr %t59)
|
|
store ptr %t60, ptr %t61
|
|
%t62 = load ptr, ptr %t0
|
|
%t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 6
|
|
%t64 = load ptr, ptr %t63
|
|
%t65 = call ptr @fn_emit_expr(ptr %t64)
|
|
store ptr %t65, ptr %t66
|
|
store i32 1, ptr @g_g_uses_strslice
|
|
%t67 = load ptr, ptr %t56
|
|
%t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 0
|
|
%t69 = load ptr, ptr %t68
|
|
%t70 = call ptr @fn_str_concat(ptr @.str1497, ptr %t69)
|
|
%t71 = call ptr @fn_str_concat(ptr %t70, ptr @.str1498)
|
|
%t72 = load ptr, ptr %t61
|
|
%t73 = getelementptr inbounds %Cmp_Val, ptr %t72, i32 0, i32 0
|
|
%t74 = load ptr, ptr %t73
|
|
%t75 = call ptr @fn_str_concat(ptr %t71, ptr %t74)
|
|
%t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str1499)
|
|
%t77 = load ptr, ptr %t66
|
|
%t78 = getelementptr inbounds %Cmp_Val, ptr %t77, i32 0, i32 0
|
|
%t79 = load ptr, ptr %t78
|
|
%t80 = call ptr @fn_str_concat(ptr %t76, ptr %t79)
|
|
%t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str1500)
|
|
%t82 = call ptr @fn_emit_bind(ptr %t81)
|
|
%t83 = call ptr @fn_val(ptr %t82, ptr @.str1501)
|
|
store ptr %t83, ptr %retval
|
|
br label %ret
|
|
ifend17:
|
|
%t84 = load ptr, ptr %t0
|
|
%t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 0
|
|
%t86 = load i32, ptr %t85
|
|
%t87 = icmp eq i32 %t86, 31
|
|
%t88 = zext i1 %t87 to i32
|
|
%t89 = icmp ne i32 %t88, 0
|
|
br i1 %t89, label %then18, label %ifend20
|
|
then18:
|
|
%t90 = load ptr, ptr %t0
|
|
%t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 1
|
|
%t92 = load ptr, ptr %t91
|
|
%t93 = call ptr @fn_emit_str_const(ptr %t92)
|
|
%t94 = call ptr @fn_val(ptr %t93, ptr @.str1502)
|
|
store ptr %t94, ptr %retval
|
|
br label %ret
|
|
ifend20:
|
|
%t95 = load ptr, ptr %t0
|
|
%t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 0
|
|
%t97 = load i32, ptr %t96
|
|
%t98 = icmp eq i32 %t97, 39
|
|
%t99 = zext i1 %t98 to i32
|
|
%t100 = icmp ne i32 %t99, 0
|
|
br i1 %t100, label %then21, label %ifend23
|
|
then21:
|
|
%t101 = load ptr, ptr %t0
|
|
%t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 1
|
|
%t103 = load ptr, ptr %t102
|
|
%t104 = call i32 @fn_is_slice_ty(ptr %t103)
|
|
%t105 = icmp ne i32 %t104, 0
|
|
br i1 %t105, label %then24, label %ifend26
|
|
then24:
|
|
%t106 = load ptr, ptr %t0
|
|
%t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 1
|
|
%t108 = load ptr, ptr %t107
|
|
%t109 = call ptr @fn_emit_new_slice(ptr %t108)
|
|
store ptr %t109, ptr %retval
|
|
br label %ret
|
|
ifend26:
|
|
%t110 = load ptr, ptr %t0
|
|
%t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 1
|
|
%t112 = load ptr, ptr %t111
|
|
%t113 = call ptr @fn_emit_new_struct(ptr %t112)
|
|
store ptr %t113, ptr %retval
|
|
br label %ret
|
|
ifend23:
|
|
%t114 = load ptr, ptr %t0
|
|
%t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 0
|
|
%t116 = load i32, ptr %t115
|
|
%t117 = icmp eq i32 %t116, 33
|
|
%t118 = zext i1 %t117 to i32
|
|
%t119 = icmp ne i32 %t118, 0
|
|
br i1 %t119, label %then27, label %ifend29
|
|
then27:
|
|
%t120 = load ptr, ptr %t0
|
|
%t121 = getelementptr inbounds %Cmp_Node, ptr %t120, i32 0, i32 1
|
|
%t122 = load ptr, ptr %t121
|
|
%t123 = call i32 @fn_loc_find(ptr %t122)
|
|
store i32 %t123, ptr %t124
|
|
%t125 = load i32, ptr %t124
|
|
%t126 = icmp sge i32 %t125, 0
|
|
%t127 = zext i1 %t126 to i32
|
|
%t128 = icmp ne i32 %t127, 0
|
|
br i1 %t128, label %then30, label %ifend32
|
|
then30:
|
|
%t129 = load ptr, ptr @g_loc_reg
|
|
%t130 = getelementptr inbounds %LSlice, ptr %t129, i32 0, i32 0
|
|
%t131 = load ptr, ptr %t130
|
|
%t132 = load i32, ptr %t124
|
|
%t133 = getelementptr inbounds ptr, ptr %t131, i32 %t132
|
|
%t134 = load ptr, ptr %t133
|
|
%t135 = load ptr, ptr @g_loc_ty
|
|
%t136 = getelementptr inbounds %LSlice, ptr %t135, i32 0, i32 0
|
|
%t137 = load ptr, ptr %t136
|
|
%t138 = load i32, ptr %t124
|
|
%t139 = getelementptr inbounds ptr, ptr %t137, i32 %t138
|
|
%t140 = load ptr, ptr %t139
|
|
%t141 = call ptr @fn_emit_load_at(ptr %t134, ptr %t140)
|
|
store ptr %t141, ptr %retval
|
|
br label %ret
|
|
ifend32:
|
|
%t142 = load ptr, ptr %t0
|
|
%t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 1
|
|
%t144 = load ptr, ptr %t143
|
|
%t145 = call ptr @fn_find_global(ptr %t144)
|
|
store ptr %t145, ptr %t146
|
|
%t147 = load ptr, ptr %t146
|
|
%t148 = icmp ne ptr %t147, null
|
|
%t149 = zext i1 %t148 to i32
|
|
%t150 = icmp ne i32 %t149, 0
|
|
br i1 %t150, label %then33, label %ifend35
|
|
then33:
|
|
%t151 = load ptr, ptr %t146
|
|
%t152 = getelementptr inbounds %Cmp_Node, ptr %t151, i32 0, i32 0
|
|
%t153 = load i32, ptr %t152
|
|
%t154 = icmp eq i32 %t153, 3
|
|
%t155 = zext i1 %t154 to i32
|
|
%t156 = icmp ne i32 %t155, 0
|
|
br i1 %t156, label %then36, label %ifend38
|
|
then36:
|
|
%t157 = load ptr, ptr %t146
|
|
%t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 4
|
|
%t159 = load ptr, ptr %t158
|
|
%t160 = getelementptr inbounds %Cmp_Node, ptr %t159, i32 0, i32 2
|
|
%t161 = load i32, ptr %t160
|
|
%t162 = call ptr @fn_itoa(i32 %t161)
|
|
%t163 = call ptr @fn_val(ptr %t162, ptr @.str1503)
|
|
store ptr %t163, ptr %retval
|
|
br label %ret
|
|
ifend38:
|
|
%t164 = load ptr, ptr %t146
|
|
%t165 = getelementptr inbounds %Cmp_Node, ptr %t164, i32 0, i32 3
|
|
%t166 = load ptr, ptr %t165
|
|
%t167 = call ptr @fn_llty(ptr %t166)
|
|
%t168 = call ptr @fn_str_concat(ptr @.str1504, ptr %t167)
|
|
%t169 = call ptr @fn_str_concat(ptr %t168, ptr @.str1505)
|
|
%t170 = load ptr, ptr %t0
|
|
%t171 = getelementptr inbounds %Cmp_Node, ptr %t170, i32 0, i32 1
|
|
%t172 = load ptr, ptr %t171
|
|
%t173 = call ptr @fn_str_concat(ptr %t169, ptr %t172)
|
|
%t174 = call ptr @fn_emit_bind(ptr %t173)
|
|
store ptr %t174, ptr %t175
|
|
%t176 = load ptr, ptr %t175
|
|
%t177 = load ptr, ptr %t146
|
|
%t178 = getelementptr inbounds %Cmp_Node, ptr %t177, i32 0, i32 3
|
|
%t179 = load ptr, ptr %t178
|
|
%t180 = call ptr @fn_val(ptr %t176, ptr %t179)
|
|
store ptr %t180, ptr %retval
|
|
br label %ret
|
|
ifend35:
|
|
%t181 = load ptr, ptr %t0
|
|
%t182 = getelementptr inbounds %Cmp_Node, ptr %t181, i32 0, i32 1
|
|
%t183 = load ptr, ptr %t182
|
|
%t184 = call i32 @fn_is_ui_ident(ptr %t183)
|
|
%t185 = icmp ne i32 %t184, 0
|
|
br i1 %t185, label %then39, label %ifend41
|
|
then39:
|
|
%t186 = load ptr, ptr %t0
|
|
%t187 = getelementptr inbounds %Cmp_Node, ptr %t186, i32 0, i32 1
|
|
%t188 = load ptr, ptr %t187
|
|
%t189 = call i32 @fn_ui_index_of(ptr %t188)
|
|
%t190 = call ptr @fn_itoa(i32 %t189)
|
|
%t191 = call ptr @fn_val(ptr %t190, ptr @.str1506)
|
|
store ptr %t191, ptr %retval
|
|
br label %ret
|
|
ifend41:
|
|
%t192 = load ptr, ptr %t0
|
|
%t193 = getelementptr inbounds %Cmp_Node, ptr %t192, i32 0, i32 1
|
|
%t194 = load ptr, ptr %t193
|
|
%t195 = call ptr @fn_str_concat(ptr @.str1507, ptr %t194)
|
|
call void @fn_perr(ptr %t195)
|
|
br label %ifend29
|
|
ifend29:
|
|
%t196 = load ptr, ptr %t0
|
|
%t197 = getelementptr inbounds %Cmp_Node, ptr %t196, i32 0, i32 0
|
|
%t198 = load i32, ptr %t197
|
|
%t199 = icmp eq i32 %t198, 35
|
|
%t200 = zext i1 %t199 to i32
|
|
%t201 = icmp ne i32 %t200, 0
|
|
br i1 %t201, label %then42, label %ifend44
|
|
then42:
|
|
%t202 = load ptr, ptr %t0
|
|
%t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 4
|
|
%t204 = load ptr, ptr %t203
|
|
%t205 = getelementptr inbounds %Cmp_Node, ptr %t204, i32 0, i32 0
|
|
%t206 = load i32, ptr %t205
|
|
%t207 = icmp eq i32 %t206, 33
|
|
%t208 = zext i1 %t207 to i32
|
|
%t209 = icmp ne i32 %t208, 0
|
|
br i1 %t209, label %then45, label %ifend47
|
|
then45:
|
|
%t210 = load ptr, ptr %t0
|
|
%t211 = getelementptr inbounds %Cmp_Node, ptr %t210, i32 0, i32 4
|
|
%t212 = load ptr, ptr %t211
|
|
%t213 = getelementptr inbounds %Cmp_Node, ptr %t212, i32 0, i32 1
|
|
%t214 = load ptr, ptr %t213
|
|
%t215 = call i32 @fn_str_eq(ptr %t214, ptr @.str1508)
|
|
%t216 = icmp ne i32 %t215, 0
|
|
br i1 %t216, label %then48, label %ifend50
|
|
then48:
|
|
%t217 = load ptr, ptr %t0
|
|
%t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 1
|
|
%t219 = load ptr, ptr %t218
|
|
%t220 = call i32 @fn_color_lookup(ptr %t219)
|
|
store i32 %t220, ptr %t221
|
|
%t222 = load i32, ptr %t221
|
|
%t223 = icmp slt i32 %t222, 0
|
|
%t224 = zext i1 %t223 to i32
|
|
%t225 = icmp ne i32 %t224, 0
|
|
br i1 %t225, label %then51, label %ifend53
|
|
then51:
|
|
%t226 = load ptr, ptr %t0
|
|
%t227 = getelementptr inbounds %Cmp_Node, ptr %t226, i32 0, i32 1
|
|
%t228 = load ptr, ptr %t227
|
|
%t229 = call ptr @fn_str_concat(ptr @.str1509, ptr %t228)
|
|
call void @fn_perr(ptr %t229)
|
|
br label %ifend53
|
|
ifend53:
|
|
%t230 = load i32, ptr %t221
|
|
%t231 = call ptr @fn_itoa(i32 %t230)
|
|
%t232 = call ptr @fn_val(ptr %t231, ptr @.str1510)
|
|
store ptr %t232, ptr %retval
|
|
br label %ret
|
|
ifend50:
|
|
%t233 = load ptr, ptr %t0
|
|
%t234 = getelementptr inbounds %Cmp_Node, ptr %t233, i32 0, i32 4
|
|
%t235 = load ptr, ptr %t234
|
|
%t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 1
|
|
%t237 = load ptr, ptr %t236
|
|
%t238 = load ptr, ptr %t0
|
|
%t239 = getelementptr inbounds %Cmp_Node, ptr %t238, i32 0, i32 1
|
|
%t240 = load ptr, ptr %t239
|
|
%t241 = call i32 @fn_enum_ordinal(ptr %t237, ptr %t240)
|
|
store i32 %t241, ptr %t242
|
|
%t243 = load i32, ptr %t242
|
|
%t244 = icmp sge i32 %t243, 0
|
|
%t245 = zext i1 %t244 to i32
|
|
%t246 = icmp ne i32 %t245, 0
|
|
br i1 %t246, label %then54, label %ifend56
|
|
then54:
|
|
%t247 = load i32, ptr %t242
|
|
%t248 = call ptr @fn_itoa(i32 %t247)
|
|
%t249 = call ptr @fn_val(ptr %t248, ptr @.str1511)
|
|
store ptr %t249, ptr %retval
|
|
br label %ret
|
|
ifend56:
|
|
br label %ifend47
|
|
ifend47:
|
|
%t250 = load ptr, ptr %t0
|
|
%t251 = getelementptr inbounds %Cmp_Node, ptr %t250, i32 0, i32 4
|
|
%t252 = load ptr, ptr %t251
|
|
%t253 = call ptr @fn_static_type(ptr %t252)
|
|
store ptr %t253, ptr %t254
|
|
%t255 = load ptr, ptr %t254
|
|
%t256 = icmp ne ptr %t255, null
|
|
%t257 = zext i1 %t256 to i32
|
|
%t258 = icmp ne i32 %t257, 0
|
|
br i1 %t258, label %then57, label %ifend59
|
|
then57:
|
|
%t259 = load ptr, ptr %t254
|
|
%t260 = load ptr, ptr %t0
|
|
%t261 = getelementptr inbounds %Cmp_Node, ptr %t260, i32 0, i32 1
|
|
%t262 = load ptr, ptr %t261
|
|
%t263 = call ptr @fn_computed_expr(ptr %t259, ptr %t262)
|
|
store ptr %t263, ptr %t264
|
|
%t265 = load ptr, ptr %t264
|
|
%t266 = icmp ne ptr %t265, null
|
|
%t267 = zext i1 %t266 to i32
|
|
%t268 = icmp ne i32 %t267, 0
|
|
br i1 %t268, label %then60, label %ifend62
|
|
then60:
|
|
%t269 = load ptr, ptr %t264
|
|
%t270 = load ptr, ptr %t0
|
|
%t271 = getelementptr inbounds %Cmp_Node, ptr %t270, i32 0, i32 4
|
|
%t272 = load ptr, ptr %t271
|
|
%t273 = call ptr @fn_qualify_fields(ptr %t269, ptr %t272)
|
|
%t274 = call ptr @fn_emit_expr(ptr %t273)
|
|
store ptr %t274, ptr %retval
|
|
br label %ret
|
|
ifend62:
|
|
br label %ifend59
|
|
ifend59:
|
|
%t275 = load ptr, ptr %t0
|
|
%t276 = call ptr @fn_emit_member_addr(ptr %t275)
|
|
store ptr %t276, ptr %t277
|
|
%t278 = load ptr, ptr %t277
|
|
%t279 = load ptr, ptr @g_g_addr_ty
|
|
%t280 = call ptr @fn_emit_load_at(ptr %t278, ptr %t279)
|
|
store ptr %t280, ptr %retval
|
|
br label %ret
|
|
ifend44:
|
|
%t281 = load ptr, ptr %t0
|
|
%t282 = getelementptr inbounds %Cmp_Node, ptr %t281, i32 0, i32 0
|
|
%t283 = load i32, ptr %t282
|
|
%t284 = icmp eq i32 %t283, 36
|
|
%t285 = zext i1 %t284 to i32
|
|
%t286 = icmp ne i32 %t285, 0
|
|
br i1 %t286, label %then63, label %ifend65
|
|
then63:
|
|
%t287 = load ptr, ptr %t0
|
|
%t288 = call ptr @fn_emit_index_addr(ptr %t287)
|
|
store ptr %t288, ptr %t289
|
|
%t290 = load ptr, ptr @g_g_addr_ty
|
|
%t291 = call i32 @fn_str_eq(ptr %t290, ptr @.str1512)
|
|
%t292 = icmp ne i32 %t291, 0
|
|
br i1 %t292, label %then66, label %ifend68
|
|
then66:
|
|
%t293 = load ptr, ptr %t289
|
|
%t294 = call ptr @fn_str_concat(ptr @.str1513, ptr %t293)
|
|
%t295 = call ptr @fn_emit_bind(ptr %t294)
|
|
store ptr %t295, ptr %t296
|
|
%t297 = load ptr, ptr %t296
|
|
%t298 = call ptr @fn_str_concat(ptr @.str1514, ptr %t297)
|
|
%t299 = call ptr @fn_str_concat(ptr %t298, ptr @.str1515)
|
|
%t300 = call ptr @fn_emit_bind(ptr %t299)
|
|
%t301 = call ptr @fn_val(ptr %t300, ptr @.str1516)
|
|
store ptr %t301, ptr %retval
|
|
br label %ret
|
|
ifend68:
|
|
%t302 = load ptr, ptr %t289
|
|
%t303 = load ptr, ptr @g_g_addr_ty
|
|
%t304 = call ptr @fn_emit_load_at(ptr %t302, ptr %t303)
|
|
store ptr %t304, ptr %retval
|
|
br label %ret
|
|
ifend65:
|
|
%t305 = load ptr, ptr %t0
|
|
%t306 = getelementptr inbounds %Cmp_Node, ptr %t305, i32 0, i32 0
|
|
%t307 = load i32, ptr %t306
|
|
%t308 = icmp eq i32 %t307, 49
|
|
%t309 = zext i1 %t308 to i32
|
|
%t310 = icmp ne i32 %t309, 0
|
|
br i1 %t310, label %then69, label %ifend71
|
|
then69:
|
|
%t311 = load ptr, ptr %t0
|
|
%t312 = call ptr @fn_emit_emit(ptr %t311)
|
|
store ptr %t312, ptr %retval
|
|
br label %ret
|
|
ifend71:
|
|
%t313 = load ptr, ptr %t0
|
|
%t314 = getelementptr inbounds %Cmp_Node, ptr %t313, i32 0, i32 0
|
|
%t315 = load i32, ptr %t314
|
|
%t316 = icmp eq i32 %t315, 34
|
|
%t317 = zext i1 %t316 to i32
|
|
%t318 = icmp ne i32 %t317, 0
|
|
br i1 %t318, label %then72, label %ifend74
|
|
then72:
|
|
%t319 = load ptr, ptr %t0
|
|
%t320 = call ptr @fn_emit_call(ptr %t319)
|
|
store ptr %t320, ptr %retval
|
|
br label %ret
|
|
ifend74:
|
|
%t321 = load ptr, ptr %t0
|
|
%t322 = getelementptr inbounds %Cmp_Node, ptr %t321, i32 0, i32 0
|
|
%t323 = load i32, ptr %t322
|
|
%t324 = icmp eq i32 %t323, 37
|
|
%t325 = zext i1 %t324 to i32
|
|
%t326 = icmp ne i32 %t325, 0
|
|
br i1 %t326, label %then75, label %ifend77
|
|
then75:
|
|
%t327 = load ptr, ptr %t0
|
|
%t328 = call ptr @fn_emit_bin(ptr %t327)
|
|
store ptr %t328, ptr %retval
|
|
br label %ret
|
|
ifend77:
|
|
%t329 = load ptr, ptr %t0
|
|
%t330 = getelementptr inbounds %Cmp_Node, ptr %t329, i32 0, i32 0
|
|
%t331 = load i32, ptr %t330
|
|
%t332 = icmp eq i32 %t331, 38
|
|
%t333 = zext i1 %t332 to i32
|
|
%t334 = icmp ne i32 %t333, 0
|
|
br i1 %t334, label %then78, label %ifend80
|
|
then78:
|
|
%t335 = load ptr, ptr %t0
|
|
%t336 = getelementptr inbounds %Cmp_Node, ptr %t335, i32 0, i32 4
|
|
%t337 = load ptr, ptr %t336
|
|
%t338 = call ptr @fn_emit_expr(ptr %t337)
|
|
store ptr %t338, ptr %t339
|
|
%t340 = load ptr, ptr %t0
|
|
%t341 = getelementptr inbounds %Cmp_Node, ptr %t340, i32 0, i32 1
|
|
%t342 = load ptr, ptr %t341
|
|
%t343 = call i32 @fn_str_eq(ptr %t342, ptr @.str1517)
|
|
%t344 = icmp ne i32 %t343, 0
|
|
br i1 %t344, label %then81, label %ifend83
|
|
then81:
|
|
%t345 = load ptr, ptr %t339
|
|
%t346 = getelementptr inbounds %Cmp_Val, ptr %t345, i32 0, i32 0
|
|
%t347 = load ptr, ptr %t346
|
|
%t348 = call ptr @fn_str_concat(ptr @.str1518, ptr %t347)
|
|
%t349 = call ptr @fn_emit_bind(ptr %t348)
|
|
%t350 = call ptr @fn_val(ptr %t349, ptr @.str1519)
|
|
store ptr %t350, ptr %retval
|
|
br label %ret
|
|
ifend83:
|
|
%t351 = load ptr, ptr %t0
|
|
%t352 = getelementptr inbounds %Cmp_Node, ptr %t351, i32 0, i32 1
|
|
%t353 = load ptr, ptr %t352
|
|
%t354 = call i32 @fn_str_eq(ptr %t353, ptr @.str1520)
|
|
%t355 = icmp ne i32 %t354, 0
|
|
br i1 %t355, label %then84, label %ifend86
|
|
then84:
|
|
%t356 = load ptr, ptr %t339
|
|
%t357 = getelementptr inbounds %Cmp_Val, ptr %t356, i32 0, i32 0
|
|
%t358 = load ptr, ptr %t357
|
|
%t359 = call ptr @fn_str_concat(ptr @.str1521, ptr %t358)
|
|
%t360 = call ptr @fn_str_concat(ptr %t359, ptr @.str1522)
|
|
%t361 = call ptr @fn_emit_bind(ptr %t360)
|
|
%t362 = call ptr @fn_val(ptr %t361, ptr @.str1523)
|
|
store ptr %t362, ptr %retval
|
|
br label %ret
|
|
ifend86:
|
|
%t363 = load ptr, ptr %t339
|
|
%t364 = getelementptr inbounds %Cmp_Val, ptr %t363, i32 0, i32 0
|
|
%t365 = load ptr, ptr %t364
|
|
%t366 = call ptr @fn_str_concat(ptr @.str1524, ptr %t365)
|
|
%t367 = call ptr @fn_str_concat(ptr %t366, ptr @.str1525)
|
|
%t368 = call ptr @fn_emit_bind(ptr %t367)
|
|
store ptr %t368, ptr %t369
|
|
%t370 = load ptr, ptr %t369
|
|
%t371 = call ptr @fn_str_concat(ptr @.str1526, ptr %t370)
|
|
%t372 = call ptr @fn_str_concat(ptr %t371, ptr @.str1527)
|
|
%t373 = call ptr @fn_emit_bind(ptr %t372)
|
|
%t374 = call ptr @fn_val(ptr %t373, ptr @.str1528)
|
|
store ptr %t374, ptr %retval
|
|
br label %ret
|
|
ifend80:
|
|
call void @fn_perr(ptr @.str1529)
|
|
%t375 = call ptr @fn_val(ptr @.str1530, ptr @.str1531)
|
|
store ptr %t375, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t376 = load ptr, ptr %retval
|
|
ret ptr %t376
|
|
}
|
|
|
|
define void @fn_emit_block(ptr %arg_b) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_b, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1
|
|
%t7 = load i32, ptr %t6
|
|
%t8 = icmp slt i32 %t2, %t7
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t11 = load i32, ptr @g_g_term
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then3, label %ifend5
|
|
then3:
|
|
br label %ret
|
|
ifend5:
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 7
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = load i32, ptr %t1
|
|
%t19 = getelementptr inbounds ptr, ptr %t17, i32 %t18
|
|
%t20 = load ptr, ptr %t19
|
|
call void @fn_emit_stmt(ptr %t20)
|
|
%t21 = load i32, ptr %t1
|
|
%t22 = add i32 %t21, 1
|
|
store i32 %t22, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_store_at(ptr %arg_lt, ptr %arg_v, ptr %arg_addr) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
store ptr %arg_lt, ptr %t0
|
|
store ptr %arg_v, ptr %t1
|
|
store ptr %arg_addr, ptr %t2
|
|
call void @fn_emit(ptr @.str1532)
|
|
%t3 = load ptr, ptr %t0
|
|
call void @fn_emit(ptr %t3)
|
|
call void @fn_emit(ptr @.str1533)
|
|
%t4 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t4)
|
|
call void @fn_emit(ptr @.str1534)
|
|
%t5 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t5)
|
|
call void @fn_emit(ptr @.str1535)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_assign(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t17 = alloca i32
|
|
%t57 = alloca ptr
|
|
%t93 = alloca ptr
|
|
%t98 = alloca ptr
|
|
%t102 = alloca ptr
|
|
%t116 = alloca ptr
|
|
%t117 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
store ptr %t3, ptr %t4
|
|
store ptr @.str1536, ptr %t5
|
|
store ptr @.str1537, ptr %t6
|
|
%t7 = load ptr, ptr %t4
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0
|
|
%t9 = load i32, ptr %t8
|
|
%t10 = icmp eq i32 %t9, 33
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then0, label %else1
|
|
then0:
|
|
%t13 = load ptr, ptr %t4
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 1
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = call i32 @fn_loc_find(ptr %t15)
|
|
store i32 %t16, ptr %t17
|
|
%t18 = load i32, ptr %t17
|
|
%t19 = icmp sge i32 %t18, 0
|
|
%t20 = zext i1 %t19 to i32
|
|
%t21 = icmp ne i32 %t20, 0
|
|
br i1 %t21, label %then3, label %else4
|
|
then3:
|
|
%t22 = load ptr, ptr @g_loc_mut
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = load i32, ptr %t17
|
|
%t26 = getelementptr inbounds i32, ptr %t24, i32 %t25
|
|
%t27 = load i32, ptr %t26
|
|
%t28 = icmp eq i32 %t27, 0
|
|
%t29 = zext i1 %t28 to i32
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then6, label %ifend8
|
|
then6:
|
|
%t31 = load ptr, ptr %t4
|
|
%t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1
|
|
%t33 = load ptr, ptr %t32
|
|
%t34 = call ptr @fn_str_concat(ptr @.str1538, ptr %t33)
|
|
%t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str1539)
|
|
%t36 = load ptr, ptr %t0
|
|
%t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 8
|
|
%t38 = load i32, ptr %t37
|
|
%t39 = call ptr @fn_itoa(i32 %t38)
|
|
%t40 = call ptr @fn_str_concat(ptr %t35, ptr %t39)
|
|
call void @fn_perr(ptr %t40)
|
|
br label %ifend8
|
|
ifend8:
|
|
%t41 = load ptr, ptr @g_loc_reg
|
|
%t42 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = load i32, ptr %t17
|
|
%t45 = getelementptr inbounds ptr, ptr %t43, i32 %t44
|
|
%t46 = load ptr, ptr %t45
|
|
store ptr %t46, ptr %t5
|
|
%t47 = load ptr, ptr @g_loc_ty
|
|
%t48 = getelementptr inbounds %LSlice, ptr %t47, i32 0, i32 0
|
|
%t49 = load ptr, ptr %t48
|
|
%t50 = load i32, ptr %t17
|
|
%t51 = getelementptr inbounds ptr, ptr %t49, i32 %t50
|
|
%t52 = load ptr, ptr %t51
|
|
store ptr %t52, ptr %t6
|
|
br label %ifend5
|
|
else4:
|
|
%t53 = load ptr, ptr %t4
|
|
%t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 1
|
|
%t55 = load ptr, ptr %t54
|
|
%t56 = call ptr @fn_find_global(ptr %t55)
|
|
store ptr %t56, ptr %t57
|
|
%t58 = load ptr, ptr %t57
|
|
%t59 = icmp eq ptr %t58, null
|
|
%t60 = zext i1 %t59 to i32
|
|
%t61 = icmp ne i32 %t60, 0
|
|
br i1 %t61, label %then9, label %ifend11
|
|
then9:
|
|
%t62 = load ptr, ptr %t4
|
|
%t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1
|
|
%t64 = load ptr, ptr %t63
|
|
%t65 = call ptr @fn_str_concat(ptr @.str1540, ptr %t64)
|
|
call void @fn_perr(ptr %t65)
|
|
br label %ifend11
|
|
ifend11:
|
|
%t66 = load ptr, ptr %t4
|
|
%t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 1
|
|
%t68 = load ptr, ptr %t67
|
|
%t69 = call ptr @fn_str_concat(ptr @.str1541, ptr %t68)
|
|
store ptr %t69, ptr %t5
|
|
%t70 = load ptr, ptr %t57
|
|
%t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 3
|
|
%t72 = load ptr, ptr %t71
|
|
store ptr %t72, ptr %t6
|
|
br label %ifend5
|
|
ifend5:
|
|
br label %ifend2
|
|
else1:
|
|
%t73 = load ptr, ptr %t4
|
|
%t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 0
|
|
%t75 = load i32, ptr %t74
|
|
%t76 = icmp eq i32 %t75, 35
|
|
%t77 = zext i1 %t76 to i32
|
|
%t78 = icmp ne i32 %t77, 0
|
|
br i1 %t78, label %then12, label %else13
|
|
then12:
|
|
%t79 = load ptr, ptr %t4
|
|
%t80 = call ptr @fn_emit_member_addr(ptr %t79)
|
|
store ptr %t80, ptr %t5
|
|
%t81 = load ptr, ptr @g_g_addr_ty
|
|
store ptr %t81, ptr %t6
|
|
br label %ifend14
|
|
else13:
|
|
%t82 = load ptr, ptr %t4
|
|
%t83 = getelementptr inbounds %Cmp_Node, ptr %t82, i32 0, i32 0
|
|
%t84 = load i32, ptr %t83
|
|
%t85 = icmp eq i32 %t84, 36
|
|
%t86 = zext i1 %t85 to i32
|
|
%t87 = icmp ne i32 %t86, 0
|
|
br i1 %t87, label %then15, label %else16
|
|
then15:
|
|
%t88 = load ptr, ptr %t4
|
|
%t89 = call ptr @fn_emit_index_addr(ptr %t88)
|
|
store ptr %t89, ptr %t5
|
|
%t90 = load ptr, ptr @g_g_addr_ty
|
|
store ptr %t90, ptr %t6
|
|
br label %ifend17
|
|
else16:
|
|
call void @fn_perr(ptr @.str1542)
|
|
br label %ifend17
|
|
ifend17:
|
|
br label %ifend14
|
|
ifend14:
|
|
br label %ifend2
|
|
ifend2:
|
|
%t91 = load ptr, ptr %t6
|
|
%t92 = call ptr @fn_llty(ptr %t91)
|
|
store ptr %t92, ptr %t93
|
|
%t94 = load ptr, ptr %t0
|
|
%t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 5
|
|
%t96 = load ptr, ptr %t95
|
|
%t97 = call ptr @fn_emit_expr(ptr %t96)
|
|
store ptr %t97, ptr %t98
|
|
%t99 = load ptr, ptr %t98
|
|
%t100 = getelementptr inbounds %Cmp_Val, ptr %t99, i32 0, i32 0
|
|
%t101 = load ptr, ptr %t100
|
|
store ptr %t101, ptr %t102
|
|
%t103 = load ptr, ptr %t0
|
|
%t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 1
|
|
%t105 = load ptr, ptr %t104
|
|
%t106 = call i32 @fn_str_eq(ptr %t105, ptr @.str1543)
|
|
%t107 = icmp eq i32 %t106, 0
|
|
%t108 = zext i1 %t107 to i32
|
|
%t109 = icmp ne i32 %t108, 0
|
|
br i1 %t109, label %then18, label %ifend20
|
|
then18:
|
|
%t110 = load ptr, ptr %t93
|
|
%t111 = call ptr @fn_str_concat(ptr @.str1544, ptr %t110)
|
|
%t112 = call ptr @fn_str_concat(ptr %t111, ptr @.str1545)
|
|
%t113 = load ptr, ptr %t5
|
|
%t114 = call ptr @fn_str_concat(ptr %t112, ptr %t113)
|
|
%t115 = call ptr @fn_emit_bind(ptr %t114)
|
|
store ptr %t115, ptr %t116
|
|
store ptr @.str1546, ptr %t117
|
|
%t118 = load ptr, ptr %t0
|
|
%t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 1
|
|
%t120 = load ptr, ptr %t119
|
|
%t121 = call i32 @fn_str_eq(ptr %t120, ptr @.str1547)
|
|
%t122 = icmp ne i32 %t121, 0
|
|
br i1 %t122, label %then21, label %ifend23
|
|
then21:
|
|
store ptr @.str1548, ptr %t117
|
|
br label %ifend23
|
|
ifend23:
|
|
%t123 = load ptr, ptr %t0
|
|
%t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1
|
|
%t125 = load ptr, ptr %t124
|
|
%t126 = call i32 @fn_str_eq(ptr %t125, ptr @.str1549)
|
|
%t127 = icmp ne i32 %t126, 0
|
|
br i1 %t127, label %then24, label %ifend26
|
|
then24:
|
|
store ptr @.str1550, ptr %t117
|
|
br label %ifend26
|
|
ifend26:
|
|
%t128 = load ptr, ptr %t0
|
|
%t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 1
|
|
%t130 = load ptr, ptr %t129
|
|
%t131 = call i32 @fn_str_eq(ptr %t130, ptr @.str1551)
|
|
%t132 = icmp ne i32 %t131, 0
|
|
br i1 %t132, label %then27, label %ifend29
|
|
then27:
|
|
store ptr @.str1552, ptr %t117
|
|
br label %ifend29
|
|
ifend29:
|
|
%t133 = load ptr, ptr %t117
|
|
%t134 = call ptr @fn_str_concat(ptr %t133, ptr @.str1553)
|
|
%t135 = load ptr, ptr %t116
|
|
%t136 = call ptr @fn_str_concat(ptr %t134, ptr %t135)
|
|
%t137 = call ptr @fn_str_concat(ptr %t136, ptr @.str1554)
|
|
%t138 = load ptr, ptr %t102
|
|
%t139 = call ptr @fn_str_concat(ptr %t137, ptr %t138)
|
|
%t140 = call ptr @fn_emit_bind(ptr %t139)
|
|
store ptr %t140, ptr %t102
|
|
br label %ifend20
|
|
ifend20:
|
|
%t141 = load ptr, ptr %t93
|
|
%t142 = call i32 @fn_str_eq(ptr %t141, ptr @.str1555)
|
|
%t143 = icmp ne i32 %t142, 0
|
|
br i1 %t143, label %then30, label %ifend32
|
|
then30:
|
|
%t144 = load ptr, ptr %t102
|
|
%t145 = call ptr @fn_str_concat(ptr @.str1556, ptr %t144)
|
|
%t146 = call ptr @fn_str_concat(ptr %t145, ptr @.str1557)
|
|
%t147 = call ptr @fn_emit_bind(ptr %t146)
|
|
store ptr %t147, ptr %t102
|
|
br label %ifend32
|
|
ifend32:
|
|
%t148 = load ptr, ptr %t93
|
|
%t149 = load ptr, ptr %t102
|
|
%t150 = load ptr, ptr %t5
|
|
call void @fn_store_at(ptr %t148, ptr %t149, ptr %t150)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_if(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t12 = alloca ptr
|
|
%t18 = alloca i32
|
|
%t20 = alloca ptr
|
|
%t22 = alloca ptr
|
|
%t24 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_emit_expr(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = call ptr @fn_str_concat(ptr @.str1558, ptr %t8)
|
|
%t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str1559)
|
|
%t11 = call ptr @fn_emit_bind(ptr %t10)
|
|
store ptr %t11, ptr %t12
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 6
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = icmp ne ptr %t15, null
|
|
%t17 = zext i1 %t16 to i32
|
|
store i32 %t17, ptr %t18
|
|
%t19 = call ptr @fn_lbl(ptr @.str1560)
|
|
store ptr %t19, ptr %t20
|
|
%t21 = call ptr @fn_lbl(ptr @.str1561)
|
|
store ptr %t21, ptr %t22
|
|
%t23 = call ptr @fn_lbl(ptr @.str1562)
|
|
store ptr %t23, ptr %t24
|
|
%t25 = load i32, ptr %t18
|
|
%t26 = icmp ne i32 %t25, 0
|
|
br i1 %t26, label %then0, label %else1
|
|
then0:
|
|
call void @fn_emit(ptr @.str1563)
|
|
%t27 = load ptr, ptr %t12
|
|
call void @fn_emit(ptr %t27)
|
|
call void @fn_emit(ptr @.str1564)
|
|
%t28 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t28)
|
|
call void @fn_emit(ptr @.str1565)
|
|
%t29 = load ptr, ptr %t22
|
|
call void @fn_emit(ptr %t29)
|
|
call void @fn_emit(ptr @.str1566)
|
|
br label %ifend2
|
|
else1:
|
|
call void @fn_emit(ptr @.str1567)
|
|
%t30 = load ptr, ptr %t12
|
|
call void @fn_emit(ptr %t30)
|
|
call void @fn_emit(ptr @.str1568)
|
|
%t31 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t31)
|
|
call void @fn_emit(ptr @.str1569)
|
|
%t32 = load ptr, ptr %t24
|
|
call void @fn_emit(ptr %t32)
|
|
call void @fn_emit(ptr @.str1570)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t33 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t33)
|
|
call void @fn_emit(ptr @.str1571)
|
|
store i32 0, ptr @g_g_term
|
|
%t34 = load ptr, ptr %t0
|
|
%t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 5
|
|
%t36 = load ptr, ptr %t35
|
|
call void @fn_emit_block(ptr %t36)
|
|
%t37 = load i32, ptr @g_g_term
|
|
%t38 = icmp eq i32 %t37, 0
|
|
%t39 = zext i1 %t38 to i32
|
|
%t40 = icmp ne i32 %t39, 0
|
|
br i1 %t40, label %then3, label %ifend5
|
|
then3:
|
|
call void @fn_emit(ptr @.str1572)
|
|
%t41 = load ptr, ptr %t24
|
|
call void @fn_emit(ptr %t41)
|
|
call void @fn_emit(ptr @.str1573)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t42 = load i32, ptr %t18
|
|
%t43 = icmp ne i32 %t42, 0
|
|
br i1 %t43, label %then6, label %ifend8
|
|
then6:
|
|
%t44 = load ptr, ptr %t22
|
|
call void @fn_emit(ptr %t44)
|
|
call void @fn_emit(ptr @.str1574)
|
|
store i32 0, ptr @g_g_term
|
|
%t45 = load ptr, ptr %t0
|
|
%t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 6
|
|
%t47 = load ptr, ptr %t46
|
|
%t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 0
|
|
%t49 = load i32, ptr %t48
|
|
%t50 = icmp eq i32 %t49, 12
|
|
%t51 = zext i1 %t50 to i32
|
|
%t52 = icmp ne i32 %t51, 0
|
|
br i1 %t52, label %then9, label %else10
|
|
then9:
|
|
%t53 = load ptr, ptr %t0
|
|
%t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 6
|
|
%t55 = load ptr, ptr %t54
|
|
call void @fn_emit_stmt(ptr %t55)
|
|
br label %ifend11
|
|
else10:
|
|
%t56 = load ptr, ptr %t0
|
|
%t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 6
|
|
%t58 = load ptr, ptr %t57
|
|
call void @fn_emit_block(ptr %t58)
|
|
br label %ifend11
|
|
ifend11:
|
|
%t59 = load i32, ptr @g_g_term
|
|
%t60 = icmp eq i32 %t59, 0
|
|
%t61 = zext i1 %t60 to i32
|
|
%t62 = icmp ne i32 %t61, 0
|
|
br i1 %t62, label %then12, label %ifend14
|
|
then12:
|
|
call void @fn_emit(ptr @.str1575)
|
|
%t63 = load ptr, ptr %t24
|
|
call void @fn_emit(ptr %t63)
|
|
call void @fn_emit(ptr @.str1576)
|
|
br label %ifend14
|
|
ifend14:
|
|
br label %ifend8
|
|
ifend8:
|
|
%t64 = load ptr, ptr %t24
|
|
call void @fn_emit(ptr %t64)
|
|
call void @fn_emit(ptr @.str1577)
|
|
store i32 0, ptr @g_g_term
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_while(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t13 = alloca ptr
|
|
%t20 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = call ptr @fn_lbl(ptr @.str1578)
|
|
store ptr %t1, ptr %t2
|
|
%t3 = call ptr @fn_lbl(ptr @.str1579)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = call ptr @fn_lbl(ptr @.str1580)
|
|
store ptr %t5, ptr %t6
|
|
call void @fn_emit(ptr @.str1581)
|
|
%t7 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t7)
|
|
call void @fn_emit(ptr @.str1582)
|
|
%t8 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t8)
|
|
call void @fn_emit(ptr @.str1583)
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = call ptr @fn_emit_expr(ptr %t11)
|
|
store ptr %t12, ptr %t13
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = call ptr @fn_str_concat(ptr @.str1584, ptr %t16)
|
|
%t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str1585)
|
|
%t19 = call ptr @fn_emit_bind(ptr %t18)
|
|
store ptr %t19, ptr %t20
|
|
call void @fn_emit(ptr @.str1586)
|
|
%t21 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t21)
|
|
call void @fn_emit(ptr @.str1587)
|
|
%t22 = load ptr, ptr %t4
|
|
call void @fn_emit(ptr %t22)
|
|
call void @fn_emit(ptr @.str1588)
|
|
%t23 = load ptr, ptr %t6
|
|
call void @fn_emit(ptr %t23)
|
|
call void @fn_emit(ptr @.str1589)
|
|
%t24 = load ptr, ptr %t4
|
|
call void @fn_emit(ptr %t24)
|
|
call void @fn_emit(ptr @.str1590)
|
|
store i32 0, ptr @g_g_term
|
|
%t25 = load ptr, ptr %t2
|
|
%t26 = load ptr, ptr %t6
|
|
call void @fn_loop_push(ptr %t25, ptr %t26)
|
|
%t27 = load ptr, ptr %t0
|
|
%t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 5
|
|
%t29 = load ptr, ptr %t28
|
|
call void @fn_emit_block(ptr %t29)
|
|
call void @fn_loop_pop()
|
|
%t30 = load i32, ptr @g_g_term
|
|
%t31 = icmp eq i32 %t30, 0
|
|
%t32 = zext i1 %t31 to i32
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_emit(ptr @.str1591)
|
|
%t34 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str1592)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t35 = load ptr, ptr %t6
|
|
call void @fn_emit(ptr %t35)
|
|
call void @fn_emit(ptr @.str1593)
|
|
store i32 0, ptr @g_g_term
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_for(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t17 = alloca ptr
|
|
%t19 = alloca ptr
|
|
%t21 = alloca ptr
|
|
%t23 = alloca ptr
|
|
%t29 = alloca ptr
|
|
%t34 = alloca ptr
|
|
%t43 = alloca ptr
|
|
%t62 = alloca ptr
|
|
%t67 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = call ptr @fn_emit_alloca(ptr @.str1594)
|
|
store ptr %t1, ptr %t2
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = call ptr @fn_emit_expr(ptr %t5)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds %Cmp_Val, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load ptr, ptr %t2
|
|
call void @fn_store_at(ptr @.str1595, ptr %t10, ptr %t11)
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = load ptr, ptr %t2
|
|
call void @fn_loc_push(ptr %t14, ptr %t15, ptr @.str1596)
|
|
%t16 = call ptr @fn_lbl(ptr @.str1597)
|
|
store ptr %t16, ptr %t17
|
|
%t18 = call ptr @fn_lbl(ptr @.str1598)
|
|
store ptr %t18, ptr %t19
|
|
%t20 = call ptr @fn_lbl(ptr @.str1599)
|
|
store ptr %t20, ptr %t21
|
|
%t22 = call ptr @fn_lbl(ptr @.str1600)
|
|
store ptr %t22, ptr %t23
|
|
call void @fn_emit(ptr @.str1601)
|
|
%t24 = load ptr, ptr %t17
|
|
call void @fn_emit(ptr %t24)
|
|
call void @fn_emit(ptr @.str1602)
|
|
%t25 = load ptr, ptr %t17
|
|
call void @fn_emit(ptr %t25)
|
|
call void @fn_emit(ptr @.str1603)
|
|
%t26 = load ptr, ptr %t2
|
|
%t27 = call ptr @fn_str_concat(ptr @.str1604, ptr %t26)
|
|
%t28 = call ptr @fn_emit_bind(ptr %t27)
|
|
store ptr %t28, ptr %t29
|
|
%t30 = load ptr, ptr %t0
|
|
%t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 5
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = call ptr @fn_emit_expr(ptr %t32)
|
|
store ptr %t33, ptr %t34
|
|
%t35 = load ptr, ptr %t29
|
|
%t36 = call ptr @fn_str_concat(ptr @.str1605, ptr %t35)
|
|
%t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str1606)
|
|
%t38 = load ptr, ptr %t34
|
|
%t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = call ptr @fn_str_concat(ptr %t37, ptr %t40)
|
|
%t42 = call ptr @fn_emit_bind(ptr %t41)
|
|
store ptr %t42, ptr %t43
|
|
call void @fn_emit(ptr @.str1607)
|
|
%t44 = load ptr, ptr %t43
|
|
call void @fn_emit(ptr %t44)
|
|
call void @fn_emit(ptr @.str1608)
|
|
%t45 = load ptr, ptr %t19
|
|
call void @fn_emit(ptr %t45)
|
|
call void @fn_emit(ptr @.str1609)
|
|
%t46 = load ptr, ptr %t23
|
|
call void @fn_emit(ptr %t46)
|
|
call void @fn_emit(ptr @.str1610)
|
|
%t47 = load ptr, ptr %t19
|
|
call void @fn_emit(ptr %t47)
|
|
call void @fn_emit(ptr @.str1611)
|
|
store i32 0, ptr @g_g_term
|
|
%t48 = load ptr, ptr %t21
|
|
%t49 = load ptr, ptr %t23
|
|
call void @fn_loop_push(ptr %t48, ptr %t49)
|
|
%t50 = load ptr, ptr %t0
|
|
%t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 6
|
|
%t52 = load ptr, ptr %t51
|
|
call void @fn_emit_block(ptr %t52)
|
|
call void @fn_loop_pop()
|
|
%t53 = load i32, ptr @g_g_term
|
|
%t54 = icmp eq i32 %t53, 0
|
|
%t55 = zext i1 %t54 to i32
|
|
%t56 = icmp ne i32 %t55, 0
|
|
br i1 %t56, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_emit(ptr @.str1612)
|
|
%t57 = load ptr, ptr %t21
|
|
call void @fn_emit(ptr %t57)
|
|
call void @fn_emit(ptr @.str1613)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t58 = load ptr, ptr %t21
|
|
call void @fn_emit(ptr %t58)
|
|
call void @fn_emit(ptr @.str1614)
|
|
%t59 = load ptr, ptr %t2
|
|
%t60 = call ptr @fn_str_concat(ptr @.str1615, ptr %t59)
|
|
%t61 = call ptr @fn_emit_bind(ptr %t60)
|
|
store ptr %t61, ptr %t62
|
|
%t63 = load ptr, ptr %t62
|
|
%t64 = call ptr @fn_str_concat(ptr @.str1616, ptr %t63)
|
|
%t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str1617)
|
|
%t66 = call ptr @fn_emit_bind(ptr %t65)
|
|
store ptr %t66, ptr %t67
|
|
%t68 = load ptr, ptr %t67
|
|
%t69 = load ptr, ptr %t2
|
|
call void @fn_store_at(ptr @.str1618, ptr %t68, ptr %t69)
|
|
call void @fn_emit(ptr @.str1619)
|
|
%t70 = load ptr, ptr %t17
|
|
call void @fn_emit(ptr %t70)
|
|
call void @fn_emit(ptr @.str1620)
|
|
%t71 = load ptr, ptr %t23
|
|
call void @fn_emit(ptr %t71)
|
|
call void @fn_emit(ptr @.str1621)
|
|
store i32 0, ptr @g_g_term
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_return(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t11 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = icmp ne ptr %t3, null
|
|
%t5 = zext i1 %t4 to i32
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then0, label %ifend2
|
|
then0:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 4
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = call ptr @fn_emit_expr(ptr %t9)
|
|
store ptr %t10, ptr %t11
|
|
%t12 = load ptr, ptr @g_ret_ty
|
|
%t13 = call ptr @fn_llty(ptr %t12)
|
|
%t14 = load ptr, ptr %t11
|
|
%t15 = getelementptr inbounds %Cmp_Val, ptr %t14, i32 0, i32 0
|
|
%t16 = load ptr, ptr %t15
|
|
call void @fn_store_at(ptr %t13, ptr %t16, ptr @.str1622)
|
|
br label %ifend2
|
|
ifend2:
|
|
call void @fn_emit(ptr @.str1623)
|
|
store i32 1, ptr @g_g_term
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_arm_is_default(ptr %arg_arm) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t11 = alloca i32
|
|
store ptr %arg_arm, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1
|
|
%t7 = load i32, ptr %t6
|
|
%t8 = icmp slt i32 %t2, %t7
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load i32, ptr %t1
|
|
%t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17
|
|
%t19 = load ptr, ptr %t18
|
|
%t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 0
|
|
%t21 = load i32, ptr %t20
|
|
%t22 = icmp eq i32 %t21, 33
|
|
%t23 = zext i1 %t22 to i32
|
|
%t24 = icmp ne i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
store i32 %t25, ptr %t11
|
|
br i1 %t24, label %sc3, label %scend4
|
|
sc3:
|
|
%t26 = load ptr, ptr %t0
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 7
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = load i32, ptr %t1
|
|
%t32 = getelementptr inbounds ptr, ptr %t30, i32 %t31
|
|
%t33 = load ptr, ptr %t32
|
|
%t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1
|
|
%t35 = load ptr, ptr %t34
|
|
%t36 = call i32 @fn_str_eq(ptr %t35, ptr @.str1624)
|
|
%t37 = icmp ne i32 %t36, 0
|
|
%t38 = zext i1 %t37 to i32
|
|
store i32 %t38, ptr %t11
|
|
br label %scend4
|
|
scend4:
|
|
%t39 = load i32, ptr %t11
|
|
%t40 = icmp ne i32 %t39, 0
|
|
br i1 %t40, label %then5, label %ifend7
|
|
then5:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t41 = load i32, ptr %t1
|
|
%t42 = add i32 %t41, 1
|
|
store i32 %t42, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t43 = load i32, ptr %retval
|
|
ret i32 %t43
|
|
}
|
|
|
|
define void @fn_emit_match(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t8 = alloca ptr
|
|
%t9 = alloca i32
|
|
%t27 = alloca ptr
|
|
%t32 = alloca ptr
|
|
%t33 = alloca i32
|
|
%t34 = alloca i32
|
|
%t53 = alloca ptr
|
|
%t64 = alloca ptr
|
|
%t77 = alloca ptr
|
|
%t79 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_emit_expr(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = call ptr @fn_lbl(ptr @.str1625)
|
|
store ptr %t6, ptr %t7
|
|
store ptr null, ptr %t8
|
|
store i32 0, ptr %t9
|
|
br label %wcond0
|
|
wcond0:
|
|
%t10 = load i32, ptr %t9
|
|
%t11 = load ptr, ptr %t0
|
|
%t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 7
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 1
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = icmp slt i32 %t10, %t15
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t19 = load ptr, ptr %t0
|
|
%t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 7
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = load i32, ptr %t9
|
|
%t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24
|
|
%t26 = load ptr, ptr %t25
|
|
store ptr %t26, ptr %t27
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = call i32 @fn_arm_is_default(ptr %t28)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then3, label %else4
|
|
then3:
|
|
%t31 = load ptr, ptr %t27
|
|
store ptr %t31, ptr %t8
|
|
br label %ifend5
|
|
else4:
|
|
store ptr @.str1626, ptr %t32
|
|
store i32 1, ptr %t33
|
|
store i32 0, ptr %t34
|
|
br label %wcond6
|
|
wcond6:
|
|
%t35 = load i32, ptr %t34
|
|
%t36 = load ptr, ptr %t27
|
|
%t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 1
|
|
%t40 = load i32, ptr %t39
|
|
%t41 = icmp slt i32 %t35, %t40
|
|
%t42 = zext i1 %t41 to i32
|
|
%t43 = icmp ne i32 %t42, 0
|
|
br i1 %t43, label %wbody7, label %wend8
|
|
wbody7:
|
|
%t44 = load ptr, ptr %t27
|
|
%t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 7
|
|
%t46 = load ptr, ptr %t45
|
|
%t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = load i32, ptr %t34
|
|
%t50 = getelementptr inbounds ptr, ptr %t48, i32 %t49
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = call ptr @fn_emit_expr(ptr %t51)
|
|
store ptr %t52, ptr %t53
|
|
%t54 = load ptr, ptr %t5
|
|
%t55 = getelementptr inbounds %Cmp_Val, ptr %t54, i32 0, i32 0
|
|
%t56 = load ptr, ptr %t55
|
|
%t57 = call ptr @fn_str_concat(ptr @.str1627, ptr %t56)
|
|
%t58 = call ptr @fn_str_concat(ptr %t57, ptr @.str1628)
|
|
%t59 = load ptr, ptr %t53
|
|
%t60 = getelementptr inbounds %Cmp_Val, ptr %t59, i32 0, i32 0
|
|
%t61 = load ptr, ptr %t60
|
|
%t62 = call ptr @fn_str_concat(ptr %t58, ptr %t61)
|
|
%t63 = call ptr @fn_emit_bind(ptr %t62)
|
|
store ptr %t63, ptr %t64
|
|
%t65 = load i32, ptr %t33
|
|
%t66 = icmp ne i32 %t65, 0
|
|
br i1 %t66, label %then9, label %else10
|
|
then9:
|
|
%t67 = load ptr, ptr %t64
|
|
store ptr %t67, ptr %t32
|
|
store i32 0, ptr %t33
|
|
br label %ifend11
|
|
else10:
|
|
%t68 = load ptr, ptr %t32
|
|
%t69 = call ptr @fn_str_concat(ptr @.str1629, ptr %t68)
|
|
%t70 = call ptr @fn_str_concat(ptr %t69, ptr @.str1630)
|
|
%t71 = load ptr, ptr %t64
|
|
%t72 = call ptr @fn_str_concat(ptr %t70, ptr %t71)
|
|
%t73 = call ptr @fn_emit_bind(ptr %t72)
|
|
store ptr %t73, ptr %t32
|
|
br label %ifend11
|
|
ifend11:
|
|
%t74 = load i32, ptr %t34
|
|
%t75 = add i32 %t74, 1
|
|
store i32 %t75, ptr %t34
|
|
br label %wcond6
|
|
wend8:
|
|
%t76 = call ptr @fn_lbl(ptr @.str1631)
|
|
store ptr %t76, ptr %t77
|
|
%t78 = call ptr @fn_lbl(ptr @.str1632)
|
|
store ptr %t78, ptr %t79
|
|
call void @fn_emit(ptr @.str1633)
|
|
%t80 = load ptr, ptr %t32
|
|
call void @fn_emit(ptr %t80)
|
|
call void @fn_emit(ptr @.str1634)
|
|
%t81 = load ptr, ptr %t77
|
|
call void @fn_emit(ptr %t81)
|
|
call void @fn_emit(ptr @.str1635)
|
|
%t82 = load ptr, ptr %t79
|
|
call void @fn_emit(ptr %t82)
|
|
call void @fn_emit(ptr @.str1636)
|
|
%t83 = load ptr, ptr %t77
|
|
call void @fn_emit(ptr %t83)
|
|
call void @fn_emit(ptr @.str1637)
|
|
store i32 0, ptr @g_g_term
|
|
%t84 = load ptr, ptr %t27
|
|
%t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 4
|
|
%t86 = load ptr, ptr %t85
|
|
call void @fn_emit_block(ptr %t86)
|
|
%t87 = load i32, ptr @g_g_term
|
|
%t88 = icmp eq i32 %t87, 0
|
|
%t89 = zext i1 %t88 to i32
|
|
%t90 = icmp ne i32 %t89, 0
|
|
br i1 %t90, label %then12, label %ifend14
|
|
then12:
|
|
call void @fn_emit(ptr @.str1638)
|
|
%t91 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t91)
|
|
call void @fn_emit(ptr @.str1639)
|
|
br label %ifend14
|
|
ifend14:
|
|
%t92 = load ptr, ptr %t79
|
|
call void @fn_emit(ptr %t92)
|
|
call void @fn_emit(ptr @.str1640)
|
|
store i32 0, ptr @g_g_term
|
|
br label %ifend5
|
|
ifend5:
|
|
%t93 = load i32, ptr %t9
|
|
%t94 = add i32 %t93, 1
|
|
store i32 %t94, ptr %t9
|
|
br label %wcond0
|
|
wend2:
|
|
%t95 = load ptr, ptr %t8
|
|
%t96 = icmp ne ptr %t95, null
|
|
%t97 = zext i1 %t96 to i32
|
|
%t98 = icmp ne i32 %t97, 0
|
|
br i1 %t98, label %then15, label %ifend17
|
|
then15:
|
|
%t99 = load ptr, ptr %t8
|
|
%t100 = getelementptr inbounds %Cmp_Node, ptr %t99, i32 0, i32 4
|
|
%t101 = load ptr, ptr %t100
|
|
call void @fn_emit_block(ptr %t101)
|
|
br label %ifend17
|
|
ifend17:
|
|
%t102 = load i32, ptr @g_g_term
|
|
%t103 = icmp eq i32 %t102, 0
|
|
%t104 = zext i1 %t103 to i32
|
|
%t105 = icmp ne i32 %t104, 0
|
|
br i1 %t105, label %then18, label %ifend20
|
|
then18:
|
|
call void @fn_emit(ptr @.str1641)
|
|
%t106 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t106)
|
|
call void @fn_emit(ptr @.str1642)
|
|
br label %ifend20
|
|
ifend20:
|
|
%t107 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t107)
|
|
call void @fn_emit(ptr @.str1643)
|
|
store i32 0, ptr @g_g_term
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_emit_emit(ptr %arg_st) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t20 = alloca ptr
|
|
%t27 = alloca ptr
|
|
%t28 = alloca i32
|
|
%t46 = alloca ptr
|
|
%t47 = alloca ptr
|
|
%t48 = alloca i32
|
|
%t95 = alloca ptr
|
|
%t96 = alloca ptr
|
|
%t106 = alloca ptr
|
|
%t120 = alloca ptr
|
|
%t173 = alloca ptr
|
|
%t181 = alloca i32
|
|
%t182 = alloca i32
|
|
%t193 = alloca ptr
|
|
%t225 = alloca ptr
|
|
%t241 = alloca ptr
|
|
%t242 = alloca i32
|
|
%t279 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_find_event(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = icmp eq ptr %t6, null
|
|
%t8 = zext i1 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then0, label %ifend2
|
|
then0:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 1
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = call ptr @fn_str_concat(ptr @.str1644, ptr %t12)
|
|
call void @fn_perr(ptr %t13)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t14 = getelementptr %LSlice, ptr null, i32 1
|
|
%t15 = ptrtoint ptr %t14 to i64
|
|
%t16 = call ptr @malloc(i64 %t15)
|
|
%t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0
|
|
store ptr null, ptr %t17
|
|
%t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1
|
|
store i32 0, ptr %t18
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 2
|
|
store i32 0, ptr %t19
|
|
store ptr %t16, ptr %t20
|
|
%t21 = getelementptr %LSlice, ptr null, i32 1
|
|
%t22 = ptrtoint ptr %t21 to i64
|
|
%t23 = call ptr @malloc(i64 %t22)
|
|
%t24 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0
|
|
store ptr null, ptr %t24
|
|
%t25 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 1
|
|
store i32 0, ptr %t25
|
|
%t26 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 2
|
|
store i32 0, ptr %t26
|
|
store ptr %t23, ptr %t27
|
|
store i32 0, ptr %t28
|
|
br label %wcond3
|
|
wcond3:
|
|
%t29 = load i32, ptr %t28
|
|
%t30 = load ptr, ptr %t5
|
|
%t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1
|
|
%t34 = load i32, ptr %t33
|
|
%t35 = icmp slt i32 %t29, %t34
|
|
%t36 = zext i1 %t35 to i32
|
|
%t37 = icmp ne i32 %t36, 0
|
|
br i1 %t37, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t38 = load ptr, ptr %t5
|
|
%t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 7
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0
|
|
%t42 = load ptr, ptr %t41
|
|
%t43 = load i32, ptr %t28
|
|
%t44 = getelementptr inbounds ptr, ptr %t42, i32 %t43
|
|
%t45 = load ptr, ptr %t44
|
|
store ptr %t45, ptr %t46
|
|
store ptr null, ptr %t47
|
|
store i32 0, ptr %t48
|
|
br label %wcond6
|
|
wcond6:
|
|
%t49 = load i32, ptr %t48
|
|
%t50 = load ptr, ptr %t0
|
|
%t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 4
|
|
%t52 = load ptr, ptr %t51
|
|
%t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 7
|
|
%t54 = load ptr, ptr %t53
|
|
%t55 = getelementptr inbounds %LSlice, ptr %t54, i32 0, i32 1
|
|
%t56 = load i32, ptr %t55
|
|
%t57 = icmp slt i32 %t49, %t56
|
|
%t58 = zext i1 %t57 to i32
|
|
%t59 = icmp ne i32 %t58, 0
|
|
br i1 %t59, label %wbody7, label %wend8
|
|
wbody7:
|
|
%t60 = load ptr, ptr %t0
|
|
%t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 4
|
|
%t62 = load ptr, ptr %t61
|
|
%t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 7
|
|
%t64 = load ptr, ptr %t63
|
|
%t65 = getelementptr inbounds %LSlice, ptr %t64, i32 0, i32 0
|
|
%t66 = load ptr, ptr %t65
|
|
%t67 = load i32, ptr %t48
|
|
%t68 = getelementptr inbounds ptr, ptr %t66, i32 %t67
|
|
%t69 = load ptr, ptr %t68
|
|
%t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 1
|
|
%t71 = load ptr, ptr %t70
|
|
%t72 = load ptr, ptr %t46
|
|
%t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1
|
|
%t74 = load ptr, ptr %t73
|
|
%t75 = call i32 @fn_str_eq(ptr %t71, ptr %t74)
|
|
%t76 = icmp ne i32 %t75, 0
|
|
br i1 %t76, label %then9, label %ifend11
|
|
then9:
|
|
%t77 = load ptr, ptr %t0
|
|
%t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 4
|
|
%t79 = load ptr, ptr %t78
|
|
%t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 7
|
|
%t81 = load ptr, ptr %t80
|
|
%t82 = getelementptr inbounds %LSlice, ptr %t81, i32 0, i32 0
|
|
%t83 = load ptr, ptr %t82
|
|
%t84 = load i32, ptr %t48
|
|
%t85 = getelementptr inbounds ptr, ptr %t83, i32 %t84
|
|
%t86 = load ptr, ptr %t85
|
|
%t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 4
|
|
%t88 = load ptr, ptr %t87
|
|
store ptr %t88, ptr %t47
|
|
br label %ifend11
|
|
ifend11:
|
|
%t89 = load i32, ptr %t48
|
|
%t90 = add i32 %t89, 1
|
|
store i32 %t90, ptr %t48
|
|
br label %wcond6
|
|
wend8:
|
|
%t91 = load ptr, ptr %t46
|
|
%t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 3
|
|
%t93 = load ptr, ptr %t92
|
|
%t94 = call ptr @fn_llty(ptr %t93)
|
|
store ptr %t94, ptr %t95
|
|
store ptr @.str1645, ptr %t96
|
|
%t97 = load ptr, ptr %t95
|
|
%t98 = call i32 @fn_str_eq(ptr %t97, ptr @.str1646)
|
|
%t99 = icmp ne i32 %t98, 0
|
|
br i1 %t99, label %then12, label %ifend14
|
|
then12:
|
|
store ptr @.str1647, ptr %t96
|
|
br label %ifend14
|
|
ifend14:
|
|
%t100 = load ptr, ptr %t47
|
|
%t101 = icmp ne ptr %t100, null
|
|
%t102 = zext i1 %t101 to i32
|
|
%t103 = icmp ne i32 %t102, 0
|
|
br i1 %t103, label %then15, label %else16
|
|
then15:
|
|
%t104 = load ptr, ptr %t47
|
|
%t105 = call ptr @fn_emit_expr(ptr %t104)
|
|
store ptr %t105, ptr %t106
|
|
%t107 = load ptr, ptr %t106
|
|
%t108 = getelementptr inbounds %Cmp_Val, ptr %t107, i32 0, i32 0
|
|
%t109 = load ptr, ptr %t108
|
|
store ptr %t109, ptr %t96
|
|
br label %ifend17
|
|
else16:
|
|
%t110 = load ptr, ptr %t46
|
|
%t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 4
|
|
%t112 = load ptr, ptr %t111
|
|
%t113 = icmp ne ptr %t112, null
|
|
%t114 = zext i1 %t113 to i32
|
|
%t115 = icmp ne i32 %t114, 0
|
|
br i1 %t115, label %then18, label %ifend20
|
|
then18:
|
|
%t116 = load ptr, ptr %t46
|
|
%t117 = getelementptr inbounds %Cmp_Node, ptr %t116, i32 0, i32 4
|
|
%t118 = load ptr, ptr %t117
|
|
%t119 = call ptr @fn_emit_expr(ptr %t118)
|
|
store ptr %t119, ptr %t120
|
|
%t121 = load ptr, ptr %t120
|
|
%t122 = getelementptr inbounds %Cmp_Val, ptr %t121, i32 0, i32 0
|
|
%t123 = load ptr, ptr %t122
|
|
store ptr %t123, ptr %t96
|
|
br label %ifend20
|
|
ifend20:
|
|
br label %ifend17
|
|
ifend17:
|
|
%t124 = load ptr, ptr %t20
|
|
%t125 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 1
|
|
%t126 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 2
|
|
%t127 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 0
|
|
%t128 = load i32, ptr %t125
|
|
%t129 = load i32, ptr %t126
|
|
%t130 = icmp sge i32 %t128, %t129
|
|
br i1 %t130, label %grow21, label %put22
|
|
grow21:
|
|
%t131 = mul i32 %t129, 2
|
|
%t132 = icmp eq i32 %t129, 0
|
|
%t133 = select i1 %t132, i32 8, i32 %t131
|
|
%t134 = getelementptr ptr, ptr null, i32 1
|
|
%t135 = ptrtoint ptr %t134 to i64
|
|
%t136 = zext i32 %t133 to i64
|
|
%t137 = mul i64 %t136, %t135
|
|
%t138 = load ptr, ptr %t127
|
|
%t139 = call ptr @realloc(ptr %t138, i64 %t137)
|
|
store ptr %t139, ptr %t127
|
|
store i32 %t133, ptr %t126
|
|
br label %put22
|
|
put22:
|
|
%t140 = load ptr, ptr %t96
|
|
%t141 = load ptr, ptr %t127
|
|
%t142 = getelementptr inbounds ptr, ptr %t141, i32 %t128
|
|
store ptr %t140, ptr %t142
|
|
%t143 = add i32 %t128, 1
|
|
store i32 %t143, ptr %t125
|
|
%t144 = load ptr, ptr %t27
|
|
%t145 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 1
|
|
%t146 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 2
|
|
%t147 = getelementptr inbounds %LSlice, ptr %t144, i32 0, i32 0
|
|
%t148 = load i32, ptr %t145
|
|
%t149 = load i32, ptr %t146
|
|
%t150 = icmp sge i32 %t148, %t149
|
|
br i1 %t150, label %grow23, label %put24
|
|
grow23:
|
|
%t151 = mul i32 %t149, 2
|
|
%t152 = icmp eq i32 %t149, 0
|
|
%t153 = select i1 %t152, i32 8, i32 %t151
|
|
%t154 = getelementptr ptr, ptr null, i32 1
|
|
%t155 = ptrtoint ptr %t154 to i64
|
|
%t156 = zext i32 %t153 to i64
|
|
%t157 = mul i64 %t156, %t155
|
|
%t158 = load ptr, ptr %t147
|
|
%t159 = call ptr @realloc(ptr %t158, i64 %t157)
|
|
store ptr %t159, ptr %t147
|
|
store i32 %t153, ptr %t146
|
|
br label %put24
|
|
put24:
|
|
%t160 = load ptr, ptr %t95
|
|
%t161 = load ptr, ptr %t147
|
|
%t162 = getelementptr inbounds ptr, ptr %t161, i32 %t148
|
|
store ptr %t160, ptr %t162
|
|
%t163 = add i32 %t148, 1
|
|
store i32 %t163, ptr %t145
|
|
%t164 = load i32, ptr %t28
|
|
%t165 = add i32 %t164, 1
|
|
store i32 %t165, ptr %t28
|
|
br label %wcond3
|
|
wend5:
|
|
%t166 = load ptr, ptr %t5
|
|
%t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 3
|
|
%t168 = load ptr, ptr %t167
|
|
%t169 = icmp ne ptr %t168, null
|
|
%t170 = zext i1 %t169 to i32
|
|
%t171 = icmp ne i32 %t170, 0
|
|
br i1 %t171, label %then25, label %ifend27
|
|
then25:
|
|
%t172 = call ptr @fn_nreg()
|
|
store ptr %t172, ptr %t173
|
|
call void @fn_emit(ptr @.str1648)
|
|
%t174 = load ptr, ptr %t173
|
|
call void @fn_emit(ptr %t174)
|
|
call void @fn_emit(ptr @.str1649)
|
|
call void @fn_emit(ptr @.str1650)
|
|
%t175 = load ptr, ptr %t0
|
|
%t176 = getelementptr inbounds %Cmp_Node, ptr %t175, i32 0, i32 1
|
|
%t177 = load ptr, ptr %t176
|
|
%t178 = call i32 @fn_net_event_id(ptr %t177)
|
|
%t179 = call ptr @fn_itoa(i32 %t178)
|
|
call void @fn_emit(ptr %t179)
|
|
call void @fn_emit(ptr @.str1651)
|
|
%t180 = load ptr, ptr %t173
|
|
call void @fn_emit(ptr %t180)
|
|
call void @fn_emit(ptr @.str1652)
|
|
store i32 4, ptr %t181
|
|
store i32 0, ptr %t182
|
|
br label %wcond28
|
|
wcond28:
|
|
%t183 = load i32, ptr %t182
|
|
%t184 = load ptr, ptr %t5
|
|
%t185 = getelementptr inbounds %Cmp_Node, ptr %t184, i32 0, i32 7
|
|
%t186 = load ptr, ptr %t185
|
|
%t187 = getelementptr inbounds %LSlice, ptr %t186, i32 0, i32 1
|
|
%t188 = load i32, ptr %t187
|
|
%t189 = icmp slt i32 %t183, %t188
|
|
%t190 = zext i1 %t189 to i32
|
|
%t191 = icmp ne i32 %t190, 0
|
|
br i1 %t191, label %wbody29, label %wend30
|
|
wbody29:
|
|
%t192 = call ptr @fn_nreg()
|
|
store ptr %t192, ptr %t193
|
|
call void @fn_emit(ptr @.str1653)
|
|
%t194 = load ptr, ptr %t193
|
|
call void @fn_emit(ptr %t194)
|
|
call void @fn_emit(ptr @.str1654)
|
|
%t195 = load i32, ptr %t181
|
|
%t196 = call ptr @fn_itoa(i32 %t195)
|
|
call void @fn_emit(ptr %t196)
|
|
call void @fn_emit(ptr @.str1655)
|
|
call void @fn_emit(ptr @.str1656)
|
|
%t197 = load ptr, ptr %t27
|
|
%t198 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 0
|
|
%t199 = load ptr, ptr %t198
|
|
%t200 = load i32, ptr %t182
|
|
%t201 = getelementptr inbounds ptr, ptr %t199, i32 %t200
|
|
%t202 = load ptr, ptr %t201
|
|
call void @fn_emit(ptr %t202)
|
|
call void @fn_emit(ptr @.str1657)
|
|
%t203 = load ptr, ptr %t20
|
|
%t204 = getelementptr inbounds %LSlice, ptr %t203, i32 0, i32 0
|
|
%t205 = load ptr, ptr %t204
|
|
%t206 = load i32, ptr %t182
|
|
%t207 = getelementptr inbounds ptr, ptr %t205, i32 %t206
|
|
%t208 = load ptr, ptr %t207
|
|
call void @fn_emit(ptr %t208)
|
|
call void @fn_emit(ptr @.str1658)
|
|
%t209 = load ptr, ptr %t193
|
|
call void @fn_emit(ptr %t209)
|
|
call void @fn_emit(ptr @.str1659)
|
|
%t210 = load i32, ptr %t181
|
|
%t211 = load ptr, ptr %t5
|
|
%t212 = getelementptr inbounds %Cmp_Node, ptr %t211, i32 0, i32 7
|
|
%t213 = load ptr, ptr %t212
|
|
%t214 = getelementptr inbounds %LSlice, ptr %t213, i32 0, i32 0
|
|
%t215 = load ptr, ptr %t214
|
|
%t216 = load i32, ptr %t182
|
|
%t217 = getelementptr inbounds ptr, ptr %t215, i32 %t216
|
|
%t218 = load ptr, ptr %t217
|
|
%t219 = getelementptr inbounds %Cmp_Node, ptr %t218, i32 0, i32 3
|
|
%t220 = load ptr, ptr %t219
|
|
%t221 = call i32 @fn_net_field_ibytes(ptr %t220)
|
|
%t222 = add i32 %t210, %t221
|
|
store i32 %t222, ptr %t181
|
|
%t223 = load i32, ptr %t182
|
|
%t224 = add i32 %t223, 1
|
|
store i32 %t224, ptr %t182
|
|
br label %wcond28
|
|
wend30:
|
|
store ptr @.str1660, ptr %t225
|
|
%t226 = load ptr, ptr %t5
|
|
%t227 = getelementptr inbounds %Cmp_Node, ptr %t226, i32 0, i32 3
|
|
%t228 = load ptr, ptr %t227
|
|
%t229 = call i32 @fn_str_eq(ptr %t228, ptr @.str1661)
|
|
%t230 = icmp ne i32 %t229, 0
|
|
br i1 %t230, label %then31, label %ifend33
|
|
then31:
|
|
store ptr @.str1662, ptr %t225
|
|
br label %ifend33
|
|
ifend33:
|
|
%t231 = call ptr @fn_find_extern(ptr @.str1663)
|
|
%t232 = icmp eq ptr %t231, null
|
|
%t233 = zext i1 %t232 to i32
|
|
%t234 = icmp ne i32 %t233, 0
|
|
br i1 %t234, label %then34, label %ifend36
|
|
then34:
|
|
store i32 1, ptr @g_g_uses_loopback
|
|
br label %ifend36
|
|
ifend36:
|
|
call void @fn_emit(ptr @.str1664)
|
|
%t235 = call ptr @fn_net_send_sym()
|
|
call void @fn_emit(ptr %t235)
|
|
call void @fn_emit(ptr @.str1665)
|
|
%t236 = load ptr, ptr %t225
|
|
call void @fn_emit(ptr %t236)
|
|
call void @fn_emit(ptr @.str1666)
|
|
%t237 = load i32, ptr %t181
|
|
%t238 = call ptr @fn_itoa(i32 %t237)
|
|
call void @fn_emit(ptr %t238)
|
|
call void @fn_emit(ptr @.str1667)
|
|
%t239 = call ptr @fn_val(ptr @.str1668, ptr @.str1669)
|
|
store ptr %t239, ptr %retval
|
|
br label %ret
|
|
ifend27:
|
|
%t240 = call ptr @fn_buf_new()
|
|
store ptr %t240, ptr %t241
|
|
store i32 0, ptr %t242
|
|
br label %wcond37
|
|
wcond37:
|
|
%t243 = load i32, ptr %t242
|
|
%t244 = load ptr, ptr %t20
|
|
%t245 = getelementptr inbounds %LSlice, ptr %t244, i32 0, i32 1
|
|
%t246 = load i32, ptr %t245
|
|
%t247 = icmp slt i32 %t243, %t246
|
|
%t248 = zext i1 %t247 to i32
|
|
%t249 = icmp ne i32 %t248, 0
|
|
br i1 %t249, label %wbody38, label %wend39
|
|
wbody38:
|
|
%t250 = load i32, ptr %t242
|
|
%t251 = icmp sgt i32 %t250, 0
|
|
%t252 = zext i1 %t251 to i32
|
|
%t253 = icmp ne i32 %t252, 0
|
|
br i1 %t253, label %then40, label %ifend42
|
|
then40:
|
|
%t254 = load ptr, ptr %t241
|
|
call void @fn_buf_puts(ptr %t254, ptr @.str1670)
|
|
br label %ifend42
|
|
ifend42:
|
|
%t255 = load ptr, ptr %t241
|
|
%t256 = load ptr, ptr %t27
|
|
%t257 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 0
|
|
%t258 = load ptr, ptr %t257
|
|
%t259 = load i32, ptr %t242
|
|
%t260 = getelementptr inbounds ptr, ptr %t258, i32 %t259
|
|
%t261 = load ptr, ptr %t260
|
|
call void @fn_buf_puts(ptr %t255, ptr %t261)
|
|
%t262 = load ptr, ptr %t241
|
|
call void @fn_buf_puts(ptr %t262, ptr @.str1671)
|
|
%t263 = load ptr, ptr %t241
|
|
%t264 = load ptr, ptr %t20
|
|
%t265 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 0
|
|
%t266 = load ptr, ptr %t265
|
|
%t267 = load i32, ptr %t242
|
|
%t268 = getelementptr inbounds ptr, ptr %t266, i32 %t267
|
|
%t269 = load ptr, ptr %t268
|
|
call void @fn_buf_puts(ptr %t263, ptr %t269)
|
|
%t270 = load i32, ptr %t242
|
|
%t271 = add i32 %t270, 1
|
|
store i32 %t271, ptr %t242
|
|
br label %wcond37
|
|
wend39:
|
|
%t272 = load ptr, ptr %t5
|
|
%t273 = getelementptr inbounds %Cmp_Node, ptr %t272, i32 0, i32 2
|
|
%t274 = load i32, ptr %t273
|
|
%t275 = icmp eq i32 %t274, 1
|
|
%t276 = zext i1 %t275 to i32
|
|
%t277 = icmp ne i32 %t276, 0
|
|
br i1 %t277, label %then43, label %ifend45
|
|
then43:
|
|
%t278 = call ptr @fn_nreg()
|
|
store ptr %t278, ptr %t279
|
|
call void @fn_emit(ptr @.str1672)
|
|
%t280 = load ptr, ptr %t279
|
|
call void @fn_emit(ptr %t280)
|
|
call void @fn_emit(ptr @.str1673)
|
|
%t281 = load ptr, ptr %t0
|
|
%t282 = getelementptr inbounds %Cmp_Node, ptr %t281, i32 0, i32 1
|
|
%t283 = load ptr, ptr %t282
|
|
call void @fn_emit(ptr %t283)
|
|
call void @fn_emit(ptr @.str1674)
|
|
%t284 = load ptr, ptr %t241
|
|
%t285 = call ptr @fn_buf_str(ptr %t284)
|
|
call void @fn_emit(ptr %t285)
|
|
call void @fn_emit(ptr @.str1675)
|
|
%t286 = load ptr, ptr %t279
|
|
%t287 = call ptr @fn_val(ptr %t286, ptr @.str1676)
|
|
store ptr %t287, ptr %retval
|
|
br label %ret
|
|
ifend45:
|
|
call void @fn_emit(ptr @.str1677)
|
|
%t288 = load ptr, ptr %t0
|
|
%t289 = getelementptr inbounds %Cmp_Node, ptr %t288, i32 0, i32 1
|
|
%t290 = load ptr, ptr %t289
|
|
call void @fn_emit(ptr %t290)
|
|
call void @fn_emit(ptr @.str1678)
|
|
%t291 = load ptr, ptr %t241
|
|
%t292 = call ptr @fn_buf_str(ptr %t291)
|
|
call void @fn_emit(ptr %t292)
|
|
call void @fn_emit(ptr @.str1679)
|
|
%t293 = call ptr @fn_val(ptr @.str1680, ptr @.str1681)
|
|
store ptr %t293, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t294 = load ptr, ptr %retval
|
|
ret ptr %t294
|
|
}
|
|
|
|
define void @fn_emit_stmt(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t10 = alloca ptr
|
|
%t19 = alloca ptr
|
|
%t26 = alloca ptr
|
|
%t44 = alloca ptr
|
|
%t51 = alloca ptr
|
|
%t64 = alloca ptr
|
|
%t162 = alloca ptr
|
|
%t199 = alloca ptr
|
|
%t235 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 0
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = icmp eq i32 %t3, 10
|
|
%t5 = zext i1 %t4 to i32
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then0, label %ifend2
|
|
then0:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3
|
|
%t9 = load ptr, ptr %t8
|
|
store ptr %t9, ptr %t10
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = icmp eq ptr %t11, null
|
|
%t13 = zext i1 %t12 to i32
|
|
%t14 = icmp ne i32 %t13, 0
|
|
br i1 %t14, label %then3, label %ifend5
|
|
then3:
|
|
%t15 = load ptr, ptr %t0
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 4
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = call ptr @fn_emit_expr(ptr %t17)
|
|
store ptr %t18, ptr %t19
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = getelementptr inbounds %Cmp_Val, ptr %t20, i32 0, i32 1
|
|
%t22 = load ptr, ptr %t21
|
|
store ptr %t22, ptr %t10
|
|
%t23 = load ptr, ptr %t10
|
|
%t24 = call ptr @fn_llty(ptr %t23)
|
|
%t25 = call ptr @fn_emit_alloca(ptr %t24)
|
|
store ptr %t25, ptr %t26
|
|
%t27 = load ptr, ptr %t10
|
|
%t28 = call ptr @fn_llty(ptr %t27)
|
|
%t29 = load ptr, ptr %t19
|
|
%t30 = getelementptr inbounds %Cmp_Val, ptr %t29, i32 0, i32 0
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = load ptr, ptr %t26
|
|
call void @fn_store_at(ptr %t28, ptr %t31, ptr %t32)
|
|
%t33 = load ptr, ptr %t0
|
|
%t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1
|
|
%t35 = load ptr, ptr %t34
|
|
%t36 = load ptr, ptr %t26
|
|
%t37 = load ptr, ptr %t10
|
|
call void @fn_loc_push(ptr %t35, ptr %t36, ptr %t37)
|
|
%t38 = load ptr, ptr %t0
|
|
%t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 2
|
|
%t40 = load i32, ptr %t39
|
|
call void @fn_loc_set_mut(i32 %t40)
|
|
br label %ret
|
|
ifend5:
|
|
%t41 = load ptr, ptr %t10
|
|
%t42 = call ptr @fn_llty(ptr %t41)
|
|
%t43 = call ptr @fn_emit_alloca(ptr %t42)
|
|
store ptr %t43, ptr %t44
|
|
%t45 = load ptr, ptr %t0
|
|
%t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 4
|
|
%t47 = load ptr, ptr %t46
|
|
%t48 = icmp eq ptr %t47, null
|
|
%t49 = zext i1 %t48 to i32
|
|
%t50 = icmp ne i32 %t49, 0
|
|
br i1 %t50, label %then6, label %else7
|
|
then6:
|
|
store ptr @.str1682, ptr %t51
|
|
%t52 = load ptr, ptr %t10
|
|
%t53 = call ptr @fn_llty(ptr %t52)
|
|
%t54 = call i32 @fn_str_eq(ptr %t53, ptr @.str1683)
|
|
%t55 = icmp ne i32 %t54, 0
|
|
br i1 %t55, label %then9, label %ifend11
|
|
then9:
|
|
store ptr @.str1684, ptr %t51
|
|
br label %ifend11
|
|
ifend11:
|
|
%t56 = load ptr, ptr %t10
|
|
%t57 = call ptr @fn_llty(ptr %t56)
|
|
%t58 = load ptr, ptr %t51
|
|
%t59 = load ptr, ptr %t44
|
|
call void @fn_store_at(ptr %t57, ptr %t58, ptr %t59)
|
|
br label %ifend8
|
|
else7:
|
|
%t60 = load ptr, ptr %t0
|
|
%t61 = getelementptr inbounds %Cmp_Node, ptr %t60, i32 0, i32 4
|
|
%t62 = load ptr, ptr %t61
|
|
%t63 = call ptr @fn_emit_expr(ptr %t62)
|
|
store ptr %t63, ptr %t64
|
|
%t65 = load ptr, ptr %t10
|
|
%t66 = call ptr @fn_llty(ptr %t65)
|
|
%t67 = load ptr, ptr %t64
|
|
%t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 0
|
|
%t69 = load ptr, ptr %t68
|
|
%t70 = load ptr, ptr %t44
|
|
call void @fn_store_at(ptr %t66, ptr %t69, ptr %t70)
|
|
br label %ifend8
|
|
ifend8:
|
|
%t71 = load ptr, ptr %t0
|
|
%t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 1
|
|
%t73 = load ptr, ptr %t72
|
|
%t74 = load ptr, ptr %t44
|
|
%t75 = load ptr, ptr %t10
|
|
call void @fn_loc_push(ptr %t73, ptr %t74, ptr %t75)
|
|
%t76 = load ptr, ptr %t0
|
|
%t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 2
|
|
%t78 = load i32, ptr %t77
|
|
call void @fn_loc_set_mut(i32 %t78)
|
|
br label %ret
|
|
ifend2:
|
|
%t79 = load ptr, ptr %t0
|
|
%t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 0
|
|
%t81 = load i32, ptr %t80
|
|
%t82 = icmp eq i32 %t81, 11
|
|
%t83 = zext i1 %t82 to i32
|
|
%t84 = icmp ne i32 %t83, 0
|
|
br i1 %t84, label %then12, label %ifend14
|
|
then12:
|
|
%t85 = load ptr, ptr %t0
|
|
call void @fn_emit_assign(ptr %t85)
|
|
br label %ret
|
|
ifend14:
|
|
%t86 = load ptr, ptr %t0
|
|
%t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 0
|
|
%t88 = load i32, ptr %t87
|
|
%t89 = icmp eq i32 %t88, 12
|
|
%t90 = zext i1 %t89 to i32
|
|
%t91 = icmp ne i32 %t90, 0
|
|
br i1 %t91, label %then15, label %ifend17
|
|
then15:
|
|
%t92 = load ptr, ptr %t0
|
|
call void @fn_emit_if(ptr %t92)
|
|
br label %ret
|
|
ifend17:
|
|
%t93 = load ptr, ptr %t0
|
|
%t94 = getelementptr inbounds %Cmp_Node, ptr %t93, i32 0, i32 0
|
|
%t95 = load i32, ptr %t94
|
|
%t96 = icmp eq i32 %t95, 13
|
|
%t97 = zext i1 %t96 to i32
|
|
%t98 = icmp ne i32 %t97, 0
|
|
br i1 %t98, label %then18, label %ifend20
|
|
then18:
|
|
%t99 = load ptr, ptr %t0
|
|
call void @fn_emit_while(ptr %t99)
|
|
br label %ret
|
|
ifend20:
|
|
%t100 = load ptr, ptr %t0
|
|
%t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 0
|
|
%t102 = load i32, ptr %t101
|
|
%t103 = icmp eq i32 %t102, 14
|
|
%t104 = zext i1 %t103 to i32
|
|
%t105 = icmp ne i32 %t104, 0
|
|
br i1 %t105, label %then21, label %ifend23
|
|
then21:
|
|
%t106 = load ptr, ptr %t0
|
|
call void @fn_emit_for(ptr %t106)
|
|
br label %ret
|
|
ifend23:
|
|
%t107 = load ptr, ptr %t0
|
|
%t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 0
|
|
%t109 = load i32, ptr %t108
|
|
%t110 = icmp eq i32 %t109, 15
|
|
%t111 = zext i1 %t110 to i32
|
|
%t112 = icmp ne i32 %t111, 0
|
|
br i1 %t112, label %then24, label %ifend26
|
|
then24:
|
|
%t113 = load ptr, ptr %t0
|
|
call void @fn_emit_return(ptr %t113)
|
|
br label %ret
|
|
ifend26:
|
|
%t114 = load ptr, ptr %t0
|
|
%t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 0
|
|
%t116 = load i32, ptr %t115
|
|
%t117 = icmp eq i32 %t116, 17
|
|
%t118 = zext i1 %t117 to i32
|
|
%t119 = icmp ne i32 %t118, 0
|
|
br i1 %t119, label %then27, label %ifend29
|
|
then27:
|
|
call void @fn_emit(ptr @.str1685)
|
|
%t120 = load ptr, ptr @g_brk_lbl
|
|
%t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0
|
|
%t122 = load ptr, ptr %t121
|
|
%t123 = load i32, ptr @g_nloop
|
|
%t124 = sub i32 %t123, 1
|
|
%t125 = getelementptr inbounds ptr, ptr %t122, i32 %t124
|
|
%t126 = load ptr, ptr %t125
|
|
call void @fn_emit(ptr %t126)
|
|
call void @fn_emit(ptr @.str1686)
|
|
store i32 1, ptr @g_g_term
|
|
br label %ret
|
|
ifend29:
|
|
%t127 = load ptr, ptr %t0
|
|
%t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 0
|
|
%t129 = load i32, ptr %t128
|
|
%t130 = icmp eq i32 %t129, 18
|
|
%t131 = zext i1 %t130 to i32
|
|
%t132 = icmp ne i32 %t131, 0
|
|
br i1 %t132, label %then30, label %ifend32
|
|
then30:
|
|
call void @fn_emit(ptr @.str1687)
|
|
%t133 = load ptr, ptr @g_cnt_lbl
|
|
%t134 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 0
|
|
%t135 = load ptr, ptr %t134
|
|
%t136 = load i32, ptr @g_nloop
|
|
%t137 = sub i32 %t136, 1
|
|
%t138 = getelementptr inbounds ptr, ptr %t135, i32 %t137
|
|
%t139 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t139)
|
|
call void @fn_emit(ptr @.str1688)
|
|
store i32 1, ptr @g_g_term
|
|
br label %ret
|
|
ifend32:
|
|
%t140 = load ptr, ptr %t0
|
|
%t141 = getelementptr inbounds %Cmp_Node, ptr %t140, i32 0, i32 0
|
|
%t142 = load i32, ptr %t141
|
|
%t143 = icmp eq i32 %t142, 19
|
|
%t144 = zext i1 %t143 to i32
|
|
%t145 = icmp ne i32 %t144, 0
|
|
br i1 %t145, label %then33, label %ifend35
|
|
then33:
|
|
%t146 = load ptr, ptr %t0
|
|
call void @fn_emit_match(ptr %t146)
|
|
br label %ret
|
|
ifend35:
|
|
%t147 = load ptr, ptr %t0
|
|
%t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 0
|
|
%t149 = load i32, ptr %t148
|
|
%t150 = icmp eq i32 %t149, 21
|
|
%t151 = zext i1 %t150 to i32
|
|
%t152 = icmp ne i32 %t151, 0
|
|
br i1 %t152, label %then36, label %ifend38
|
|
then36:
|
|
%t153 = load ptr, ptr %t0
|
|
call void @fn_emit_query(ptr %t153)
|
|
br label %ret
|
|
ifend38:
|
|
%t154 = load ptr, ptr %t0
|
|
%t155 = getelementptr inbounds %Cmp_Node, ptr %t154, i32 0, i32 0
|
|
%t156 = load i32, ptr %t155
|
|
%t157 = icmp eq i32 %t156, 22
|
|
%t158 = zext i1 %t157 to i32
|
|
%t159 = icmp ne i32 %t158, 0
|
|
br i1 %t159, label %then39, label %ifend41
|
|
then39:
|
|
%t160 = load ptr, ptr %t0
|
|
%t161 = call ptr @fn_emit_spawn(ptr %t160)
|
|
store ptr %t161, ptr %t162
|
|
br label %ret
|
|
ifend41:
|
|
%t163 = load ptr, ptr %t0
|
|
%t164 = getelementptr inbounds %Cmp_Node, ptr %t163, i32 0, i32 0
|
|
%t165 = load i32, ptr %t164
|
|
%t166 = icmp eq i32 %t165, 23
|
|
%t167 = zext i1 %t166 to i32
|
|
%t168 = icmp ne i32 %t167, 0
|
|
br i1 %t168, label %then42, label %ifend44
|
|
then42:
|
|
%t169 = load ptr, ptr %t0
|
|
call void @fn_emit_despawn(ptr %t169)
|
|
br label %ret
|
|
ifend44:
|
|
%t170 = load ptr, ptr %t0
|
|
%t171 = getelementptr inbounds %Cmp_Node, ptr %t170, i32 0, i32 0
|
|
%t172 = load i32, ptr %t171
|
|
%t173 = icmp eq i32 %t172, 28
|
|
%t174 = zext i1 %t173 to i32
|
|
%t175 = icmp ne i32 %t174, 0
|
|
br i1 %t175, label %then45, label %ifend47
|
|
then45:
|
|
%t176 = load ptr, ptr %t0
|
|
call void @fn_emit_toggle(ptr %t176)
|
|
br label %ret
|
|
ifend47:
|
|
%t177 = load ptr, ptr %t0
|
|
%t178 = getelementptr inbounds %Cmp_Node, ptr %t177, i32 0, i32 0
|
|
%t179 = load i32, ptr %t178
|
|
%t180 = icmp eq i32 %t179, 46
|
|
%t181 = zext i1 %t180 to i32
|
|
%t182 = icmp ne i32 %t181, 0
|
|
br i1 %t182, label %then48, label %ifend50
|
|
then48:
|
|
%t183 = load ptr, ptr %t0
|
|
call void @fn_emit_attach(ptr %t183)
|
|
br label %ret
|
|
ifend50:
|
|
%t184 = load ptr, ptr %t0
|
|
%t185 = getelementptr inbounds %Cmp_Node, ptr %t184, i32 0, i32 0
|
|
%t186 = load i32, ptr %t185
|
|
%t187 = icmp eq i32 %t186, 47
|
|
%t188 = zext i1 %t187 to i32
|
|
%t189 = icmp ne i32 %t188, 0
|
|
br i1 %t189, label %then51, label %ifend53
|
|
then51:
|
|
%t190 = load ptr, ptr %t0
|
|
call void @fn_emit_detach(ptr %t190)
|
|
br label %ret
|
|
ifend53:
|
|
%t191 = load ptr, ptr %t0
|
|
%t192 = getelementptr inbounds %Cmp_Node, ptr %t191, i32 0, i32 0
|
|
%t193 = load i32, ptr %t192
|
|
%t194 = icmp eq i32 %t193, 49
|
|
%t195 = zext i1 %t194 to i32
|
|
%t196 = icmp ne i32 %t195, 0
|
|
br i1 %t196, label %then54, label %ifend56
|
|
then54:
|
|
%t197 = load ptr, ptr %t0
|
|
%t198 = call ptr @fn_emit_emit(ptr %t197)
|
|
store ptr %t198, ptr %t199
|
|
br label %ret
|
|
ifend56:
|
|
%t200 = load ptr, ptr %t0
|
|
%t201 = getelementptr inbounds %Cmp_Node, ptr %t200, i32 0, i32 0
|
|
%t202 = load i32, ptr %t201
|
|
%t203 = icmp eq i32 %t202, 50
|
|
%t204 = zext i1 %t203 to i32
|
|
%t205 = icmp ne i32 %t204, 0
|
|
br i1 %t205, label %then57, label %ifend59
|
|
then57:
|
|
%t206 = load ptr, ptr @g_g_cancel_addr
|
|
%t207 = icmp eq ptr %t206, null
|
|
%t208 = zext i1 %t207 to i32
|
|
%t209 = icmp ne i32 %t208, 0
|
|
br i1 %t209, label %then60, label %ifend62
|
|
then60:
|
|
call void @fn_perr(ptr @.str1689)
|
|
br label %ifend62
|
|
ifend62:
|
|
call void @fn_emit(ptr @.str1690)
|
|
%t210 = load ptr, ptr @g_g_cancel_addr
|
|
call void @fn_emit(ptr %t210)
|
|
call void @fn_emit(ptr @.str1691)
|
|
br label %ret
|
|
ifend59:
|
|
%t211 = load ptr, ptr %t0
|
|
%t212 = getelementptr inbounds %Cmp_Node, ptr %t211, i32 0, i32 0
|
|
%t213 = load i32, ptr %t212
|
|
%t214 = icmp eq i32 %t213, 24
|
|
%t215 = zext i1 %t214 to i32
|
|
%t216 = icmp ne i32 %t215, 0
|
|
br i1 %t216, label %then63, label %ifend65
|
|
then63:
|
|
%t217 = load ptr, ptr %t0
|
|
call void @fn_emit_machine(ptr %t217)
|
|
br label %ret
|
|
ifend65:
|
|
%t218 = load ptr, ptr %t0
|
|
%t219 = getelementptr inbounds %Cmp_Node, ptr %t218, i32 0, i32 0
|
|
%t220 = load i32, ptr %t219
|
|
%t221 = icmp eq i32 %t220, 26
|
|
%t222 = zext i1 %t221 to i32
|
|
%t223 = icmp ne i32 %t222, 0
|
|
br i1 %t223, label %then66, label %ifend68
|
|
then66:
|
|
%t224 = load ptr, ptr %t0
|
|
call void @fn_emit_become(ptr %t224)
|
|
br label %ret
|
|
ifend68:
|
|
%t225 = load ptr, ptr %t0
|
|
%t226 = getelementptr inbounds %Cmp_Node, ptr %t225, i32 0, i32 0
|
|
%t227 = load i32, ptr %t226
|
|
%t228 = icmp eq i32 %t227, 16
|
|
%t229 = zext i1 %t228 to i32
|
|
%t230 = icmp ne i32 %t229, 0
|
|
br i1 %t230, label %then69, label %ifend71
|
|
then69:
|
|
%t231 = load ptr, ptr %t0
|
|
%t232 = getelementptr inbounds %Cmp_Node, ptr %t231, i32 0, i32 4
|
|
%t233 = load ptr, ptr %t232
|
|
%t234 = call ptr @fn_emit_expr(ptr %t233)
|
|
store ptr %t234, ptr %t235
|
|
br label %ret
|
|
ifend71:
|
|
call void @fn_perr(ptr @.str1692)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_loop_push(ptr %arg_cont, ptr %arg_brk) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
store ptr %arg_cont, ptr %t0
|
|
store ptr %arg_brk, ptr %t1
|
|
%t2 = load i32, ptr @g_nloop
|
|
%t3 = load ptr, ptr @g_cnt_lbl
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %then0, label %else1
|
|
then0:
|
|
%t9 = load ptr, ptr @g_cnt_lbl
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr @g_nloop
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t0
|
|
store ptr %t14, ptr %t13
|
|
%t15 = load ptr, ptr @g_brk_lbl
|
|
%t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = load i32, ptr @g_nloop
|
|
%t19 = getelementptr inbounds ptr, ptr %t17, i32 %t18
|
|
%t20 = load ptr, ptr %t1
|
|
store ptr %t20, ptr %t19
|
|
br label %ifend2
|
|
else1:
|
|
%t21 = load ptr, ptr @g_cnt_lbl
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 1
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 2
|
|
%t24 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0
|
|
%t25 = load i32, ptr %t22
|
|
%t26 = load i32, ptr %t23
|
|
%t27 = icmp sge i32 %t25, %t26
|
|
br i1 %t27, label %grow3, label %put4
|
|
grow3:
|
|
%t28 = mul i32 %t26, 2
|
|
%t29 = icmp eq i32 %t26, 0
|
|
%t30 = select i1 %t29, i32 8, i32 %t28
|
|
%t31 = getelementptr ptr, ptr null, i32 1
|
|
%t32 = ptrtoint ptr %t31 to i64
|
|
%t33 = zext i32 %t30 to i64
|
|
%t34 = mul i64 %t33, %t32
|
|
%t35 = load ptr, ptr %t24
|
|
%t36 = call ptr @realloc(ptr %t35, i64 %t34)
|
|
store ptr %t36, ptr %t24
|
|
store i32 %t30, ptr %t23
|
|
br label %put4
|
|
put4:
|
|
%t37 = load ptr, ptr %t0
|
|
%t38 = load ptr, ptr %t24
|
|
%t39 = getelementptr inbounds ptr, ptr %t38, i32 %t25
|
|
store ptr %t37, ptr %t39
|
|
%t40 = add i32 %t25, 1
|
|
store i32 %t40, ptr %t22
|
|
%t41 = load ptr, ptr @g_brk_lbl
|
|
%t42 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 1
|
|
%t43 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 2
|
|
%t44 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0
|
|
%t45 = load i32, ptr %t42
|
|
%t46 = load i32, ptr %t43
|
|
%t47 = icmp sge i32 %t45, %t46
|
|
br i1 %t47, label %grow5, label %put6
|
|
grow5:
|
|
%t48 = mul i32 %t46, 2
|
|
%t49 = icmp eq i32 %t46, 0
|
|
%t50 = select i1 %t49, i32 8, i32 %t48
|
|
%t51 = getelementptr ptr, ptr null, i32 1
|
|
%t52 = ptrtoint ptr %t51 to i64
|
|
%t53 = zext i32 %t50 to i64
|
|
%t54 = mul i64 %t53, %t52
|
|
%t55 = load ptr, ptr %t44
|
|
%t56 = call ptr @realloc(ptr %t55, i64 %t54)
|
|
store ptr %t56, ptr %t44
|
|
store i32 %t50, ptr %t43
|
|
br label %put6
|
|
put6:
|
|
%t57 = load ptr, ptr %t1
|
|
%t58 = load ptr, ptr %t44
|
|
%t59 = getelementptr inbounds ptr, ptr %t58, i32 %t45
|
|
store ptr %t57, ptr %t59
|
|
%t60 = add i32 %t45, 1
|
|
store i32 %t60, ptr %t42
|
|
br label %ifend2
|
|
ifend2:
|
|
%t61 = load i32, ptr @g_nloop
|
|
%t62 = add i32 %t61, 1
|
|
store i32 %t62, ptr @g_nloop
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_loop_pop() {
|
|
entry:
|
|
%t0 = load i32, ptr @g_nloop
|
|
%t1 = sub i32 %t0, 1
|
|
store i32 %t1, ptr @g_nloop
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_has_systems() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_prog
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = icmp eq i32 %t15, 9
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t19 = load i32, ptr %t0
|
|
%t20 = add i32 %t19, 1
|
|
store i32 %t20, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t21 = load i32, ptr %retval
|
|
ret i32 %t21
|
|
}
|
|
|
|
define i32 @fn_has_models() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_prog
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = icmp eq i32 %t15, 10
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t19 = load i32, ptr %t0
|
|
%t20 = add i32 %t19, 1
|
|
store i32 %t20, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t21 = load i32, ptr %retval
|
|
ret i32 %t21
|
|
}
|
|
|
|
define i32 @fn_has_entry() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_prog
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = icmp eq i32 %t15, 6
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t19 = load i32, ptr %t0
|
|
%t20 = add i32 %t19, 1
|
|
store i32 %t20, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t21 = load i32, ptr %retval
|
|
ret i32 %t21
|
|
}
|
|
|
|
define i32 @fn_has_ecs() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
%t1 = call i32 @fn_has_systems()
|
|
%t2 = icmp ne i32 %t1, 0
|
|
%t3 = zext i1 %t2 to i32
|
|
store i32 %t3, ptr %t0
|
|
br i1 %t2, label %scend1, label %sc0
|
|
sc0:
|
|
%t4 = call i32 @fn_has_models()
|
|
%t5 = icmp ne i32 %t4, 0
|
|
%t6 = zext i1 %t5 to i32
|
|
store i32 %t6, ptr %t0
|
|
br label %scend1
|
|
scend1:
|
|
%t7 = load i32, ptr %t0
|
|
store i32 %t7, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t8 = load i32, ptr %retval
|
|
ret i32 %t8
|
|
}
|
|
|
|
define void @fn_emit_ecs_storage() {
|
|
entry:
|
|
%t7 = alloca ptr
|
|
%t24 = alloca i32
|
|
%t38 = alloca ptr
|
|
%t90 = alloca i32
|
|
call void @fn_emith(ptr @.str1693)
|
|
call void @fn_emith(ptr @.str1694)
|
|
%t0 = load ptr, ptr @g_g_scenes
|
|
%t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = icmp sgt i32 %t2, 0
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_emith(ptr @.str1695)
|
|
br label %ifend2
|
|
ifend2:
|
|
call void @fn_emith(ptr @.str1696)
|
|
%t6 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = call ptr @fn_str_concat(ptr @.str1697, ptr %t8)
|
|
%t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str1698)
|
|
call void @fn_emith(ptr %t10)
|
|
%t11 = load ptr, ptr %t7
|
|
%t12 = call ptr @fn_str_concat(ptr @.str1699, ptr %t11)
|
|
%t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str1700)
|
|
call void @fn_emith(ptr %t13)
|
|
%t14 = load ptr, ptr %t7
|
|
%t15 = call ptr @fn_str_concat(ptr @.str1701, ptr %t14)
|
|
%t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str1702)
|
|
call void @fn_emith(ptr %t16)
|
|
call void @fn_emith(ptr @.str1703)
|
|
%t17 = call i32 @fn_net_any()
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
call void @fn_emith(ptr @.str1704)
|
|
call void @fn_emith(ptr @.str1705)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t19 = call i32 @fn_net_has_owned()
|
|
%t20 = icmp ne i32 %t19, 0
|
|
br i1 %t20, label %then6, label %ifend8
|
|
then6:
|
|
%t21 = load ptr, ptr %t7
|
|
%t22 = call ptr @fn_str_concat(ptr @.str1706, ptr %t21)
|
|
%t23 = call ptr @fn_str_concat(ptr %t22, ptr @.str1707)
|
|
call void @fn_emith(ptr %t23)
|
|
br label %ifend8
|
|
ifend8:
|
|
store i32 0, ptr %t24
|
|
br label %wcond9
|
|
wcond9:
|
|
%t25 = load i32, ptr %t24
|
|
%t26 = load ptr, ptr @g_prog
|
|
%t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1
|
|
%t28 = load i32, ptr %t27
|
|
%t29 = icmp slt i32 %t25, %t28
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
br i1 %t31, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t32 = load ptr, ptr @g_prog
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = load i32, ptr %t24
|
|
%t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35
|
|
%t37 = load ptr, ptr %t36
|
|
store ptr %t37, ptr %t38
|
|
%t39 = load ptr, ptr %t38
|
|
%t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 0
|
|
%t41 = load i32, ptr %t40
|
|
%t42 = icmp eq i32 %t41, 8
|
|
%t43 = zext i1 %t42 to i32
|
|
%t44 = icmp ne i32 %t43, 0
|
|
br i1 %t44, label %then12, label %ifend14
|
|
then12:
|
|
%t45 = load ptr, ptr %t38
|
|
%t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1
|
|
%t47 = load ptr, ptr %t46
|
|
%t48 = call ptr @fn_str_concat(ptr @.str1708, ptr %t47)
|
|
%t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str1709)
|
|
%t50 = load ptr, ptr %t7
|
|
%t51 = call ptr @fn_str_concat(ptr %t49, ptr %t50)
|
|
%t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str1710)
|
|
%t53 = load ptr, ptr %t38
|
|
%t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 1
|
|
%t55 = load ptr, ptr %t54
|
|
%t56 = call ptr @fn_str_concat(ptr %t52, ptr %t55)
|
|
%t57 = call ptr @fn_str_concat(ptr %t56, ptr @.str1711)
|
|
call void @fn_emith(ptr %t57)
|
|
%t58 = load ptr, ptr %t38
|
|
%t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 1
|
|
%t60 = load ptr, ptr %t59
|
|
%t61 = call ptr @fn_str_concat(ptr @.str1712, ptr %t60)
|
|
%t62 = call ptr @fn_str_concat(ptr %t61, ptr @.str1713)
|
|
%t63 = load ptr, ptr %t7
|
|
%t64 = call ptr @fn_str_concat(ptr %t62, ptr %t63)
|
|
%t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str1714)
|
|
call void @fn_emith(ptr %t65)
|
|
br label %ifend14
|
|
ifend14:
|
|
%t66 = load ptr, ptr %t38
|
|
%t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 0
|
|
%t68 = load i32, ptr %t67
|
|
%t69 = icmp eq i32 %t68, 10
|
|
%t70 = zext i1 %t69 to i32
|
|
%t71 = icmp ne i32 %t70, 0
|
|
br i1 %t71, label %then15, label %ifend17
|
|
then15:
|
|
%t72 = load ptr, ptr %t38
|
|
%t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1
|
|
%t74 = load ptr, ptr %t73
|
|
%t75 = call ptr @fn_str_concat(ptr @.str1715, ptr %t74)
|
|
%t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str1716)
|
|
call void @fn_emith(ptr %t76)
|
|
br label %ifend17
|
|
ifend17:
|
|
%t77 = load ptr, ptr %t38
|
|
%t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 0
|
|
%t79 = load i32, ptr %t78
|
|
%t80 = icmp eq i32 %t79, 9
|
|
%t81 = zext i1 %t80 to i32
|
|
%t82 = icmp ne i32 %t81, 0
|
|
br i1 %t82, label %then18, label %ifend20
|
|
then18:
|
|
%t83 = load ptr, ptr %t38
|
|
%t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1
|
|
%t85 = load ptr, ptr %t84
|
|
%t86 = call ptr @fn_str_concat(ptr @.str1717, ptr %t85)
|
|
%t87 = call ptr @fn_str_concat(ptr %t86, ptr @.str1718)
|
|
call void @fn_emith(ptr %t87)
|
|
br label %ifend20
|
|
ifend20:
|
|
%t88 = load i32, ptr %t24
|
|
%t89 = add i32 %t88, 1
|
|
store i32 %t89, ptr %t24
|
|
br label %wcond9
|
|
wend11:
|
|
store i32 0, ptr %t90
|
|
br label %wcond21
|
|
wcond21:
|
|
%t91 = load i32, ptr %t90
|
|
%t92 = load ptr, ptr @g_g_toggled_layers
|
|
%t93 = getelementptr inbounds %LSlice, ptr %t92, i32 0, i32 1
|
|
%t94 = load i32, ptr %t93
|
|
%t95 = icmp slt i32 %t91, %t94
|
|
%t96 = zext i1 %t95 to i32
|
|
%t97 = icmp ne i32 %t96, 0
|
|
br i1 %t97, label %wbody22, label %wend23
|
|
wbody22:
|
|
%t98 = load ptr, ptr @g_g_toggled_layers
|
|
%t99 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0
|
|
%t100 = load ptr, ptr %t99
|
|
%t101 = load i32, ptr %t90
|
|
%t102 = getelementptr inbounds ptr, ptr %t100, i32 %t101
|
|
%t103 = load ptr, ptr %t102
|
|
%t104 = call ptr @fn_str_concat(ptr @.str1719, ptr %t103)
|
|
%t105 = call ptr @fn_str_concat(ptr %t104, ptr @.str1720)
|
|
call void @fn_emith(ptr %t105)
|
|
%t106 = load i32, ptr %t90
|
|
%t107 = add i32 %t106, 1
|
|
store i32 %t107, ptr %t90
|
|
br label %wcond21
|
|
wend23:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_ecs_allocator() {
|
|
entry:
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t24 = alloca ptr
|
|
%t0 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t0, ptr %t1
|
|
call void @fn_emit(ptr @.str1721)
|
|
store i32 0, ptr %t2
|
|
br label %wcond0
|
|
wcond0:
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = load ptr, ptr @g_prog
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1
|
|
%t6 = load i32, ptr %t5
|
|
%t7 = icmp slt i32 %t3, %t6
|
|
%t8 = zext i1 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t10 = load ptr, ptr @g_prog
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = load i32, ptr %t2
|
|
%t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 0
|
|
%t17 = load i32, ptr %t16
|
|
%t18 = icmp eq i32 %t17, 8
|
|
%t19 = zext i1 %t18 to i32
|
|
%t20 = icmp ne i32 %t19, 0
|
|
br i1 %t20, label %then3, label %ifend5
|
|
then3:
|
|
%t21 = load i32, ptr %t2
|
|
%t22 = call ptr @fn_itoa(i32 %t21)
|
|
%t23 = call ptr @fn_str_concat(ptr @.str1722, ptr %t22)
|
|
store ptr %t23, ptr %t24
|
|
call void @fn_emit(ptr @.str1723)
|
|
%t25 = load ptr, ptr %t24
|
|
call void @fn_emit(ptr %t25)
|
|
call void @fn_emit(ptr @.str1724)
|
|
%t26 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t26)
|
|
call void @fn_emit(ptr @.str1725)
|
|
%t27 = load ptr, ptr @g_prog
|
|
%t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0
|
|
%t29 = load ptr, ptr %t28
|
|
%t30 = load i32, ptr %t2
|
|
%t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1
|
|
%t34 = load ptr, ptr %t33
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str1726)
|
|
call void @fn_emit(ptr @.str1727)
|
|
%t35 = load ptr, ptr %t24
|
|
call void @fn_emit(ptr %t35)
|
|
call void @fn_emit(ptr @.str1728)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t36 = load i32, ptr %t2
|
|
%t37 = add i32 %t36, 1
|
|
store i32 %t37, ptr %t2
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_emit(ptr @.str1729)
|
|
%t38 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t38)
|
|
call void @fn_emit(ptr @.str1730)
|
|
call void @fn_emit(ptr @.str1731)
|
|
%t39 = call i32 @fn_net_has_owned()
|
|
%t40 = icmp ne i32 %t39, 0
|
|
br i1 %t40, label %then6, label %ifend8
|
|
then6:
|
|
call void @fn_emit(ptr @.str1732)
|
|
%t41 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t41)
|
|
call void @fn_emit(ptr @.str1733)
|
|
call void @fn_emit(ptr @.str1734)
|
|
br label %ifend8
|
|
ifend8:
|
|
call void @fn_emit(ptr @.str1735)
|
|
call void @fn_emit(ptr @.str1736)
|
|
call void @fn_emit(ptr @.str1737)
|
|
call void @fn_emit(ptr @.str1738)
|
|
call void @fn_emit(ptr @.str1739)
|
|
call void @fn_emit(ptr @.str1740)
|
|
call void @fn_emit(ptr @.str1741)
|
|
call void @fn_emit(ptr @.str1742)
|
|
call void @fn_emit(ptr @.str1743)
|
|
%t42 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t42)
|
|
call void @fn_emit(ptr @.str1744)
|
|
call void @fn_emit(ptr @.str1745)
|
|
call void @fn_emit(ptr @.str1746)
|
|
call void @fn_emit(ptr @.str1747)
|
|
call void @fn_emit(ptr @.str1748)
|
|
call void @fn_emit(ptr @.str1749)
|
|
call void @fn_emit(ptr @.str1750)
|
|
call void @fn_emit(ptr @.str1751)
|
|
call void @fn_emit(ptr @.str1752)
|
|
call void @fn_emit(ptr @.str1753)
|
|
call void @fn_emit(ptr @.str1754)
|
|
call void @fn_emit(ptr @.str1755)
|
|
%t43 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t43)
|
|
call void @fn_emit(ptr @.str1756)
|
|
call void @fn_emit(ptr @.str1757)
|
|
call void @fn_emit(ptr @.str1758)
|
|
call void @fn_emit(ptr @.str1759)
|
|
call void @fn_emit(ptr @.str1760)
|
|
%t44 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t44)
|
|
call void @fn_emit(ptr @.str1761)
|
|
call void @fn_emit(ptr @.str1762)
|
|
call void @fn_emit(ptr @.str1763)
|
|
call void @fn_emit(ptr @.str1764)
|
|
call void @fn_emit(ptr @.str1765)
|
|
%t45 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t45)
|
|
call void @fn_emit(ptr @.str1766)
|
|
call void @fn_emit(ptr @.str1767)
|
|
call void @fn_emit(ptr @.str1768)
|
|
call void @fn_emit(ptr @.str1769)
|
|
call void @fn_emit(ptr @.str1770)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_find_arch_id(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t2 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
store i32 1, ptr %t2
|
|
br label %wcond0
|
|
wcond0:
|
|
%t3 = load i32, ptr %t1
|
|
%t4 = load ptr, ptr @g_prog
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1
|
|
%t6 = load i32, ptr %t5
|
|
%t7 = icmp slt i32 %t3, %t6
|
|
%t8 = zext i1 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t10 = load ptr, ptr @g_prog
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = load i32, ptr %t1
|
|
%t14 = getelementptr inbounds ptr, ptr %t12, i32 %t13
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 0
|
|
%t17 = load i32, ptr %t16
|
|
%t18 = icmp eq i32 %t17, 10
|
|
%t19 = zext i1 %t18 to i32
|
|
%t20 = icmp ne i32 %t19, 0
|
|
br i1 %t20, label %then3, label %ifend5
|
|
then3:
|
|
%t21 = load ptr, ptr @g_prog
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = load i32, ptr %t1
|
|
%t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = load ptr, ptr %t0
|
|
%t30 = call i32 @fn_str_eq(ptr %t28, ptr %t29)
|
|
%t31 = icmp ne i32 %t30, 0
|
|
br i1 %t31, label %then6, label %ifend8
|
|
then6:
|
|
%t32 = load i32, ptr %t2
|
|
store i32 %t32, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t33 = load i32, ptr %t2
|
|
%t34 = add i32 %t33, 1
|
|
store i32 %t34, ptr %t2
|
|
br label %ifend5
|
|
ifend5:
|
|
%t35 = load i32, ptr %t1
|
|
%t36 = add i32 %t35, 1
|
|
store i32 %t36, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t37 = load i32, ptr %retval
|
|
ret i32 %t37
|
|
}
|
|
|
|
define void @fn_emit_query(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t42 = alloca ptr
|
|
%t44 = alloca ptr
|
|
%t46 = alloca ptr
|
|
%t48 = alloca ptr
|
|
%t54 = alloca ptr
|
|
%t56 = alloca ptr
|
|
%t63 = alloca ptr
|
|
%t71 = alloca ptr
|
|
%t73 = alloca ptr
|
|
%t80 = alloca ptr
|
|
%t85 = alloca ptr
|
|
%t87 = alloca ptr
|
|
%t95 = alloca ptr
|
|
%t96 = alloca i32
|
|
%t114 = alloca ptr
|
|
%t119 = alloca i32
|
|
%t120 = alloca ptr
|
|
%t126 = alloca ptr
|
|
%t133 = alloca ptr
|
|
%t141 = alloca ptr
|
|
%t147 = alloca ptr
|
|
%t152 = alloca ptr
|
|
%t160 = alloca ptr
|
|
%t170 = alloca ptr
|
|
%t176 = alloca ptr
|
|
%t184 = alloca i32
|
|
%t185 = alloca i32
|
|
%t203 = alloca ptr
|
|
%t204 = alloca i32
|
|
%t232 = alloca ptr
|
|
%t243 = alloca ptr
|
|
%t274 = alloca ptr
|
|
%t281 = alloca ptr
|
|
%t283 = alloca ptr
|
|
%t303 = alloca ptr
|
|
%t308 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t1, ptr %t2
|
|
%t3 = call ptr @fn_emit_alloca(ptr @.str1771)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t4
|
|
call void @fn_store_at(ptr @.str1772, ptr @.str1773, ptr %t5)
|
|
%t6 = load i32, ptr @g_nself
|
|
%t7 = load ptr, ptr @g_self_stk
|
|
%t8 = getelementptr inbounds %LSlice, ptr %t7, i32 0, i32 1
|
|
%t9 = load i32, ptr %t8
|
|
%t10 = icmp slt i32 %t6, %t9
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then0, label %else1
|
|
then0:
|
|
%t13 = load ptr, ptr @g_self_stk
|
|
%t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = load i32, ptr @g_nself
|
|
%t17 = getelementptr inbounds ptr, ptr %t15, i32 %t16
|
|
%t18 = load ptr, ptr %t4
|
|
store ptr %t18, ptr %t17
|
|
br label %ifend2
|
|
else1:
|
|
%t19 = load ptr, ptr @g_self_stk
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 1
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 2
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0
|
|
%t23 = load i32, ptr %t20
|
|
%t24 = load i32, ptr %t21
|
|
%t25 = icmp sge i32 %t23, %t24
|
|
br i1 %t25, label %grow3, label %put4
|
|
grow3:
|
|
%t26 = mul i32 %t24, 2
|
|
%t27 = icmp eq i32 %t24, 0
|
|
%t28 = select i1 %t27, i32 8, i32 %t26
|
|
%t29 = getelementptr ptr, ptr null, i32 1
|
|
%t30 = ptrtoint ptr %t29 to i64
|
|
%t31 = zext i32 %t28 to i64
|
|
%t32 = mul i64 %t31, %t30
|
|
%t33 = load ptr, ptr %t22
|
|
%t34 = call ptr @realloc(ptr %t33, i64 %t32)
|
|
store ptr %t34, ptr %t22
|
|
store i32 %t28, ptr %t21
|
|
br label %put4
|
|
put4:
|
|
%t35 = load ptr, ptr %t4
|
|
%t36 = load ptr, ptr %t22
|
|
%t37 = getelementptr inbounds ptr, ptr %t36, i32 %t23
|
|
store ptr %t35, ptr %t37
|
|
%t38 = add i32 %t23, 1
|
|
store i32 %t38, ptr %t20
|
|
br label %ifend2
|
|
ifend2:
|
|
%t39 = load i32, ptr @g_nself
|
|
%t40 = add i32 %t39, 1
|
|
store i32 %t40, ptr @g_nself
|
|
%t41 = call ptr @fn_lbl(ptr @.str1774)
|
|
store ptr %t41, ptr %t42
|
|
%t43 = call ptr @fn_lbl(ptr @.str1775)
|
|
store ptr %t43, ptr %t44
|
|
%t45 = call ptr @fn_lbl(ptr @.str1776)
|
|
store ptr %t45, ptr %t46
|
|
%t47 = call ptr @fn_lbl(ptr @.str1777)
|
|
store ptr %t47, ptr %t48
|
|
call void @fn_emit(ptr @.str1778)
|
|
%t49 = load ptr, ptr %t42
|
|
call void @fn_emit(ptr %t49)
|
|
call void @fn_emit(ptr @.str1779)
|
|
%t50 = load ptr, ptr %t42
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str1780)
|
|
%t51 = load ptr, ptr %t4
|
|
%t52 = call ptr @fn_str_concat(ptr @.str1781, ptr %t51)
|
|
%t53 = call ptr @fn_emit_bind(ptr %t52)
|
|
store ptr %t53, ptr %t54
|
|
%t55 = call ptr @fn_emit_bind(ptr @.str1782)
|
|
store ptr %t55, ptr %t56
|
|
%t57 = load ptr, ptr %t54
|
|
%t58 = call ptr @fn_str_concat(ptr @.str1783, ptr %t57)
|
|
%t59 = call ptr @fn_str_concat(ptr %t58, ptr @.str1784)
|
|
%t60 = load ptr, ptr %t56
|
|
%t61 = call ptr @fn_str_concat(ptr %t59, ptr %t60)
|
|
%t62 = call ptr @fn_emit_bind(ptr %t61)
|
|
store ptr %t62, ptr %t63
|
|
call void @fn_emit(ptr @.str1785)
|
|
%t64 = load ptr, ptr %t63
|
|
call void @fn_emit(ptr %t64)
|
|
call void @fn_emit(ptr @.str1786)
|
|
%t65 = load ptr, ptr %t44
|
|
call void @fn_emit(ptr %t65)
|
|
call void @fn_emit(ptr @.str1787)
|
|
%t66 = load ptr, ptr %t48
|
|
call void @fn_emit(ptr %t66)
|
|
call void @fn_emit(ptr @.str1788)
|
|
%t67 = load ptr, ptr %t44
|
|
call void @fn_emit(ptr %t67)
|
|
call void @fn_emit(ptr @.str1789)
|
|
store i32 0, ptr @g_g_term
|
|
%t68 = load ptr, ptr %t4
|
|
%t69 = call ptr @fn_str_concat(ptr @.str1790, ptr %t68)
|
|
%t70 = call ptr @fn_emit_bind(ptr %t69)
|
|
store ptr %t70, ptr %t71
|
|
%t72 = call ptr @fn_nreg()
|
|
store ptr %t72, ptr %t73
|
|
call void @fn_emit(ptr @.str1791)
|
|
%t74 = load ptr, ptr %t73
|
|
call void @fn_emit(ptr %t74)
|
|
call void @fn_emit(ptr @.str1792)
|
|
%t75 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t75)
|
|
call void @fn_emit(ptr @.str1793)
|
|
%t76 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t76)
|
|
call void @fn_emit(ptr @.str1794)
|
|
%t77 = load ptr, ptr %t73
|
|
%t78 = call ptr @fn_str_concat(ptr @.str1795, ptr %t77)
|
|
%t79 = call ptr @fn_emit_bind(ptr %t78)
|
|
store ptr %t79, ptr %t80
|
|
%t81 = load ptr, ptr %t80
|
|
%t82 = call ptr @fn_str_concat(ptr @.str1796, ptr %t81)
|
|
%t83 = call ptr @fn_str_concat(ptr %t82, ptr @.str1797)
|
|
%t84 = call ptr @fn_emit_bind(ptr %t83)
|
|
store ptr %t84, ptr %t85
|
|
%t86 = call ptr @fn_lbl(ptr @.str1798)
|
|
store ptr %t86, ptr %t87
|
|
call void @fn_emit(ptr @.str1799)
|
|
%t88 = load ptr, ptr %t85
|
|
call void @fn_emit(ptr %t88)
|
|
call void @fn_emit(ptr @.str1800)
|
|
%t89 = load ptr, ptr %t87
|
|
call void @fn_emit(ptr %t89)
|
|
call void @fn_emit(ptr @.str1801)
|
|
%t90 = load ptr, ptr %t46
|
|
call void @fn_emit(ptr %t90)
|
|
call void @fn_emit(ptr @.str1802)
|
|
%t91 = load ptr, ptr %t87
|
|
call void @fn_emit(ptr %t91)
|
|
call void @fn_emit(ptr @.str1803)
|
|
%t92 = load ptr, ptr %t0
|
|
%t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 6
|
|
%t94 = load ptr, ptr %t93
|
|
store ptr %t94, ptr %t95
|
|
store i32 0, ptr %t96
|
|
br label %wcond5
|
|
wcond5:
|
|
%t97 = load i32, ptr %t96
|
|
%t98 = load ptr, ptr %t95
|
|
%t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 7
|
|
%t100 = load ptr, ptr %t99
|
|
%t101 = getelementptr inbounds %LSlice, ptr %t100, i32 0, i32 1
|
|
%t102 = load i32, ptr %t101
|
|
%t103 = icmp slt i32 %t97, %t102
|
|
%t104 = zext i1 %t103 to i32
|
|
%t105 = icmp ne i32 %t104, 0
|
|
br i1 %t105, label %wbody6, label %wend7
|
|
wbody6:
|
|
%t106 = load ptr, ptr %t95
|
|
%t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 7
|
|
%t108 = load ptr, ptr %t107
|
|
%t109 = getelementptr inbounds %LSlice, ptr %t108, i32 0, i32 0
|
|
%t110 = load ptr, ptr %t109
|
|
%t111 = load i32, ptr %t96
|
|
%t112 = getelementptr inbounds ptr, ptr %t110, i32 %t111
|
|
%t113 = load ptr, ptr %t112
|
|
store ptr %t113, ptr %t114
|
|
%t115 = load ptr, ptr %t114
|
|
%t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 1
|
|
%t117 = load ptr, ptr %t116
|
|
%t118 = call i32 @fn_find_arch_id(ptr %t117)
|
|
store i32 %t118, ptr %t119
|
|
store ptr @.str1804, ptr %t120
|
|
%t121 = load i32, ptr %t119
|
|
%t122 = icmp sgt i32 %t121, 0
|
|
%t123 = zext i1 %t122 to i32
|
|
%t124 = icmp ne i32 %t123, 0
|
|
br i1 %t124, label %then8, label %else9
|
|
then8:
|
|
%t125 = call ptr @fn_nreg()
|
|
store ptr %t125, ptr %t126
|
|
call void @fn_emit(ptr @.str1805)
|
|
%t127 = load ptr, ptr %t126
|
|
call void @fn_emit(ptr %t127)
|
|
call void @fn_emit(ptr @.str1806)
|
|
%t128 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t128)
|
|
call void @fn_emit(ptr @.str1807)
|
|
%t129 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t129)
|
|
call void @fn_emit(ptr @.str1808)
|
|
%t130 = load ptr, ptr %t126
|
|
%t131 = call ptr @fn_str_concat(ptr @.str1809, ptr %t130)
|
|
%t132 = call ptr @fn_emit_bind(ptr %t131)
|
|
store ptr %t132, ptr %t133
|
|
%t134 = load ptr, ptr %t133
|
|
%t135 = call ptr @fn_str_concat(ptr @.str1810, ptr %t134)
|
|
%t136 = call ptr @fn_str_concat(ptr %t135, ptr @.str1811)
|
|
%t137 = load i32, ptr %t119
|
|
%t138 = call ptr @fn_itoa(i32 %t137)
|
|
%t139 = call ptr @fn_str_concat(ptr %t136, ptr %t138)
|
|
%t140 = call ptr @fn_emit_bind(ptr %t139)
|
|
store ptr %t140, ptr %t141
|
|
%t142 = load ptr, ptr %t114
|
|
%t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 1
|
|
%t144 = load ptr, ptr %t143
|
|
%t145 = call ptr @fn_str_concat(ptr @.str1812, ptr %t144)
|
|
%t146 = call ptr @fn_emit_bind(ptr %t145)
|
|
store ptr %t146, ptr %t147
|
|
%t148 = load ptr, ptr %t147
|
|
%t149 = call ptr @fn_str_concat(ptr @.str1813, ptr %t148)
|
|
%t150 = call ptr @fn_str_concat(ptr %t149, ptr @.str1814)
|
|
%t151 = call ptr @fn_emit_bind(ptr %t150)
|
|
store ptr %t151, ptr %t152
|
|
%t153 = load ptr, ptr %t141
|
|
%t154 = call ptr @fn_str_concat(ptr @.str1815, ptr %t153)
|
|
%t155 = call ptr @fn_str_concat(ptr %t154, ptr @.str1816)
|
|
%t156 = load ptr, ptr %t152
|
|
%t157 = call ptr @fn_str_concat(ptr %t155, ptr %t156)
|
|
%t158 = call ptr @fn_emit_bind(ptr %t157)
|
|
store ptr %t158, ptr %t120
|
|
br label %ifend10
|
|
else9:
|
|
%t159 = call ptr @fn_nreg()
|
|
store ptr %t159, ptr %t160
|
|
call void @fn_emit(ptr @.str1817)
|
|
%t161 = load ptr, ptr %t160
|
|
call void @fn_emit(ptr %t161)
|
|
call void @fn_emit(ptr @.str1818)
|
|
%t162 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t162)
|
|
call void @fn_emit(ptr @.str1819)
|
|
%t163 = load ptr, ptr %t114
|
|
%t164 = getelementptr inbounds %Cmp_Node, ptr %t163, i32 0, i32 1
|
|
%t165 = load ptr, ptr %t164
|
|
call void @fn_emit(ptr %t165)
|
|
call void @fn_emit(ptr @.str1820)
|
|
%t166 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t166)
|
|
call void @fn_emit(ptr @.str1821)
|
|
%t167 = load ptr, ptr %t160
|
|
%t168 = call ptr @fn_str_concat(ptr @.str1822, ptr %t167)
|
|
%t169 = call ptr @fn_emit_bind(ptr %t168)
|
|
store ptr %t169, ptr %t170
|
|
%t171 = load ptr, ptr %t170
|
|
%t172 = call ptr @fn_str_concat(ptr @.str1823, ptr %t171)
|
|
%t173 = call ptr @fn_str_concat(ptr %t172, ptr @.str1824)
|
|
%t174 = call ptr @fn_emit_bind(ptr %t173)
|
|
store ptr %t174, ptr %t120
|
|
br label %ifend10
|
|
ifend10:
|
|
%t175 = call ptr @fn_lbl(ptr @.str1825)
|
|
store ptr %t175, ptr %t176
|
|
call void @fn_emit(ptr @.str1826)
|
|
%t177 = load ptr, ptr %t120
|
|
call void @fn_emit(ptr %t177)
|
|
call void @fn_emit(ptr @.str1827)
|
|
%t178 = load ptr, ptr %t176
|
|
call void @fn_emit(ptr %t178)
|
|
call void @fn_emit(ptr @.str1828)
|
|
%t179 = load ptr, ptr %t46
|
|
call void @fn_emit(ptr %t179)
|
|
call void @fn_emit(ptr @.str1829)
|
|
%t180 = load ptr, ptr %t176
|
|
call void @fn_emit(ptr %t180)
|
|
call void @fn_emit(ptr @.str1830)
|
|
%t181 = load i32, ptr %t96
|
|
%t182 = add i32 %t181, 1
|
|
store i32 %t182, ptr %t96
|
|
br label %wcond5
|
|
wend7:
|
|
%t183 = load i32, ptr @g_nloc
|
|
store i32 %t183, ptr %t184
|
|
store i32 0, ptr %t185
|
|
store i32 0, ptr %t96
|
|
br label %wcond11
|
|
wcond11:
|
|
%t186 = load i32, ptr %t96
|
|
%t187 = load ptr, ptr %t95
|
|
%t188 = getelementptr inbounds %Cmp_Node, ptr %t187, i32 0, i32 7
|
|
%t189 = load ptr, ptr %t188
|
|
%t190 = getelementptr inbounds %LSlice, ptr %t189, i32 0, i32 1
|
|
%t191 = load i32, ptr %t190
|
|
%t192 = icmp slt i32 %t186, %t191
|
|
%t193 = zext i1 %t192 to i32
|
|
%t194 = icmp ne i32 %t193, 0
|
|
br i1 %t194, label %wbody12, label %wend13
|
|
wbody12:
|
|
%t195 = load ptr, ptr %t95
|
|
%t196 = getelementptr inbounds %Cmp_Node, ptr %t195, i32 0, i32 7
|
|
%t197 = load ptr, ptr %t196
|
|
%t198 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 0
|
|
%t199 = load ptr, ptr %t198
|
|
%t200 = load i32, ptr %t96
|
|
%t201 = getelementptr inbounds ptr, ptr %t199, i32 %t200
|
|
%t202 = load ptr, ptr %t201
|
|
store ptr %t202, ptr %t203
|
|
%t205 = load ptr, ptr %t203
|
|
%t206 = getelementptr inbounds %Cmp_Node, ptr %t205, i32 0, i32 2
|
|
%t207 = load i32, ptr %t206
|
|
%t208 = icmp eq i32 %t207, 0
|
|
%t209 = zext i1 %t208 to i32
|
|
%t210 = icmp ne i32 %t209, 0
|
|
%t211 = zext i1 %t210 to i32
|
|
store i32 %t211, ptr %t204
|
|
br i1 %t210, label %sc14, label %scend15
|
|
sc14:
|
|
%t212 = load ptr, ptr %t203
|
|
%t213 = getelementptr inbounds %Cmp_Node, ptr %t212, i32 0, i32 1
|
|
%t214 = load ptr, ptr %t213
|
|
%t215 = call i32 @fn_find_arch_id(ptr %t214)
|
|
%t216 = icmp eq i32 %t215, 0
|
|
%t217 = zext i1 %t216 to i32
|
|
%t218 = icmp ne i32 %t217, 0
|
|
%t219 = zext i1 %t218 to i32
|
|
store i32 %t219, ptr %t204
|
|
br label %scend15
|
|
scend15:
|
|
%t220 = load i32, ptr %t204
|
|
%t221 = icmp ne i32 %t220, 0
|
|
br i1 %t221, label %then16, label %ifend18
|
|
then16:
|
|
%t222 = load i32, ptr %t185
|
|
%t223 = load ptr, ptr %t0
|
|
%t224 = getelementptr inbounds %Cmp_Node, ptr %t223, i32 0, i32 7
|
|
%t225 = load ptr, ptr %t224
|
|
%t226 = getelementptr inbounds %LSlice, ptr %t225, i32 0, i32 1
|
|
%t227 = load i32, ptr %t226
|
|
%t228 = icmp slt i32 %t222, %t227
|
|
%t229 = zext i1 %t228 to i32
|
|
%t230 = icmp ne i32 %t229, 0
|
|
br i1 %t230, label %then19, label %ifend21
|
|
then19:
|
|
%t231 = call ptr @fn_nreg()
|
|
store ptr %t231, ptr %t232
|
|
call void @fn_emit(ptr @.str1831)
|
|
%t233 = load ptr, ptr %t232
|
|
call void @fn_emit(ptr %t233)
|
|
call void @fn_emit(ptr @.str1832)
|
|
%t234 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t234)
|
|
call void @fn_emit(ptr @.str1833)
|
|
%t235 = load ptr, ptr %t203
|
|
%t236 = getelementptr inbounds %Cmp_Node, ptr %t235, i32 0, i32 1
|
|
%t237 = load ptr, ptr %t236
|
|
call void @fn_emit(ptr %t237)
|
|
call void @fn_emit(ptr @.str1834)
|
|
%t238 = load ptr, ptr %t203
|
|
%t239 = getelementptr inbounds %Cmp_Node, ptr %t238, i32 0, i32 1
|
|
%t240 = load ptr, ptr %t239
|
|
call void @fn_emit(ptr %t240)
|
|
call void @fn_emit(ptr @.str1835)
|
|
%t241 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t241)
|
|
call void @fn_emit(ptr @.str1836)
|
|
%t242 = call ptr @fn_emit_alloca(ptr @.str1837)
|
|
store ptr %t242, ptr %t243
|
|
call void @fn_emit(ptr @.str1838)
|
|
%t244 = load ptr, ptr %t232
|
|
call void @fn_emit(ptr %t244)
|
|
call void @fn_emit(ptr @.str1839)
|
|
%t245 = load ptr, ptr %t243
|
|
call void @fn_emit(ptr %t245)
|
|
call void @fn_emit(ptr @.str1840)
|
|
%t246 = load ptr, ptr %t0
|
|
%t247 = getelementptr inbounds %Cmp_Node, ptr %t246, i32 0, i32 7
|
|
%t248 = load ptr, ptr %t247
|
|
%t249 = getelementptr inbounds %LSlice, ptr %t248, i32 0, i32 0
|
|
%t250 = load ptr, ptr %t249
|
|
%t251 = load i32, ptr %t185
|
|
%t252 = getelementptr inbounds ptr, ptr %t250, i32 %t251
|
|
%t253 = load ptr, ptr %t252
|
|
%t254 = getelementptr inbounds %Cmp_Node, ptr %t253, i32 0, i32 1
|
|
%t255 = load ptr, ptr %t254
|
|
%t256 = load ptr, ptr %t243
|
|
%t257 = load ptr, ptr %t203
|
|
%t258 = getelementptr inbounds %Cmp_Node, ptr %t257, i32 0, i32 1
|
|
%t259 = load ptr, ptr %t258
|
|
call void @fn_loc_push(ptr %t255, ptr %t256, ptr %t259)
|
|
%t260 = load i32, ptr %t185
|
|
%t261 = add i32 %t260, 1
|
|
store i32 %t261, ptr %t185
|
|
br label %ifend21
|
|
ifend21:
|
|
br label %ifend18
|
|
ifend18:
|
|
%t262 = load i32, ptr %t96
|
|
%t263 = add i32 %t262, 1
|
|
store i32 %t263, ptr %t96
|
|
br label %wcond11
|
|
wend13:
|
|
%t264 = load ptr, ptr %t0
|
|
%t265 = getelementptr inbounds %Cmp_Node, ptr %t264, i32 0, i32 5
|
|
%t266 = load ptr, ptr %t265
|
|
%t267 = icmp ne ptr %t266, null
|
|
%t268 = zext i1 %t267 to i32
|
|
%t269 = icmp ne i32 %t268, 0
|
|
br i1 %t269, label %then22, label %ifend24
|
|
then22:
|
|
%t270 = load ptr, ptr %t0
|
|
%t271 = getelementptr inbounds %Cmp_Node, ptr %t270, i32 0, i32 5
|
|
%t272 = load ptr, ptr %t271
|
|
%t273 = call ptr @fn_emit_expr(ptr %t272)
|
|
store ptr %t273, ptr %t274
|
|
%t275 = load ptr, ptr %t274
|
|
%t276 = getelementptr inbounds %Cmp_Val, ptr %t275, i32 0, i32 0
|
|
%t277 = load ptr, ptr %t276
|
|
%t278 = call ptr @fn_str_concat(ptr @.str1841, ptr %t277)
|
|
%t279 = call ptr @fn_str_concat(ptr %t278, ptr @.str1842)
|
|
%t280 = call ptr @fn_emit_bind(ptr %t279)
|
|
store ptr %t280, ptr %t281
|
|
%t282 = call ptr @fn_lbl(ptr @.str1843)
|
|
store ptr %t282, ptr %t283
|
|
call void @fn_emit(ptr @.str1844)
|
|
%t284 = load ptr, ptr %t281
|
|
call void @fn_emit(ptr %t284)
|
|
call void @fn_emit(ptr @.str1845)
|
|
%t285 = load ptr, ptr %t283
|
|
call void @fn_emit(ptr %t285)
|
|
call void @fn_emit(ptr @.str1846)
|
|
%t286 = load ptr, ptr %t46
|
|
call void @fn_emit(ptr %t286)
|
|
call void @fn_emit(ptr @.str1847)
|
|
%t287 = load ptr, ptr %t283
|
|
call void @fn_emit(ptr %t287)
|
|
call void @fn_emit(ptr @.str1848)
|
|
br label %ifend24
|
|
ifend24:
|
|
%t288 = load ptr, ptr %t46
|
|
%t289 = load ptr, ptr %t48
|
|
call void @fn_loop_push(ptr %t288, ptr %t289)
|
|
%t290 = load ptr, ptr %t0
|
|
%t291 = getelementptr inbounds %Cmp_Node, ptr %t290, i32 0, i32 4
|
|
%t292 = load ptr, ptr %t291
|
|
call void @fn_emit_block(ptr %t292)
|
|
call void @fn_loop_pop()
|
|
%t293 = load i32, ptr %t184
|
|
store i32 %t293, ptr @g_nloc
|
|
%t294 = load i32, ptr @g_g_term
|
|
%t295 = icmp eq i32 %t294, 0
|
|
%t296 = zext i1 %t295 to i32
|
|
%t297 = icmp ne i32 %t296, 0
|
|
br i1 %t297, label %then25, label %ifend27
|
|
then25:
|
|
call void @fn_emit(ptr @.str1849)
|
|
%t298 = load ptr, ptr %t46
|
|
call void @fn_emit(ptr %t298)
|
|
call void @fn_emit(ptr @.str1850)
|
|
br label %ifend27
|
|
ifend27:
|
|
%t299 = load ptr, ptr %t46
|
|
call void @fn_emit(ptr %t299)
|
|
call void @fn_emit(ptr @.str1851)
|
|
%t300 = load ptr, ptr %t4
|
|
%t301 = call ptr @fn_str_concat(ptr @.str1852, ptr %t300)
|
|
%t302 = call ptr @fn_emit_bind(ptr %t301)
|
|
store ptr %t302, ptr %t303
|
|
%t304 = load ptr, ptr %t303
|
|
%t305 = call ptr @fn_str_concat(ptr @.str1853, ptr %t304)
|
|
%t306 = call ptr @fn_str_concat(ptr %t305, ptr @.str1854)
|
|
%t307 = call ptr @fn_emit_bind(ptr %t306)
|
|
store ptr %t307, ptr %t308
|
|
%t309 = load ptr, ptr %t308
|
|
%t310 = load ptr, ptr %t4
|
|
call void @fn_store_at(ptr @.str1855, ptr %t309, ptr %t310)
|
|
call void @fn_emit(ptr @.str1856)
|
|
%t311 = load ptr, ptr %t42
|
|
call void @fn_emit(ptr %t311)
|
|
call void @fn_emit(ptr @.str1857)
|
|
%t312 = load ptr, ptr %t48
|
|
call void @fn_emit(ptr %t312)
|
|
call void @fn_emit(ptr @.str1858)
|
|
store i32 0, ptr @g_g_term
|
|
%t313 = load i32, ptr @g_nself
|
|
%t314 = sub i32 %t313, 1
|
|
store i32 %t314, ptr @g_nself
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_init_component(ptr %arg_e, ptr %arg_comp, ptr %arg_rec) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t15 = alloca ptr
|
|
%t22 = alloca ptr
|
|
%t28 = alloca i32
|
|
%t46 = alloca ptr
|
|
%t48 = alloca ptr
|
|
%t58 = alloca ptr
|
|
%t59 = alloca ptr
|
|
%t73 = alloca ptr
|
|
%t86 = alloca i32
|
|
%t104 = alloca ptr
|
|
%t110 = alloca i32
|
|
%t116 = alloca ptr
|
|
%t126 = alloca ptr
|
|
%t141 = alloca ptr
|
|
%t147 = alloca i32
|
|
%t149 = alloca ptr
|
|
%t160 = alloca ptr
|
|
store ptr %arg_e, ptr %t0
|
|
store ptr %arg_comp, ptr %t1
|
|
store ptr %arg_rec, ptr %t2
|
|
%t3 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t1
|
|
%t6 = call ptr @fn_find_comp(ptr %t5)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = icmp eq ptr %t8, null
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %then0, label %ifend2
|
|
then0:
|
|
%t12 = load ptr, ptr %t1
|
|
%t13 = call ptr @fn_str_concat(ptr @.str1859, ptr %t12)
|
|
call void @fn_perr(ptr %t13)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t14 = call ptr @fn_nreg()
|
|
store ptr %t14, ptr %t15
|
|
call void @fn_emit(ptr @.str1860)
|
|
%t16 = load ptr, ptr %t15
|
|
call void @fn_emit(ptr %t16)
|
|
call void @fn_emit(ptr @.str1861)
|
|
%t17 = load ptr, ptr %t4
|
|
call void @fn_emit(ptr %t17)
|
|
call void @fn_emit(ptr @.str1862)
|
|
%t18 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t18)
|
|
call void @fn_emit(ptr @.str1863)
|
|
%t19 = load ptr, ptr %t0
|
|
call void @fn_emit(ptr %t19)
|
|
call void @fn_emit(ptr @.str1864)
|
|
call void @fn_emit(ptr @.str1865)
|
|
%t20 = load ptr, ptr %t15
|
|
call void @fn_emit(ptr %t20)
|
|
call void @fn_emit(ptr @.str1866)
|
|
%t21 = call ptr @fn_nreg()
|
|
store ptr %t21, ptr %t22
|
|
call void @fn_emit(ptr @.str1867)
|
|
%t23 = load ptr, ptr %t22
|
|
call void @fn_emit(ptr %t23)
|
|
call void @fn_emit(ptr @.str1868)
|
|
%t24 = load ptr, ptr %t4
|
|
call void @fn_emit(ptr %t24)
|
|
call void @fn_emit(ptr @.str1869)
|
|
%t25 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t25)
|
|
call void @fn_emit(ptr @.str1870)
|
|
%t26 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t26)
|
|
call void @fn_emit(ptr @.str1871)
|
|
%t27 = load ptr, ptr %t0
|
|
call void @fn_emit(ptr %t27)
|
|
call void @fn_emit(ptr @.str1872)
|
|
store i32 0, ptr %t28
|
|
br label %wcond3
|
|
wcond3:
|
|
%t29 = load i32, ptr %t28
|
|
%t30 = load ptr, ptr %t7
|
|
%t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1
|
|
%t34 = load i32, ptr %t33
|
|
%t35 = icmp slt i32 %t29, %t34
|
|
%t36 = zext i1 %t35 to i32
|
|
%t37 = icmp ne i32 %t36, 0
|
|
br i1 %t37, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t38 = load ptr, ptr %t7
|
|
%t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 7
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0
|
|
%t42 = load ptr, ptr %t41
|
|
%t43 = load i32, ptr %t28
|
|
%t44 = getelementptr inbounds ptr, ptr %t42, i32 %t43
|
|
%t45 = load ptr, ptr %t44
|
|
store ptr %t45, ptr %t46
|
|
%t47 = call ptr @fn_nreg()
|
|
store ptr %t47, ptr %t48
|
|
call void @fn_emit(ptr @.str1873)
|
|
%t49 = load ptr, ptr %t48
|
|
call void @fn_emit(ptr %t49)
|
|
call void @fn_emit(ptr @.str1874)
|
|
%t50 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str1875)
|
|
%t51 = load ptr, ptr %t22
|
|
call void @fn_emit(ptr %t51)
|
|
call void @fn_emit(ptr @.str1876)
|
|
%t52 = load i32, ptr %t28
|
|
%t53 = call ptr @fn_itoa(i32 %t52)
|
|
call void @fn_emit(ptr %t53)
|
|
call void @fn_emit(ptr @.str1877)
|
|
%t54 = load ptr, ptr %t46
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 3
|
|
%t56 = load ptr, ptr %t55
|
|
%t57 = call ptr @fn_llty(ptr %t56)
|
|
store ptr %t57, ptr %t58
|
|
store ptr @.str1878, ptr %t59
|
|
%t60 = load ptr, ptr %t58
|
|
%t61 = call i32 @fn_str_eq(ptr %t60, ptr @.str1879)
|
|
%t62 = icmp ne i32 %t61, 0
|
|
br i1 %t62, label %then6, label %ifend8
|
|
then6:
|
|
store ptr @.str1880, ptr %t59
|
|
br label %ifend8
|
|
ifend8:
|
|
%t63 = load ptr, ptr %t46
|
|
%t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 4
|
|
%t65 = load ptr, ptr %t64
|
|
%t66 = icmp ne ptr %t65, null
|
|
%t67 = zext i1 %t66 to i32
|
|
%t68 = icmp ne i32 %t67, 0
|
|
br i1 %t68, label %then9, label %ifend11
|
|
then9:
|
|
%t69 = load ptr, ptr %t46
|
|
%t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 4
|
|
%t71 = load ptr, ptr %t70
|
|
%t72 = call ptr @fn_emit_expr(ptr %t71)
|
|
store ptr %t72, ptr %t73
|
|
%t74 = load ptr, ptr %t73
|
|
%t75 = getelementptr inbounds %Cmp_Val, ptr %t74, i32 0, i32 0
|
|
%t76 = load ptr, ptr %t75
|
|
store ptr %t76, ptr %t59
|
|
br label %ifend11
|
|
ifend11:
|
|
call void @fn_emit(ptr @.str1881)
|
|
%t77 = load ptr, ptr %t58
|
|
call void @fn_emit(ptr %t77)
|
|
call void @fn_emit(ptr @.str1882)
|
|
%t78 = load ptr, ptr %t59
|
|
call void @fn_emit(ptr %t78)
|
|
call void @fn_emit(ptr @.str1883)
|
|
%t79 = load ptr, ptr %t48
|
|
call void @fn_emit(ptr %t79)
|
|
call void @fn_emit(ptr @.str1884)
|
|
%t80 = load i32, ptr %t28
|
|
%t81 = add i32 %t80, 1
|
|
store i32 %t81, ptr %t28
|
|
br label %wcond3
|
|
wend5:
|
|
%t82 = load ptr, ptr %t2
|
|
%t83 = icmp ne ptr %t82, null
|
|
%t84 = zext i1 %t83 to i32
|
|
%t85 = icmp ne i32 %t84, 0
|
|
br i1 %t85, label %then12, label %ifend14
|
|
then12:
|
|
store i32 0, ptr %t86
|
|
br label %wcond15
|
|
wcond15:
|
|
%t87 = load i32, ptr %t86
|
|
%t88 = load ptr, ptr %t2
|
|
%t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 7
|
|
%t90 = load ptr, ptr %t89
|
|
%t91 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 1
|
|
%t92 = load i32, ptr %t91
|
|
%t93 = icmp slt i32 %t87, %t92
|
|
%t94 = zext i1 %t93 to i32
|
|
%t95 = icmp ne i32 %t94, 0
|
|
br i1 %t95, label %wbody16, label %wend17
|
|
wbody16:
|
|
%t96 = load ptr, ptr %t2
|
|
%t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 7
|
|
%t98 = load ptr, ptr %t97
|
|
%t99 = getelementptr inbounds %LSlice, ptr %t98, i32 0, i32 0
|
|
%t100 = load ptr, ptr %t99
|
|
%t101 = load i32, ptr %t86
|
|
%t102 = getelementptr inbounds ptr, ptr %t100, i32 %t101
|
|
%t103 = load ptr, ptr %t102
|
|
store ptr %t103, ptr %t104
|
|
%t105 = load ptr, ptr %t7
|
|
%t106 = load ptr, ptr %t104
|
|
%t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 1
|
|
%t108 = load ptr, ptr %t107
|
|
%t109 = call i32 @fn_field_index(ptr %t105, ptr %t108)
|
|
store i32 %t109, ptr %t110
|
|
%t111 = load i32, ptr %t110
|
|
%t112 = icmp sge i32 %t111, 0
|
|
%t113 = zext i1 %t112 to i32
|
|
%t114 = icmp ne i32 %t113, 0
|
|
br i1 %t114, label %then18, label %ifend20
|
|
then18:
|
|
%t115 = call ptr @fn_nreg()
|
|
store ptr %t115, ptr %t116
|
|
call void @fn_emit(ptr @.str1885)
|
|
%t117 = load ptr, ptr %t116
|
|
call void @fn_emit(ptr %t117)
|
|
call void @fn_emit(ptr @.str1886)
|
|
%t118 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t118)
|
|
call void @fn_emit(ptr @.str1887)
|
|
%t119 = load ptr, ptr %t22
|
|
call void @fn_emit(ptr %t119)
|
|
call void @fn_emit(ptr @.str1888)
|
|
%t120 = load i32, ptr %t110
|
|
%t121 = call ptr @fn_itoa(i32 %t120)
|
|
call void @fn_emit(ptr %t121)
|
|
call void @fn_emit(ptr @.str1889)
|
|
%t122 = load ptr, ptr %t104
|
|
%t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 4
|
|
%t124 = load ptr, ptr %t123
|
|
%t125 = call ptr @fn_emit_expr(ptr %t124)
|
|
store ptr %t125, ptr %t126
|
|
call void @fn_emit(ptr @.str1890)
|
|
%t127 = load ptr, ptr %t7
|
|
%t128 = load ptr, ptr %t104
|
|
%t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 1
|
|
%t130 = load ptr, ptr %t129
|
|
%t131 = call ptr @fn_field_type(ptr %t127, ptr %t130)
|
|
%t132 = call ptr @fn_llty(ptr %t131)
|
|
call void @fn_emit(ptr %t132)
|
|
call void @fn_emit(ptr @.str1891)
|
|
%t133 = load ptr, ptr %t126
|
|
%t134 = getelementptr inbounds %Cmp_Val, ptr %t133, i32 0, i32 0
|
|
%t135 = load ptr, ptr %t134
|
|
call void @fn_emit(ptr %t135)
|
|
call void @fn_emit(ptr @.str1892)
|
|
%t136 = load ptr, ptr %t116
|
|
call void @fn_emit(ptr %t136)
|
|
call void @fn_emit(ptr @.str1893)
|
|
br label %ifend20
|
|
ifend20:
|
|
%t137 = load i32, ptr %t86
|
|
%t138 = add i32 %t137, 1
|
|
store i32 %t138, ptr %t86
|
|
br label %wcond15
|
|
wend17:
|
|
br label %ifend14
|
|
ifend14:
|
|
%t139 = load ptr, ptr %t1
|
|
%t140 = call ptr @fn_onattach_body(ptr %t139)
|
|
store ptr %t140, ptr %t141
|
|
%t142 = load ptr, ptr %t141
|
|
%t143 = icmp ne ptr %t142, null
|
|
%t144 = zext i1 %t143 to i32
|
|
%t145 = icmp ne i32 %t144, 0
|
|
br i1 %t145, label %then21, label %ifend23
|
|
then21:
|
|
%t146 = load i32, ptr @g_nloc
|
|
store i32 %t146, ptr %t147
|
|
%t148 = call ptr @fn_emit_alloca(ptr @.str1894)
|
|
store ptr %t148, ptr %t149
|
|
call void @fn_emit(ptr @.str1895)
|
|
%t150 = load ptr, ptr %t22
|
|
call void @fn_emit(ptr %t150)
|
|
call void @fn_emit(ptr @.str1896)
|
|
%t151 = load ptr, ptr %t149
|
|
call void @fn_emit(ptr %t151)
|
|
call void @fn_emit(ptr @.str1897)
|
|
%t152 = load ptr, ptr %t1
|
|
%t153 = load ptr, ptr %t149
|
|
%t154 = load ptr, ptr %t1
|
|
call void @fn_loc_push(ptr %t152, ptr %t153, ptr %t154)
|
|
%t155 = load ptr, ptr %t141
|
|
call void @fn_emit_block(ptr %t155)
|
|
%t156 = load i32, ptr %t147
|
|
store i32 %t156, ptr @g_nloc
|
|
br label %ifend23
|
|
ifend23:
|
|
%t157 = load ptr, ptr %t1
|
|
%t158 = call ptr @fn_str_concat(ptr @.str1898, ptr %t157)
|
|
%t159 = call ptr @fn_str_concat(ptr %t158, ptr @.str1899)
|
|
store ptr %t159, ptr %t160
|
|
%t161 = load ptr, ptr %t160
|
|
%t162 = call ptr @fn_find_event(ptr %t161)
|
|
%t163 = icmp ne ptr %t162, null
|
|
%t164 = zext i1 %t163 to i32
|
|
%t165 = icmp ne i32 %t164, 0
|
|
br i1 %t165, label %then24, label %ifend26
|
|
then24:
|
|
call void @fn_emit(ptr @.str1900)
|
|
%t166 = load ptr, ptr %t160
|
|
call void @fn_emit(ptr %t166)
|
|
call void @fn_emit(ptr @.str1901)
|
|
%t167 = load ptr, ptr %t0
|
|
call void @fn_emit(ptr %t167)
|
|
call void @fn_emit(ptr @.str1902)
|
|
br label %ifend26
|
|
ifend26:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_bind_props(ptr %arg_model, ptr %arg_e) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t4 = alloca i32
|
|
%t24 = alloca ptr
|
|
%t26 = alloca ptr
|
|
%t33 = alloca ptr
|
|
store ptr %arg_model, ptr %t0
|
|
store ptr %arg_e, ptr %t1
|
|
%t2 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t2, ptr %t3
|
|
store i32 0, ptr %t4
|
|
br label %wcond0
|
|
wcond0:
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = load ptr, ptr %t0
|
|
%t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1
|
|
%t10 = load i32, ptr %t9
|
|
%t11 = icmp slt i32 %t5, %t10
|
|
%t12 = zext i1 %t11 to i32
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t14 = load ptr, ptr %t0
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 7
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = load i32, ptr %t4
|
|
%t20 = getelementptr inbounds ptr, ptr %t18, i32 %t19
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = getelementptr inbounds %Cmp_Node, ptr %t21, i32 0, i32 1
|
|
%t23 = load ptr, ptr %t22
|
|
store ptr %t23, ptr %t24
|
|
%t25 = call ptr @fn_nreg()
|
|
store ptr %t25, ptr %t26
|
|
call void @fn_emit(ptr @.str1903)
|
|
%t27 = load ptr, ptr %t26
|
|
call void @fn_emit(ptr %t27)
|
|
call void @fn_emit(ptr @.str1904)
|
|
%t28 = load ptr, ptr %t3
|
|
call void @fn_emit(ptr %t28)
|
|
call void @fn_emit(ptr @.str1905)
|
|
%t29 = load ptr, ptr %t24
|
|
call void @fn_emit(ptr %t29)
|
|
call void @fn_emit(ptr @.str1906)
|
|
%t30 = load ptr, ptr %t24
|
|
call void @fn_emit(ptr %t30)
|
|
call void @fn_emit(ptr @.str1907)
|
|
%t31 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t31)
|
|
call void @fn_emit(ptr @.str1908)
|
|
%t32 = call ptr @fn_emit_alloca(ptr @.str1909)
|
|
store ptr %t32, ptr %t33
|
|
call void @fn_emit(ptr @.str1910)
|
|
%t34 = load ptr, ptr %t26
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str1911)
|
|
%t35 = load ptr, ptr %t33
|
|
call void @fn_emit(ptr %t35)
|
|
call void @fn_emit(ptr @.str1912)
|
|
%t36 = load ptr, ptr %t24
|
|
%t37 = load ptr, ptr %t33
|
|
%t38 = load ptr, ptr %t24
|
|
call void @fn_loc_push(ptr %t36, ptr %t37, ptr %t38)
|
|
%t39 = load i32, ptr %t4
|
|
%t40 = add i32 %t39, 1
|
|
store i32 %t40, ptr %t4
|
|
br label %wcond0
|
|
wend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_emit_spawn(ptr %arg_st) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t7 = alloca i32
|
|
%t13 = alloca ptr
|
|
%t15 = alloca ptr
|
|
%t26 = alloca ptr
|
|
%t27 = alloca i32
|
|
%t47 = alloca ptr
|
|
%t48 = alloca ptr
|
|
%t49 = alloca i32
|
|
%t93 = alloca ptr
|
|
%t99 = alloca i32
|
|
%t109 = alloca ptr
|
|
%t117 = alloca i32
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = call ptr @fn_emit_bind(ptr @.str1913)
|
|
store ptr %t1, ptr %t2
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = call i32 @fn_find_arch_id(ptr %t5)
|
|
store i32 %t6, ptr %t7
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = icmp sgt i32 %t8, 0
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %then0, label %else1
|
|
then0:
|
|
%t12 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t12, ptr %t13
|
|
%t14 = call ptr @fn_nreg()
|
|
store ptr %t14, ptr %t15
|
|
call void @fn_emit(ptr @.str1914)
|
|
%t16 = load ptr, ptr %t15
|
|
call void @fn_emit(ptr %t16)
|
|
call void @fn_emit(ptr @.str1915)
|
|
%t17 = load ptr, ptr %t13
|
|
call void @fn_emit(ptr %t17)
|
|
call void @fn_emit(ptr @.str1916)
|
|
%t18 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t18)
|
|
call void @fn_emit(ptr @.str1917)
|
|
call void @fn_emit(ptr @.str1918)
|
|
%t19 = load i32, ptr %t7
|
|
%t20 = call ptr @fn_itoa(i32 %t19)
|
|
call void @fn_emit(ptr %t20)
|
|
call void @fn_emit(ptr @.str1919)
|
|
%t21 = load ptr, ptr %t15
|
|
call void @fn_emit(ptr %t21)
|
|
call void @fn_emit(ptr @.str1920)
|
|
%t22 = load ptr, ptr %t0
|
|
%t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = call ptr @fn_find_arch(ptr %t24)
|
|
store ptr %t25, ptr %t26
|
|
store i32 0, ptr %t27
|
|
br label %wcond3
|
|
wcond3:
|
|
%t28 = load i32, ptr %t27
|
|
%t29 = load ptr, ptr %t26
|
|
%t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 7
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = getelementptr inbounds %LSlice, ptr %t31, i32 0, i32 1
|
|
%t33 = load i32, ptr %t32
|
|
%t34 = icmp slt i32 %t28, %t33
|
|
%t35 = zext i1 %t34 to i32
|
|
%t36 = icmp ne i32 %t35, 0
|
|
br i1 %t36, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t37 = load ptr, ptr %t26
|
|
%t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 7
|
|
%t39 = load ptr, ptr %t38
|
|
%t40 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = load i32, ptr %t27
|
|
%t43 = getelementptr inbounds ptr, ptr %t41, i32 %t42
|
|
%t44 = load ptr, ptr %t43
|
|
%t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 1
|
|
%t46 = load ptr, ptr %t45
|
|
store ptr %t46, ptr %t47
|
|
store ptr null, ptr %t48
|
|
store i32 0, ptr %t49
|
|
br label %wcond6
|
|
wcond6:
|
|
%t50 = load i32, ptr %t49
|
|
%t51 = load ptr, ptr %t0
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 7
|
|
%t53 = load ptr, ptr %t52
|
|
%t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1
|
|
%t55 = load i32, ptr %t54
|
|
%t56 = icmp slt i32 %t50, %t55
|
|
%t57 = zext i1 %t56 to i32
|
|
%t58 = icmp ne i32 %t57, 0
|
|
br i1 %t58, label %wbody7, label %wend8
|
|
wbody7:
|
|
%t59 = load ptr, ptr %t0
|
|
%t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 7
|
|
%t61 = load ptr, ptr %t60
|
|
%t62 = getelementptr inbounds %LSlice, ptr %t61, i32 0, i32 0
|
|
%t63 = load ptr, ptr %t62
|
|
%t64 = load i32, ptr %t49
|
|
%t65 = getelementptr inbounds ptr, ptr %t63, i32 %t64
|
|
%t66 = load ptr, ptr %t65
|
|
%t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 1
|
|
%t68 = load ptr, ptr %t67
|
|
%t69 = load ptr, ptr %t47
|
|
%t70 = call i32 @fn_str_eq(ptr %t68, ptr %t69)
|
|
%t71 = icmp ne i32 %t70, 0
|
|
br i1 %t71, label %then9, label %ifend11
|
|
then9:
|
|
%t72 = load ptr, ptr %t0
|
|
%t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 7
|
|
%t74 = load ptr, ptr %t73
|
|
%t75 = getelementptr inbounds %LSlice, ptr %t74, i32 0, i32 0
|
|
%t76 = load ptr, ptr %t75
|
|
%t77 = load i32, ptr %t49
|
|
%t78 = getelementptr inbounds ptr, ptr %t76, i32 %t77
|
|
%t79 = load ptr, ptr %t78
|
|
%t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 4
|
|
%t81 = load ptr, ptr %t80
|
|
store ptr %t81, ptr %t48
|
|
br label %ifend11
|
|
ifend11:
|
|
%t82 = load i32, ptr %t49
|
|
%t83 = add i32 %t82, 1
|
|
store i32 %t83, ptr %t49
|
|
br label %wcond6
|
|
wend8:
|
|
%t84 = load ptr, ptr %t2
|
|
%t85 = load ptr, ptr %t47
|
|
%t86 = load ptr, ptr %t48
|
|
call void @fn_emit_init_component(ptr %t84, ptr %t85, ptr %t86)
|
|
%t87 = load i32, ptr %t27
|
|
%t88 = add i32 %t87, 1
|
|
store i32 %t88, ptr %t27
|
|
br label %wcond3
|
|
wend5:
|
|
%t89 = load ptr, ptr %t0
|
|
%t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 1
|
|
%t91 = load ptr, ptr %t90
|
|
%t92 = call ptr @fn_onspawn_body(ptr %t91)
|
|
store ptr %t92, ptr %t93
|
|
%t94 = load ptr, ptr %t93
|
|
%t95 = icmp ne ptr %t94, null
|
|
%t96 = zext i1 %t95 to i32
|
|
%t97 = icmp ne i32 %t96, 0
|
|
br i1 %t97, label %then12, label %ifend14
|
|
then12:
|
|
%t98 = load i32, ptr @g_nloc
|
|
store i32 %t98, ptr %t99
|
|
%t100 = load ptr, ptr %t26
|
|
%t101 = load ptr, ptr %t2
|
|
call void @fn_emit_bind_props(ptr %t100, ptr %t101)
|
|
%t102 = load ptr, ptr %t93
|
|
call void @fn_emit_block(ptr %t102)
|
|
%t103 = load i32, ptr %t99
|
|
store i32 %t103, ptr @g_nloc
|
|
br label %ifend14
|
|
ifend14:
|
|
%t104 = load ptr, ptr %t0
|
|
%t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 1
|
|
%t106 = load ptr, ptr %t105
|
|
%t107 = call ptr @fn_str_concat(ptr @.str1921, ptr %t106)
|
|
%t108 = call ptr @fn_str_concat(ptr %t107, ptr @.str1922)
|
|
store ptr %t108, ptr %t109
|
|
%t110 = load ptr, ptr %t109
|
|
%t111 = call ptr @fn_find_event(ptr %t110)
|
|
%t112 = icmp ne ptr %t111, null
|
|
%t113 = zext i1 %t112 to i32
|
|
%t114 = icmp ne i32 %t113, 0
|
|
br i1 %t114, label %then15, label %ifend17
|
|
then15:
|
|
call void @fn_emit(ptr @.str1923)
|
|
%t115 = load ptr, ptr %t109
|
|
call void @fn_emit(ptr %t115)
|
|
call void @fn_emit(ptr @.str1924)
|
|
%t116 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t116)
|
|
call void @fn_emit(ptr @.str1925)
|
|
br label %ifend17
|
|
ifend17:
|
|
br label %ifend2
|
|
else1:
|
|
store i32 0, ptr %t117
|
|
br label %wcond18
|
|
wcond18:
|
|
%t118 = load i32, ptr %t117
|
|
%t119 = load ptr, ptr %t0
|
|
%t120 = getelementptr inbounds %Cmp_Node, ptr %t119, i32 0, i32 7
|
|
%t121 = load ptr, ptr %t120
|
|
%t122 = getelementptr inbounds %LSlice, ptr %t121, i32 0, i32 1
|
|
%t123 = load i32, ptr %t122
|
|
%t124 = icmp slt i32 %t118, %t123
|
|
%t125 = zext i1 %t124 to i32
|
|
%t126 = icmp ne i32 %t125, 0
|
|
br i1 %t126, label %wbody19, label %wend20
|
|
wbody19:
|
|
%t127 = load ptr, ptr %t2
|
|
%t128 = load ptr, ptr %t0
|
|
%t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 7
|
|
%t130 = load ptr, ptr %t129
|
|
%t131 = getelementptr inbounds %LSlice, ptr %t130, i32 0, i32 0
|
|
%t132 = load ptr, ptr %t131
|
|
%t133 = load i32, ptr %t117
|
|
%t134 = getelementptr inbounds ptr, ptr %t132, i32 %t133
|
|
%t135 = load ptr, ptr %t134
|
|
%t136 = getelementptr inbounds %Cmp_Node, ptr %t135, i32 0, i32 1
|
|
%t137 = load ptr, ptr %t136
|
|
%t138 = load ptr, ptr %t0
|
|
%t139 = getelementptr inbounds %Cmp_Node, ptr %t138, i32 0, i32 7
|
|
%t140 = load ptr, ptr %t139
|
|
%t141 = getelementptr inbounds %LSlice, ptr %t140, i32 0, i32 0
|
|
%t142 = load ptr, ptr %t141
|
|
%t143 = load i32, ptr %t117
|
|
%t144 = getelementptr inbounds ptr, ptr %t142, i32 %t143
|
|
%t145 = load ptr, ptr %t144
|
|
%t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 4
|
|
%t147 = load ptr, ptr %t146
|
|
call void @fn_emit_init_component(ptr %t127, ptr %t137, ptr %t147)
|
|
%t148 = load i32, ptr %t117
|
|
%t149 = add i32 %t148, 1
|
|
store i32 %t149, ptr %t117
|
|
br label %wcond18
|
|
wend20:
|
|
br label %ifend2
|
|
ifend2:
|
|
%t150 = load ptr, ptr %t2
|
|
store ptr %t150, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t151 = load ptr, ptr %retval
|
|
ret ptr %t151
|
|
}
|
|
|
|
define void @fn_emit_despawn(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t13 = alloca ptr
|
|
%t15 = alloca ptr
|
|
%t24 = alloca ptr
|
|
%t25 = alloca i32
|
|
%t41 = alloca ptr
|
|
%t50 = alloca ptr
|
|
%t52 = alloca ptr
|
|
%t54 = alloca ptr
|
|
%t66 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_emit_expr(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr @g_g_ondespawn
|
|
%t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = icmp sgt i32 %t8, 0
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %then0, label %ifend2
|
|
then0:
|
|
%t12 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t12, ptr %t13
|
|
%t14 = call ptr @fn_nreg()
|
|
store ptr %t14, ptr %t15
|
|
call void @fn_emit(ptr @.str1926)
|
|
%t16 = load ptr, ptr %t15
|
|
call void @fn_emit(ptr %t16)
|
|
call void @fn_emit(ptr @.str1927)
|
|
%t17 = load ptr, ptr %t13
|
|
call void @fn_emit(ptr %t17)
|
|
call void @fn_emit(ptr @.str1928)
|
|
%t18 = load ptr, ptr %t5
|
|
%t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0
|
|
%t20 = load ptr, ptr %t19
|
|
call void @fn_emit(ptr %t20)
|
|
call void @fn_emit(ptr @.str1929)
|
|
%t21 = load ptr, ptr %t15
|
|
%t22 = call ptr @fn_str_concat(ptr @.str1930, ptr %t21)
|
|
%t23 = call ptr @fn_emit_bind(ptr %t22)
|
|
store ptr %t23, ptr %t24
|
|
store i32 0, ptr %t25
|
|
br label %wcond3
|
|
wcond3:
|
|
%t26 = load i32, ptr %t25
|
|
%t27 = load ptr, ptr @g_g_ondespawn
|
|
%t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 1
|
|
%t29 = load i32, ptr %t28
|
|
%t30 = icmp slt i32 %t26, %t29
|
|
%t31 = zext i1 %t30 to i32
|
|
%t32 = icmp ne i32 %t31, 0
|
|
br i1 %t32, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t33 = load ptr, ptr @g_g_ondespawn
|
|
%t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0
|
|
%t35 = load ptr, ptr %t34
|
|
%t36 = load i32, ptr %t25
|
|
%t37 = getelementptr inbounds ptr, ptr %t35, i32 %t36
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 1
|
|
%t40 = load ptr, ptr %t39
|
|
store ptr %t40, ptr %t41
|
|
%t42 = load ptr, ptr %t24
|
|
%t43 = call ptr @fn_str_concat(ptr @.str1931, ptr %t42)
|
|
%t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str1932)
|
|
%t45 = load ptr, ptr %t41
|
|
%t46 = call i32 @fn_find_arch_id(ptr %t45)
|
|
%t47 = call ptr @fn_itoa(i32 %t46)
|
|
%t48 = call ptr @fn_str_concat(ptr %t44, ptr %t47)
|
|
%t49 = call ptr @fn_emit_bind(ptr %t48)
|
|
store ptr %t49, ptr %t50
|
|
%t51 = call ptr @fn_lbl(ptr @.str1933)
|
|
store ptr %t51, ptr %t52
|
|
%t53 = call ptr @fn_lbl(ptr @.str1934)
|
|
store ptr %t53, ptr %t54
|
|
call void @fn_emit(ptr @.str1935)
|
|
%t55 = load ptr, ptr %t50
|
|
call void @fn_emit(ptr %t55)
|
|
call void @fn_emit(ptr @.str1936)
|
|
%t56 = load ptr, ptr %t52
|
|
call void @fn_emit(ptr %t56)
|
|
call void @fn_emit(ptr @.str1937)
|
|
%t57 = load ptr, ptr %t54
|
|
call void @fn_emit(ptr %t57)
|
|
call void @fn_emit(ptr @.str1938)
|
|
%t58 = load ptr, ptr %t52
|
|
call void @fn_emit(ptr %t58)
|
|
call void @fn_emit(ptr @.str1939)
|
|
%t59 = load ptr, ptr %t41
|
|
call void @fn_emit(ptr %t59)
|
|
call void @fn_emit(ptr @.str1940)
|
|
%t60 = load ptr, ptr %t5
|
|
%t61 = getelementptr inbounds %Cmp_Val, ptr %t60, i32 0, i32 0
|
|
%t62 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t62)
|
|
call void @fn_emit(ptr @.str1941)
|
|
%t63 = load ptr, ptr %t41
|
|
%t64 = call ptr @fn_str_concat(ptr @.str1942, ptr %t63)
|
|
%t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str1943)
|
|
store ptr %t65, ptr %t66
|
|
%t67 = load ptr, ptr %t66
|
|
%t68 = call ptr @fn_find_event(ptr %t67)
|
|
%t69 = icmp ne ptr %t68, null
|
|
%t70 = zext i1 %t69 to i32
|
|
%t71 = icmp ne i32 %t70, 0
|
|
br i1 %t71, label %then6, label %ifend8
|
|
then6:
|
|
call void @fn_emit(ptr @.str1944)
|
|
%t72 = load ptr, ptr %t66
|
|
call void @fn_emit(ptr %t72)
|
|
call void @fn_emit(ptr @.str1945)
|
|
%t73 = load ptr, ptr %t5
|
|
%t74 = getelementptr inbounds %Cmp_Val, ptr %t73, i32 0, i32 0
|
|
%t75 = load ptr, ptr %t74
|
|
call void @fn_emit(ptr %t75)
|
|
call void @fn_emit(ptr @.str1946)
|
|
br label %ifend8
|
|
ifend8:
|
|
call void @fn_emit(ptr @.str1947)
|
|
%t76 = load ptr, ptr %t54
|
|
call void @fn_emit(ptr %t76)
|
|
call void @fn_emit(ptr @.str1948)
|
|
%t77 = load ptr, ptr %t54
|
|
call void @fn_emit(ptr %t77)
|
|
call void @fn_emit(ptr @.str1949)
|
|
%t78 = load i32, ptr %t25
|
|
%t79 = add i32 %t78, 1
|
|
store i32 %t79, ptr %t25
|
|
br label %wcond3
|
|
wend5:
|
|
br label %ifend2
|
|
ifend2:
|
|
%t80 = load ptr, ptr @g_g_events
|
|
%t81 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 1
|
|
%t82 = load i32, ptr %t81
|
|
%t83 = icmp sgt i32 %t82, 0
|
|
%t84 = zext i1 %t83 to i32
|
|
%t85 = icmp ne i32 %t84, 0
|
|
br i1 %t85, label %then9, label %ifend11
|
|
then9:
|
|
call void @fn_emit(ptr @.str1950)
|
|
%t86 = load ptr, ptr %t5
|
|
%t87 = getelementptr inbounds %Cmp_Val, ptr %t86, i32 0, i32 0
|
|
%t88 = load ptr, ptr %t87
|
|
call void @fn_emit(ptr %t88)
|
|
call void @fn_emit(ptr @.str1951)
|
|
br label %ifend11
|
|
ifend11:
|
|
call void @fn_emit(ptr @.str1952)
|
|
%t89 = load ptr, ptr %t5
|
|
%t90 = getelementptr inbounds %Cmp_Val, ptr %t89, i32 0, i32 0
|
|
%t91 = load ptr, ptr %t90
|
|
call void @fn_emit(ptr %t91)
|
|
call void @fn_emit(ptr @.str1953)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_attach(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t9 = alloca ptr
|
|
%t21 = alloca ptr
|
|
%t26 = alloca ptr
|
|
%t28 = alloca ptr
|
|
%t30 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_emit_expr(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = call ptr @fn_nreg()
|
|
store ptr %t8, ptr %t9
|
|
call void @fn_emit(ptr @.str1954)
|
|
%t10 = load ptr, ptr %t9
|
|
call void @fn_emit(ptr %t10)
|
|
call void @fn_emit(ptr @.str1955)
|
|
%t11 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t11)
|
|
call void @fn_emit(ptr @.str1956)
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1
|
|
%t14 = load ptr, ptr %t13
|
|
call void @fn_emit(ptr %t14)
|
|
call void @fn_emit(ptr @.str1957)
|
|
%t15 = load ptr, ptr %t5
|
|
%t16 = getelementptr inbounds %Cmp_Val, ptr %t15, i32 0, i32 0
|
|
%t17 = load ptr, ptr %t16
|
|
call void @fn_emit(ptr %t17)
|
|
call void @fn_emit(ptr @.str1958)
|
|
%t18 = load ptr, ptr %t9
|
|
%t19 = call ptr @fn_str_concat(ptr @.str1959, ptr %t18)
|
|
%t20 = call ptr @fn_emit_bind(ptr %t19)
|
|
store ptr %t20, ptr %t21
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = call ptr @fn_str_concat(ptr @.str1960, ptr %t22)
|
|
%t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str1961)
|
|
%t25 = call ptr @fn_emit_bind(ptr %t24)
|
|
store ptr %t25, ptr %t26
|
|
%t27 = call ptr @fn_lbl(ptr @.str1962)
|
|
store ptr %t27, ptr %t28
|
|
%t29 = call ptr @fn_lbl(ptr @.str1963)
|
|
store ptr %t29, ptr %t30
|
|
call void @fn_emit(ptr @.str1964)
|
|
%t31 = load ptr, ptr %t26
|
|
call void @fn_emit(ptr %t31)
|
|
call void @fn_emit(ptr @.str1965)
|
|
%t32 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t32)
|
|
call void @fn_emit(ptr @.str1966)
|
|
%t33 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t33)
|
|
call void @fn_emit(ptr @.str1967)
|
|
%t34 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str1968)
|
|
store i32 0, ptr @g_g_term
|
|
%t35 = load ptr, ptr %t5
|
|
%t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 0
|
|
%t37 = load ptr, ptr %t36
|
|
%t38 = load ptr, ptr %t0
|
|
%t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 1
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = load ptr, ptr %t0
|
|
%t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 5
|
|
%t43 = load ptr, ptr %t42
|
|
call void @fn_emit_init_component(ptr %t37, ptr %t40, ptr %t43)
|
|
%t44 = load i32, ptr @g_g_term
|
|
%t45 = icmp eq i32 %t44, 0
|
|
%t46 = zext i1 %t45 to i32
|
|
%t47 = icmp ne i32 %t46, 0
|
|
br i1 %t47, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_emit(ptr @.str1969)
|
|
%t48 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t48)
|
|
call void @fn_emit(ptr @.str1970)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t49 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t49)
|
|
call void @fn_emit(ptr @.str1971)
|
|
store i32 0, ptr @g_g_term
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_detach(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t9 = alloca ptr
|
|
%t21 = alloca ptr
|
|
%t26 = alloca ptr
|
|
%t28 = alloca ptr
|
|
%t30 = alloca ptr
|
|
%t40 = alloca ptr
|
|
%t46 = alloca i32
|
|
%t48 = alloca ptr
|
|
%t61 = alloca ptr
|
|
%t78 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_emit_expr(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
%t6 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t6, ptr %t7
|
|
%t8 = call ptr @fn_nreg()
|
|
store ptr %t8, ptr %t9
|
|
call void @fn_emit(ptr @.str1972)
|
|
%t10 = load ptr, ptr %t9
|
|
call void @fn_emit(ptr %t10)
|
|
call void @fn_emit(ptr @.str1973)
|
|
%t11 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t11)
|
|
call void @fn_emit(ptr @.str1974)
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 1
|
|
%t14 = load ptr, ptr %t13
|
|
call void @fn_emit(ptr %t14)
|
|
call void @fn_emit(ptr @.str1975)
|
|
%t15 = load ptr, ptr %t5
|
|
%t16 = getelementptr inbounds %Cmp_Val, ptr %t15, i32 0, i32 0
|
|
%t17 = load ptr, ptr %t16
|
|
call void @fn_emit(ptr %t17)
|
|
call void @fn_emit(ptr @.str1976)
|
|
%t18 = load ptr, ptr %t9
|
|
%t19 = call ptr @fn_str_concat(ptr @.str1977, ptr %t18)
|
|
%t20 = call ptr @fn_emit_bind(ptr %t19)
|
|
store ptr %t20, ptr %t21
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = call ptr @fn_str_concat(ptr @.str1978, ptr %t22)
|
|
%t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str1979)
|
|
%t25 = call ptr @fn_emit_bind(ptr %t24)
|
|
store ptr %t25, ptr %t26
|
|
%t27 = call ptr @fn_lbl(ptr @.str1980)
|
|
store ptr %t27, ptr %t28
|
|
%t29 = call ptr @fn_lbl(ptr @.str1981)
|
|
store ptr %t29, ptr %t30
|
|
call void @fn_emit(ptr @.str1982)
|
|
%t31 = load ptr, ptr %t26
|
|
call void @fn_emit(ptr %t31)
|
|
call void @fn_emit(ptr @.str1983)
|
|
%t32 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t32)
|
|
call void @fn_emit(ptr @.str1984)
|
|
%t33 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t33)
|
|
call void @fn_emit(ptr @.str1985)
|
|
%t34 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str1986)
|
|
store i32 0, ptr @g_g_term
|
|
call void @fn_emit(ptr @.str1987)
|
|
%t35 = load ptr, ptr %t9
|
|
call void @fn_emit(ptr %t35)
|
|
call void @fn_emit(ptr @.str1988)
|
|
%t36 = load ptr, ptr %t0
|
|
%t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 1
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = call ptr @fn_ondetach_body(ptr %t38)
|
|
store ptr %t39, ptr %t40
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = icmp ne ptr %t41, null
|
|
%t43 = zext i1 %t42 to i32
|
|
%t44 = icmp ne i32 %t43, 0
|
|
br i1 %t44, label %then0, label %ifend2
|
|
then0:
|
|
%t45 = load i32, ptr @g_nloc
|
|
store i32 %t45, ptr %t46
|
|
%t47 = call ptr @fn_nreg()
|
|
store ptr %t47, ptr %t48
|
|
call void @fn_emit(ptr @.str1989)
|
|
%t49 = load ptr, ptr %t48
|
|
call void @fn_emit(ptr %t49)
|
|
call void @fn_emit(ptr @.str1990)
|
|
%t50 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str1991)
|
|
%t51 = load ptr, ptr %t0
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1
|
|
%t53 = load ptr, ptr %t52
|
|
call void @fn_emit(ptr %t53)
|
|
call void @fn_emit(ptr @.str1992)
|
|
%t54 = load ptr, ptr %t0
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1
|
|
%t56 = load ptr, ptr %t55
|
|
call void @fn_emit(ptr %t56)
|
|
call void @fn_emit(ptr @.str1993)
|
|
%t57 = load ptr, ptr %t5
|
|
%t58 = getelementptr inbounds %Cmp_Val, ptr %t57, i32 0, i32 0
|
|
%t59 = load ptr, ptr %t58
|
|
call void @fn_emit(ptr %t59)
|
|
call void @fn_emit(ptr @.str1994)
|
|
%t60 = call ptr @fn_emit_alloca(ptr @.str1995)
|
|
store ptr %t60, ptr %t61
|
|
call void @fn_emit(ptr @.str1996)
|
|
%t62 = load ptr, ptr %t48
|
|
call void @fn_emit(ptr %t62)
|
|
call void @fn_emit(ptr @.str1997)
|
|
%t63 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t63)
|
|
call void @fn_emit(ptr @.str1998)
|
|
%t64 = load ptr, ptr %t0
|
|
%t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 1
|
|
%t66 = load ptr, ptr %t65
|
|
%t67 = load ptr, ptr %t61
|
|
%t68 = load ptr, ptr %t0
|
|
%t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1
|
|
%t70 = load ptr, ptr %t69
|
|
call void @fn_loc_push(ptr %t66, ptr %t67, ptr %t70)
|
|
%t71 = load ptr, ptr %t40
|
|
call void @fn_emit_block(ptr %t71)
|
|
%t72 = load i32, ptr %t46
|
|
store i32 %t72, ptr @g_nloc
|
|
br label %ifend2
|
|
ifend2:
|
|
%t73 = load ptr, ptr %t0
|
|
%t74 = getelementptr inbounds %Cmp_Node, ptr %t73, i32 0, i32 1
|
|
%t75 = load ptr, ptr %t74
|
|
%t76 = call ptr @fn_str_concat(ptr @.str1999, ptr %t75)
|
|
%t77 = call ptr @fn_str_concat(ptr %t76, ptr @.str2000)
|
|
store ptr %t77, ptr %t78
|
|
%t79 = load ptr, ptr %t78
|
|
%t80 = call ptr @fn_find_event(ptr %t79)
|
|
%t81 = icmp ne ptr %t80, null
|
|
%t82 = zext i1 %t81 to i32
|
|
%t83 = icmp ne i32 %t82, 0
|
|
br i1 %t83, label %then3, label %ifend5
|
|
then3:
|
|
call void @fn_emit(ptr @.str2001)
|
|
%t84 = load ptr, ptr %t78
|
|
call void @fn_emit(ptr %t84)
|
|
call void @fn_emit(ptr @.str2002)
|
|
%t85 = load ptr, ptr %t5
|
|
%t86 = getelementptr inbounds %Cmp_Val, ptr %t85, i32 0, i32 0
|
|
%t87 = load ptr, ptr %t86
|
|
call void @fn_emit(ptr %t87)
|
|
call void @fn_emit(ptr @.str2003)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t88 = load i32, ptr @g_g_term
|
|
%t89 = icmp eq i32 %t88, 0
|
|
%t90 = zext i1 %t89 to i32
|
|
%t91 = icmp ne i32 %t90, 0
|
|
br i1 %t91, label %then6, label %ifend8
|
|
then6:
|
|
call void @fn_emit(ptr @.str2004)
|
|
%t92 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t92)
|
|
call void @fn_emit(ptr @.str2005)
|
|
br label %ifend8
|
|
ifend8:
|
|
%t93 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t93)
|
|
call void @fn_emit(ptr @.str2006)
|
|
store i32 0, ptr @g_g_term
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_toggle(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t8 = alloca i32
|
|
%t33 = alloca ptr
|
|
%t61 = alloca ptr
|
|
%t63 = alloca ptr
|
|
%t65 = alloca ptr
|
|
%t76 = alloca ptr
|
|
%t96 = alloca i32
|
|
%t98 = alloca ptr
|
|
%t111 = alloca ptr
|
|
%t128 = alloca ptr
|
|
%t149 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
store ptr @.str2007, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 2
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp eq i32 %t4, 1
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %then0, label %ifend2
|
|
then0:
|
|
store ptr @.str2008, ptr %t1
|
|
br label %ifend2
|
|
ifend2:
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 3
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = icmp ne ptr %t11, null
|
|
%t13 = zext i1 %t12 to i32
|
|
%t14 = icmp ne i32 %t13, 0
|
|
%t15 = zext i1 %t14 to i32
|
|
store i32 %t15, ptr %t8
|
|
br i1 %t14, label %sc3, label %scend4
|
|
sc3:
|
|
%t16 = load ptr, ptr %t0
|
|
%t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = call i32 @fn_str_eq(ptr %t18, ptr @.str2009)
|
|
%t20 = icmp ne i32 %t19, 0
|
|
%t21 = zext i1 %t20 to i32
|
|
store i32 %t21, ptr %t8
|
|
br label %scend4
|
|
scend4:
|
|
%t22 = load i32, ptr %t8
|
|
%t23 = icmp ne i32 %t22, 0
|
|
br i1 %t23, label %then5, label %ifend7
|
|
then5:
|
|
call void @fn_emit(ptr @.str2010)
|
|
%t24 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t24)
|
|
call void @fn_emit(ptr @.str2011)
|
|
%t25 = load ptr, ptr %t0
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 1
|
|
%t27 = load ptr, ptr %t26
|
|
call void @fn_emit(ptr %t27)
|
|
call void @fn_emit(ptr @.str2012)
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 1
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = call ptr @fn_str_concat(ptr @.str2013, ptr %t30)
|
|
%t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str2014)
|
|
store ptr %t32, ptr %t33
|
|
%t34 = load ptr, ptr %t0
|
|
%t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 2
|
|
%t36 = load i32, ptr %t35
|
|
%t37 = icmp eq i32 %t36, 1
|
|
%t38 = zext i1 %t37 to i32
|
|
%t39 = icmp ne i32 %t38, 0
|
|
br i1 %t39, label %then8, label %ifend10
|
|
then8:
|
|
%t40 = load ptr, ptr %t0
|
|
%t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1
|
|
%t42 = load ptr, ptr %t41
|
|
%t43 = call ptr @fn_str_concat(ptr @.str2015, ptr %t42)
|
|
%t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str2016)
|
|
store ptr %t44, ptr %t33
|
|
br label %ifend10
|
|
ifend10:
|
|
%t45 = load ptr, ptr %t33
|
|
%t46 = call ptr @fn_find_event(ptr %t45)
|
|
%t47 = icmp ne ptr %t46, null
|
|
%t48 = zext i1 %t47 to i32
|
|
%t49 = icmp ne i32 %t48, 0
|
|
br i1 %t49, label %then11, label %ifend13
|
|
then11:
|
|
call void @fn_emit(ptr @.str2017)
|
|
%t50 = load ptr, ptr %t33
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str2018)
|
|
br label %ifend13
|
|
ifend13:
|
|
br label %ret
|
|
ifend7:
|
|
%t51 = load ptr, ptr %t0
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 4
|
|
%t53 = load ptr, ptr %t52
|
|
%t54 = icmp ne ptr %t53, null
|
|
%t55 = zext i1 %t54 to i32
|
|
%t56 = icmp ne i32 %t55, 0
|
|
br i1 %t56, label %then14, label %else15
|
|
then14:
|
|
%t57 = load ptr, ptr %t0
|
|
%t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 4
|
|
%t59 = load ptr, ptr %t58
|
|
%t60 = call ptr @fn_emit_expr(ptr %t59)
|
|
store ptr %t60, ptr %t61
|
|
%t62 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t62, ptr %t63
|
|
%t64 = call ptr @fn_nreg()
|
|
store ptr %t64, ptr %t65
|
|
call void @fn_emit(ptr @.str2019)
|
|
%t66 = load ptr, ptr %t65
|
|
call void @fn_emit(ptr %t66)
|
|
call void @fn_emit(ptr @.str2020)
|
|
%t67 = load ptr, ptr %t63
|
|
call void @fn_emit(ptr %t67)
|
|
call void @fn_emit(ptr @.str2021)
|
|
%t68 = load ptr, ptr %t0
|
|
%t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1
|
|
%t70 = load ptr, ptr %t69
|
|
call void @fn_emit(ptr %t70)
|
|
call void @fn_emit(ptr @.str2022)
|
|
%t71 = load ptr, ptr %t61
|
|
%t72 = getelementptr inbounds %Cmp_Val, ptr %t71, i32 0, i32 0
|
|
%t73 = load ptr, ptr %t72
|
|
call void @fn_emit(ptr %t73)
|
|
call void @fn_emit(ptr @.str2023)
|
|
call void @fn_emit(ptr @.str2024)
|
|
%t74 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t74)
|
|
call void @fn_emit(ptr @.str2025)
|
|
%t75 = load ptr, ptr %t65
|
|
call void @fn_emit(ptr %t75)
|
|
call void @fn_emit(ptr @.str2026)
|
|
store ptr null, ptr %t76
|
|
%t77 = load ptr, ptr %t0
|
|
%t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 2
|
|
%t79 = load i32, ptr %t78
|
|
%t80 = icmp eq i32 %t79, 1
|
|
%t81 = zext i1 %t80 to i32
|
|
%t82 = icmp ne i32 %t81, 0
|
|
br i1 %t82, label %then17, label %else18
|
|
then17:
|
|
%t83 = load ptr, ptr %t0
|
|
%t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1
|
|
%t85 = load ptr, ptr %t84
|
|
%t86 = call ptr @fn_onenable_body(ptr %t85)
|
|
store ptr %t86, ptr %t76
|
|
br label %ifend19
|
|
else18:
|
|
%t87 = load ptr, ptr %t0
|
|
%t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 1
|
|
%t89 = load ptr, ptr %t88
|
|
%t90 = call ptr @fn_ondisable_body(ptr %t89)
|
|
store ptr %t90, ptr %t76
|
|
br label %ifend19
|
|
ifend19:
|
|
%t91 = load ptr, ptr %t76
|
|
%t92 = icmp ne ptr %t91, null
|
|
%t93 = zext i1 %t92 to i32
|
|
%t94 = icmp ne i32 %t93, 0
|
|
br i1 %t94, label %then20, label %ifend22
|
|
then20:
|
|
%t95 = load i32, ptr @g_nloc
|
|
store i32 %t95, ptr %t96
|
|
%t97 = call ptr @fn_nreg()
|
|
store ptr %t97, ptr %t98
|
|
call void @fn_emit(ptr @.str2027)
|
|
%t99 = load ptr, ptr %t98
|
|
call void @fn_emit(ptr %t99)
|
|
call void @fn_emit(ptr @.str2028)
|
|
%t100 = load ptr, ptr %t63
|
|
call void @fn_emit(ptr %t100)
|
|
call void @fn_emit(ptr @.str2029)
|
|
%t101 = load ptr, ptr %t0
|
|
%t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 1
|
|
%t103 = load ptr, ptr %t102
|
|
call void @fn_emit(ptr %t103)
|
|
call void @fn_emit(ptr @.str2030)
|
|
%t104 = load ptr, ptr %t0
|
|
%t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 1
|
|
%t106 = load ptr, ptr %t105
|
|
call void @fn_emit(ptr %t106)
|
|
call void @fn_emit(ptr @.str2031)
|
|
%t107 = load ptr, ptr %t61
|
|
%t108 = getelementptr inbounds %Cmp_Val, ptr %t107, i32 0, i32 0
|
|
%t109 = load ptr, ptr %t108
|
|
call void @fn_emit(ptr %t109)
|
|
call void @fn_emit(ptr @.str2032)
|
|
%t110 = call ptr @fn_emit_alloca(ptr @.str2033)
|
|
store ptr %t110, ptr %t111
|
|
call void @fn_emit(ptr @.str2034)
|
|
%t112 = load ptr, ptr %t98
|
|
call void @fn_emit(ptr %t112)
|
|
call void @fn_emit(ptr @.str2035)
|
|
%t113 = load ptr, ptr %t111
|
|
call void @fn_emit(ptr %t113)
|
|
call void @fn_emit(ptr @.str2036)
|
|
%t114 = load ptr, ptr %t0
|
|
%t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 1
|
|
%t116 = load ptr, ptr %t115
|
|
%t117 = load ptr, ptr %t111
|
|
%t118 = load ptr, ptr %t0
|
|
%t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 1
|
|
%t120 = load ptr, ptr %t119
|
|
call void @fn_loc_push(ptr %t116, ptr %t117, ptr %t120)
|
|
%t121 = load ptr, ptr %t76
|
|
call void @fn_emit_block(ptr %t121)
|
|
%t122 = load i32, ptr %t96
|
|
store i32 %t122, ptr @g_nloc
|
|
br label %ifend22
|
|
ifend22:
|
|
%t123 = load ptr, ptr %t0
|
|
%t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1
|
|
%t125 = load ptr, ptr %t124
|
|
%t126 = call ptr @fn_str_concat(ptr @.str2037, ptr %t125)
|
|
%t127 = call ptr @fn_str_concat(ptr %t126, ptr @.str2038)
|
|
store ptr %t127, ptr %t128
|
|
%t129 = load ptr, ptr %t0
|
|
%t130 = getelementptr inbounds %Cmp_Node, ptr %t129, i32 0, i32 2
|
|
%t131 = load i32, ptr %t130
|
|
%t132 = icmp eq i32 %t131, 1
|
|
%t133 = zext i1 %t132 to i32
|
|
%t134 = icmp ne i32 %t133, 0
|
|
br i1 %t134, label %then23, label %ifend25
|
|
then23:
|
|
%t135 = load ptr, ptr %t0
|
|
%t136 = getelementptr inbounds %Cmp_Node, ptr %t135, i32 0, i32 1
|
|
%t137 = load ptr, ptr %t136
|
|
%t138 = call ptr @fn_str_concat(ptr @.str2039, ptr %t137)
|
|
%t139 = call ptr @fn_str_concat(ptr %t138, ptr @.str2040)
|
|
store ptr %t139, ptr %t128
|
|
br label %ifend25
|
|
ifend25:
|
|
%t140 = load ptr, ptr %t128
|
|
%t141 = call ptr @fn_find_event(ptr %t140)
|
|
%t142 = icmp ne ptr %t141, null
|
|
%t143 = zext i1 %t142 to i32
|
|
%t144 = icmp ne i32 %t143, 0
|
|
br i1 %t144, label %then26, label %ifend28
|
|
then26:
|
|
call void @fn_emit(ptr @.str2041)
|
|
%t145 = load ptr, ptr %t128
|
|
call void @fn_emit(ptr %t145)
|
|
call void @fn_emit(ptr @.str2042)
|
|
%t146 = load ptr, ptr %t61
|
|
%t147 = getelementptr inbounds %Cmp_Val, ptr %t146, i32 0, i32 0
|
|
%t148 = load ptr, ptr %t147
|
|
call void @fn_emit(ptr %t148)
|
|
call void @fn_emit(ptr @.str2043)
|
|
br label %ifend28
|
|
ifend28:
|
|
br label %ifend16
|
|
else15:
|
|
store ptr @.str2044, ptr %t149
|
|
%t150 = load ptr, ptr %t0
|
|
%t151 = getelementptr inbounds %Cmp_Node, ptr %t150, i32 0, i32 1
|
|
%t152 = load ptr, ptr %t151
|
|
%t153 = call i32 @fn_is_model(ptr %t152)
|
|
%t154 = icmp ne i32 %t153, 0
|
|
br i1 %t154, label %then29, label %ifend31
|
|
then29:
|
|
store ptr @.str2045, ptr %t149
|
|
br label %ifend31
|
|
ifend31:
|
|
call void @fn_emit(ptr @.str2046)
|
|
%t155 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t155)
|
|
call void @fn_emit(ptr @.str2047)
|
|
%t156 = load ptr, ptr %t149
|
|
call void @fn_emit(ptr %t156)
|
|
%t157 = load ptr, ptr %t0
|
|
%t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 1
|
|
%t159 = load ptr, ptr %t158
|
|
call void @fn_emit(ptr %t159)
|
|
call void @fn_emit(ptr @.str2048)
|
|
br label %ifend16
|
|
ifend16:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_system_fn(ptr %arg_sys) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t8 = alloca ptr
|
|
store ptr %arg_sys, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 6
|
|
%t3 = load ptr, ptr %t2
|
|
store ptr %t3, ptr @g_g_cur_scene
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
store i32 0, ptr @g_g_term
|
|
call void @fn_loc_reset()
|
|
store i32 0, ptr @g_nloop
|
|
store i32 0, ptr @g_nself
|
|
store ptr @.str2049, ptr @g_ret_ty
|
|
%t4 = call ptr @fn_buf_new()
|
|
store ptr %t4, ptr %t5
|
|
%t6 = call ptr @fn_buf_new()
|
|
store ptr %t6, ptr @g_falloc
|
|
%t7 = load ptr, ptr @g_code
|
|
store ptr %t7, ptr %t8
|
|
%t9 = load ptr, ptr %t5
|
|
store ptr %t9, ptr @g_code
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 4
|
|
%t12 = load ptr, ptr %t11
|
|
call void @fn_emit_block(ptr %t12)
|
|
%t13 = load i32, ptr @g_g_term
|
|
%t14 = icmp eq i32 %t13, 0
|
|
%t15 = zext i1 %t14 to i32
|
|
%t16 = icmp ne i32 %t15, 0
|
|
br i1 %t16, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_emit(ptr @.str2050)
|
|
br label %ifend2
|
|
ifend2:
|
|
call void @fn_emit(ptr @.str2051)
|
|
%t17 = load ptr, ptr %t8
|
|
store ptr %t17, ptr @g_code
|
|
call void @fn_emit(ptr @.str2052)
|
|
%t18 = load ptr, ptr %t0
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1
|
|
%t20 = load ptr, ptr %t19
|
|
call void @fn_emit(ptr %t20)
|
|
call void @fn_emit(ptr @.str2053)
|
|
%t21 = load ptr, ptr @g_falloc
|
|
%t22 = call ptr @fn_buf_str(ptr %t21)
|
|
call void @fn_emit(ptr %t22)
|
|
%t23 = load ptr, ptr %t5
|
|
%t24 = call ptr @fn_buf_str(ptr %t23)
|
|
call void @fn_emit(ptr %t24)
|
|
call void @fn_emit(ptr @.str2054)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_call_one(ptr %arg_d) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t11 = alloca ptr
|
|
%t12 = alloca i32
|
|
%t37 = alloca ptr
|
|
%t42 = alloca ptr
|
|
%t56 = alloca ptr
|
|
%t61 = alloca ptr
|
|
%t69 = alloca ptr
|
|
%t71 = alloca ptr
|
|
store ptr %arg_d, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_str_concat(ptr @.str2055, ptr %t3)
|
|
%t5 = call ptr @fn_emit_bind(ptr %t4)
|
|
store ptr %t5, ptr %t6
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = call ptr @fn_str_concat(ptr @.str2056, ptr %t7)
|
|
%t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str2057)
|
|
%t10 = call ptr @fn_emit_bind(ptr %t9)
|
|
store ptr %t10, ptr %t11
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 5
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = icmp ne ptr %t15, null
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
%t19 = zext i1 %t18 to i32
|
|
store i32 %t19, ptr %t12
|
|
br i1 %t18, label %sc0, label %scend1
|
|
sc0:
|
|
%t20 = load ptr, ptr %t0
|
|
%t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 5
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = call i32 @fn_is_toggled_layer(ptr %t24)
|
|
%t26 = icmp ne i32 %t25, 0
|
|
%t27 = zext i1 %t26 to i32
|
|
store i32 %t27, ptr %t12
|
|
br label %scend1
|
|
scend1:
|
|
%t28 = load i32, ptr %t12
|
|
%t29 = icmp ne i32 %t28, 0
|
|
br i1 %t29, label %then2, label %ifend4
|
|
then2:
|
|
%t30 = load ptr, ptr %t0
|
|
%t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 5
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = call ptr @fn_str_concat(ptr @.str2058, ptr %t34)
|
|
%t36 = call ptr @fn_emit_bind(ptr %t35)
|
|
store ptr %t36, ptr %t37
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = call ptr @fn_str_concat(ptr @.str2059, ptr %t38)
|
|
%t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str2060)
|
|
%t41 = call ptr @fn_emit_bind(ptr %t40)
|
|
store ptr %t41, ptr %t42
|
|
%t43 = load ptr, ptr %t11
|
|
%t44 = call ptr @fn_str_concat(ptr @.str2061, ptr %t43)
|
|
%t45 = call ptr @fn_str_concat(ptr %t44, ptr @.str2062)
|
|
%t46 = load ptr, ptr %t42
|
|
%t47 = call ptr @fn_str_concat(ptr %t45, ptr %t46)
|
|
%t48 = call ptr @fn_emit_bind(ptr %t47)
|
|
store ptr %t48, ptr %t11
|
|
br label %ifend4
|
|
ifend4:
|
|
%t49 = load ptr, ptr %t0
|
|
%t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 2
|
|
%t51 = load i32, ptr %t50
|
|
%t52 = icmp eq i32 %t51, 1
|
|
%t53 = zext i1 %t52 to i32
|
|
%t54 = icmp ne i32 %t53, 0
|
|
br i1 %t54, label %then5, label %ifend7
|
|
then5:
|
|
%t55 = call ptr @fn_emit_bind(ptr @.str2063)
|
|
store ptr %t55, ptr %t56
|
|
%t57 = load ptr, ptr %t56
|
|
%t58 = call ptr @fn_str_concat(ptr @.str2064, ptr %t57)
|
|
%t59 = call ptr @fn_str_concat(ptr %t58, ptr @.str2065)
|
|
%t60 = call ptr @fn_emit_bind(ptr %t59)
|
|
store ptr %t60, ptr %t61
|
|
%t62 = load ptr, ptr %t11
|
|
%t63 = call ptr @fn_str_concat(ptr @.str2066, ptr %t62)
|
|
%t64 = call ptr @fn_str_concat(ptr %t63, ptr @.str2067)
|
|
%t65 = load ptr, ptr %t61
|
|
%t66 = call ptr @fn_str_concat(ptr %t64, ptr %t65)
|
|
%t67 = call ptr @fn_emit_bind(ptr %t66)
|
|
store ptr %t67, ptr %t11
|
|
br label %ifend7
|
|
ifend7:
|
|
%t68 = call ptr @fn_lbl(ptr @.str2068)
|
|
store ptr %t68, ptr %t69
|
|
%t70 = call ptr @fn_lbl(ptr @.str2069)
|
|
store ptr %t70, ptr %t71
|
|
call void @fn_emit(ptr @.str2070)
|
|
%t72 = load ptr, ptr %t11
|
|
call void @fn_emit(ptr %t72)
|
|
call void @fn_emit(ptr @.str2071)
|
|
%t73 = load ptr, ptr %t69
|
|
call void @fn_emit(ptr %t73)
|
|
call void @fn_emit(ptr @.str2072)
|
|
%t74 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t74)
|
|
call void @fn_emit(ptr @.str2073)
|
|
%t75 = load ptr, ptr %t69
|
|
call void @fn_emit(ptr %t75)
|
|
call void @fn_emit(ptr @.str2074)
|
|
%t76 = load ptr, ptr %t0
|
|
%t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 1
|
|
%t78 = load ptr, ptr %t77
|
|
call void @fn_emit(ptr %t78)
|
|
call void @fn_emit(ptr @.str2075)
|
|
call void @fn_emit(ptr @.str2076)
|
|
%t79 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t79)
|
|
call void @fn_emit(ptr @.str2077)
|
|
%t80 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t80)
|
|
call void @fn_emit(ptr @.str2078)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_calls_for_phase(ptr %arg_phase) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t15 = alloca ptr
|
|
%t16 = alloca i32
|
|
%t17 = alloca i32
|
|
%t47 = alloca i32
|
|
%t61 = alloca ptr
|
|
%t62 = alloca i32
|
|
%t63 = alloca i32
|
|
%t97 = alloca ptr
|
|
%t111 = alloca ptr
|
|
%t112 = alloca i32
|
|
%t113 = alloca i32
|
|
%t151 = alloca ptr
|
|
%t153 = alloca ptr
|
|
%t155 = alloca ptr
|
|
store ptr %arg_phase, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_prog
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_prog
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
store ptr %t14, ptr %t15
|
|
%t18 = load ptr, ptr %t15
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0
|
|
%t20 = load i32, ptr %t19
|
|
%t21 = icmp eq i32 %t20, 9
|
|
%t22 = zext i1 %t21 to i32
|
|
%t23 = icmp ne i32 %t22, 0
|
|
%t24 = zext i1 %t23 to i32
|
|
store i32 %t24, ptr %t17
|
|
br i1 %t23, label %sc3, label %scend4
|
|
sc3:
|
|
%t25 = load ptr, ptr %t15
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 3
|
|
%t27 = load ptr, ptr %t26
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = call i32 @fn_str_eq(ptr %t27, ptr %t28)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
%t31 = zext i1 %t30 to i32
|
|
store i32 %t31, ptr %t17
|
|
br label %scend4
|
|
scend4:
|
|
%t32 = load i32, ptr %t17
|
|
%t33 = icmp ne i32 %t32, 0
|
|
%t34 = zext i1 %t33 to i32
|
|
store i32 %t34, ptr %t16
|
|
br i1 %t33, label %sc5, label %scend6
|
|
sc5:
|
|
%t35 = load ptr, ptr %t15
|
|
%t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 6
|
|
%t37 = load ptr, ptr %t36
|
|
%t38 = icmp eq ptr %t37, null
|
|
%t39 = zext i1 %t38 to i32
|
|
%t40 = icmp ne i32 %t39, 0
|
|
%t41 = zext i1 %t40 to i32
|
|
store i32 %t41, ptr %t16
|
|
br label %scend6
|
|
scend6:
|
|
%t42 = load i32, ptr %t16
|
|
%t43 = icmp ne i32 %t42, 0
|
|
br i1 %t43, label %then7, label %ifend9
|
|
then7:
|
|
%t44 = load ptr, ptr %t15
|
|
call void @fn_emit_call_one(ptr %t44)
|
|
br label %ifend9
|
|
ifend9:
|
|
%t45 = load i32, ptr %t1
|
|
%t46 = add i32 %t45, 1
|
|
store i32 %t46, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %t47
|
|
store i32 0, ptr %t1
|
|
br label %wcond10
|
|
wcond10:
|
|
%t48 = load i32, ptr %t1
|
|
%t49 = load ptr, ptr @g_prog
|
|
%t50 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 1
|
|
%t51 = load i32, ptr %t50
|
|
%t52 = icmp slt i32 %t48, %t51
|
|
%t53 = zext i1 %t52 to i32
|
|
%t54 = icmp ne i32 %t53, 0
|
|
br i1 %t54, label %wbody11, label %wend12
|
|
wbody11:
|
|
%t55 = load ptr, ptr @g_prog
|
|
%t56 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 0
|
|
%t57 = load ptr, ptr %t56
|
|
%t58 = load i32, ptr %t1
|
|
%t59 = getelementptr inbounds ptr, ptr %t57, i32 %t58
|
|
%t60 = load ptr, ptr %t59
|
|
store ptr %t60, ptr %t61
|
|
%t64 = load ptr, ptr %t61
|
|
%t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 0
|
|
%t66 = load i32, ptr %t65
|
|
%t67 = icmp eq i32 %t66, 9
|
|
%t68 = zext i1 %t67 to i32
|
|
%t69 = icmp ne i32 %t68, 0
|
|
%t70 = zext i1 %t69 to i32
|
|
store i32 %t70, ptr %t63
|
|
br i1 %t69, label %sc13, label %scend14
|
|
sc13:
|
|
%t71 = load ptr, ptr %t61
|
|
%t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 3
|
|
%t73 = load ptr, ptr %t72
|
|
%t74 = load ptr, ptr %t0
|
|
%t75 = call i32 @fn_str_eq(ptr %t73, ptr %t74)
|
|
%t76 = icmp ne i32 %t75, 0
|
|
%t77 = zext i1 %t76 to i32
|
|
store i32 %t77, ptr %t63
|
|
br label %scend14
|
|
scend14:
|
|
%t78 = load i32, ptr %t63
|
|
%t79 = icmp ne i32 %t78, 0
|
|
%t80 = zext i1 %t79 to i32
|
|
store i32 %t80, ptr %t62
|
|
br i1 %t79, label %sc15, label %scend16
|
|
sc15:
|
|
%t81 = load ptr, ptr %t61
|
|
%t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 6
|
|
%t83 = load ptr, ptr %t82
|
|
%t84 = icmp ne ptr %t83, null
|
|
%t85 = zext i1 %t84 to i32
|
|
%t86 = icmp ne i32 %t85, 0
|
|
%t87 = zext i1 %t86 to i32
|
|
store i32 %t87, ptr %t62
|
|
br label %scend16
|
|
scend16:
|
|
%t88 = load i32, ptr %t62
|
|
%t89 = icmp ne i32 %t88, 0
|
|
br i1 %t89, label %then17, label %ifend19
|
|
then17:
|
|
store i32 1, ptr %t47
|
|
br label %ifend19
|
|
ifend19:
|
|
%t90 = load i32, ptr %t1
|
|
%t91 = add i32 %t90, 1
|
|
store i32 %t91, ptr %t1
|
|
br label %wcond10
|
|
wend12:
|
|
%t92 = load i32, ptr %t47
|
|
%t93 = icmp eq i32 %t92, 0
|
|
%t94 = zext i1 %t93 to i32
|
|
%t95 = icmp ne i32 %t94, 0
|
|
br i1 %t95, label %then20, label %ifend22
|
|
then20:
|
|
br label %ret
|
|
ifend22:
|
|
%t96 = call ptr @fn_emit_bind(ptr @.str2079)
|
|
store ptr %t96, ptr %t97
|
|
store i32 0, ptr %t1
|
|
br label %wcond23
|
|
wcond23:
|
|
%t98 = load i32, ptr %t1
|
|
%t99 = load ptr, ptr @g_prog
|
|
%t100 = getelementptr inbounds %LSlice, ptr %t99, i32 0, i32 1
|
|
%t101 = load i32, ptr %t100
|
|
%t102 = icmp slt i32 %t98, %t101
|
|
%t103 = zext i1 %t102 to i32
|
|
%t104 = icmp ne i32 %t103, 0
|
|
br i1 %t104, label %wbody24, label %wend25
|
|
wbody24:
|
|
%t105 = load ptr, ptr @g_prog
|
|
%t106 = getelementptr inbounds %LSlice, ptr %t105, i32 0, i32 0
|
|
%t107 = load ptr, ptr %t106
|
|
%t108 = load i32, ptr %t1
|
|
%t109 = getelementptr inbounds ptr, ptr %t107, i32 %t108
|
|
%t110 = load ptr, ptr %t109
|
|
store ptr %t110, ptr %t111
|
|
%t114 = load ptr, ptr %t111
|
|
%t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 0
|
|
%t116 = load i32, ptr %t115
|
|
%t117 = icmp eq i32 %t116, 9
|
|
%t118 = zext i1 %t117 to i32
|
|
%t119 = icmp ne i32 %t118, 0
|
|
%t120 = zext i1 %t119 to i32
|
|
store i32 %t120, ptr %t113
|
|
br i1 %t119, label %sc26, label %scend27
|
|
sc26:
|
|
%t121 = load ptr, ptr %t111
|
|
%t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 3
|
|
%t123 = load ptr, ptr %t122
|
|
%t124 = load ptr, ptr %t0
|
|
%t125 = call i32 @fn_str_eq(ptr %t123, ptr %t124)
|
|
%t126 = icmp ne i32 %t125, 0
|
|
%t127 = zext i1 %t126 to i32
|
|
store i32 %t127, ptr %t113
|
|
br label %scend27
|
|
scend27:
|
|
%t128 = load i32, ptr %t113
|
|
%t129 = icmp ne i32 %t128, 0
|
|
%t130 = zext i1 %t129 to i32
|
|
store i32 %t130, ptr %t112
|
|
br i1 %t129, label %sc28, label %scend29
|
|
sc28:
|
|
%t131 = load ptr, ptr %t111
|
|
%t132 = getelementptr inbounds %Cmp_Node, ptr %t131, i32 0, i32 6
|
|
%t133 = load ptr, ptr %t132
|
|
%t134 = icmp ne ptr %t133, null
|
|
%t135 = zext i1 %t134 to i32
|
|
%t136 = icmp ne i32 %t135, 0
|
|
%t137 = zext i1 %t136 to i32
|
|
store i32 %t137, ptr %t112
|
|
br label %scend29
|
|
scend29:
|
|
%t138 = load i32, ptr %t112
|
|
%t139 = icmp ne i32 %t138, 0
|
|
br i1 %t139, label %then30, label %ifend32
|
|
then30:
|
|
%t140 = load ptr, ptr %t97
|
|
%t141 = call ptr @fn_str_concat(ptr @.str2080, ptr %t140)
|
|
%t142 = call ptr @fn_str_concat(ptr %t141, ptr @.str2081)
|
|
%t143 = load ptr, ptr %t111
|
|
%t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 6
|
|
%t145 = load ptr, ptr %t144
|
|
%t146 = getelementptr inbounds %Cmp_Node, ptr %t145, i32 0, i32 2
|
|
%t147 = load i32, ptr %t146
|
|
%t148 = call ptr @fn_itoa(i32 %t147)
|
|
%t149 = call ptr @fn_str_concat(ptr %t142, ptr %t148)
|
|
%t150 = call ptr @fn_emit_bind(ptr %t149)
|
|
store ptr %t150, ptr %t151
|
|
%t152 = call ptr @fn_lbl(ptr @.str2082)
|
|
store ptr %t152, ptr %t153
|
|
%t154 = call ptr @fn_lbl(ptr @.str2083)
|
|
store ptr %t154, ptr %t155
|
|
call void @fn_emit(ptr @.str2084)
|
|
%t156 = load ptr, ptr %t151
|
|
call void @fn_emit(ptr %t156)
|
|
call void @fn_emit(ptr @.str2085)
|
|
%t157 = load ptr, ptr %t153
|
|
call void @fn_emit(ptr %t157)
|
|
call void @fn_emit(ptr @.str2086)
|
|
%t158 = load ptr, ptr %t155
|
|
call void @fn_emit(ptr %t158)
|
|
call void @fn_emit(ptr @.str2087)
|
|
%t159 = load ptr, ptr %t153
|
|
call void @fn_emit(ptr %t159)
|
|
call void @fn_emit(ptr @.str2088)
|
|
%t160 = load ptr, ptr %t111
|
|
call void @fn_emit_call_one(ptr %t160)
|
|
call void @fn_emit(ptr @.str2089)
|
|
%t161 = load ptr, ptr %t155
|
|
call void @fn_emit(ptr %t161)
|
|
call void @fn_emit(ptr @.str2090)
|
|
%t162 = load ptr, ptr %t155
|
|
call void @fn_emit(ptr %t162)
|
|
call void @fn_emit(ptr @.str2091)
|
|
br label %ifend32
|
|
ifend32:
|
|
%t163 = load i32, ptr %t1
|
|
%t164 = add i32 %t163, 1
|
|
store i32 %t164, ptr %t1
|
|
br label %wcond23
|
|
wend25:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_scene_fn(ptr %arg_name, ptr %arg_kind, ptr %arg_body) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t7 = alloca ptr
|
|
%t19 = alloca ptr
|
|
%t20 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store ptr %arg_kind, ptr %t1
|
|
store ptr %arg_body, ptr %t2
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
store i32 0, ptr @g_g_term
|
|
call void @fn_loc_reset()
|
|
store i32 0, ptr @g_nloop
|
|
store i32 0, ptr @g_nself
|
|
store ptr @.str2092, ptr @g_ret_ty
|
|
%t3 = call ptr @fn_buf_new()
|
|
store ptr %t3, ptr %t4
|
|
%t5 = call ptr @fn_buf_new()
|
|
store ptr %t5, ptr @g_falloc
|
|
%t6 = load ptr, ptr @g_code
|
|
store ptr %t6, ptr %t7
|
|
%t8 = load ptr, ptr %t4
|
|
store ptr %t8, ptr @g_code
|
|
%t9 = load ptr, ptr %t2
|
|
%t10 = icmp ne ptr %t9, null
|
|
%t11 = zext i1 %t10 to i32
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then0, label %ifend2
|
|
then0:
|
|
%t13 = load ptr, ptr %t2
|
|
call void @fn_emit_block(ptr %t13)
|
|
br label %ifend2
|
|
ifend2:
|
|
%t14 = load ptr, ptr %t0
|
|
%t15 = call ptr @fn_str_concat(ptr @.str2093, ptr %t14)
|
|
%t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str2094)
|
|
%t17 = load ptr, ptr %t1
|
|
%t18 = call ptr @fn_str_concat(ptr %t16, ptr %t17)
|
|
store ptr %t18, ptr %t19
|
|
%t21 = load i32, ptr @g_g_term
|
|
%t22 = icmp eq i32 %t21, 0
|
|
%t23 = zext i1 %t22 to i32
|
|
%t24 = icmp ne i32 %t23, 0
|
|
%t25 = zext i1 %t24 to i32
|
|
store i32 %t25, ptr %t20
|
|
br i1 %t24, label %sc3, label %scend4
|
|
sc3:
|
|
%t26 = load ptr, ptr %t19
|
|
%t27 = call ptr @fn_find_event(ptr %t26)
|
|
%t28 = icmp ne ptr %t27, null
|
|
%t29 = zext i1 %t28 to i32
|
|
%t30 = icmp ne i32 %t29, 0
|
|
%t31 = zext i1 %t30 to i32
|
|
store i32 %t31, ptr %t20
|
|
br label %scend4
|
|
scend4:
|
|
%t32 = load i32, ptr %t20
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then5, label %ifend7
|
|
then5:
|
|
call void @fn_emit(ptr @.str2095)
|
|
%t34 = load ptr, ptr %t19
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str2096)
|
|
br label %ifend7
|
|
ifend7:
|
|
%t35 = load i32, ptr @g_g_term
|
|
%t36 = icmp eq i32 %t35, 0
|
|
%t37 = zext i1 %t36 to i32
|
|
%t38 = icmp ne i32 %t37, 0
|
|
br i1 %t38, label %then8, label %ifend10
|
|
then8:
|
|
call void @fn_emit(ptr @.str2097)
|
|
br label %ifend10
|
|
ifend10:
|
|
call void @fn_emit(ptr @.str2098)
|
|
%t39 = load ptr, ptr %t7
|
|
store ptr %t39, ptr @g_code
|
|
call void @fn_emit(ptr @.str2099)
|
|
%t40 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t40)
|
|
call void @fn_emit(ptr @.str2100)
|
|
%t41 = load ptr, ptr %t0
|
|
call void @fn_emit(ptr %t41)
|
|
call void @fn_emit(ptr @.str2101)
|
|
%t42 = load ptr, ptr @g_falloc
|
|
%t43 = call ptr @fn_buf_str(ptr %t42)
|
|
call void @fn_emit(ptr %t43)
|
|
%t44 = load ptr, ptr %t4
|
|
%t45 = call ptr @fn_buf_str(ptr %t44)
|
|
call void @fn_emit(ptr %t45)
|
|
call void @fn_emit(ptr @.str2102)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_scene_hooks() {
|
|
entry:
|
|
%t0 = alloca i32
|
|
%t14 = alloca ptr
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_g_scenes
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_g_scenes
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
store ptr %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t14
|
|
store ptr %t15, ptr @g_g_cur_scene
|
|
%t16 = load ptr, ptr %t14
|
|
%t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 1
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = load ptr, ptr %t14
|
|
%t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 4
|
|
%t21 = load ptr, ptr %t20
|
|
call void @fn_emit_scene_fn(ptr %t18, ptr @.str2103, ptr %t21)
|
|
%t22 = load ptr, ptr %t14
|
|
%t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = load ptr, ptr %t14
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 5
|
|
%t27 = load ptr, ptr %t26
|
|
call void @fn_emit_scene_fn(ptr %t24, ptr @.str2104, ptr %t27)
|
|
%t28 = load i32, ptr %t0
|
|
%t29 = add i32 %t28, 1
|
|
store i32 %t29, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_despawn_hooks() {
|
|
entry:
|
|
%t0 = alloca i32
|
|
%t14 = alloca ptr
|
|
%t19 = alloca ptr
|
|
%t21 = alloca ptr
|
|
%t24 = alloca ptr
|
|
%t33 = alloca ptr
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_g_ondespawn
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_g_ondespawn
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
store ptr %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = call ptr @fn_find_arch(ptr %t17)
|
|
store ptr %t18, ptr %t19
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
store i32 0, ptr @g_g_term
|
|
call void @fn_loc_reset()
|
|
store i32 0, ptr @g_nloop
|
|
store i32 0, ptr @g_nself
|
|
store ptr @.str2105, ptr @g_ret_ty
|
|
%t20 = call ptr @fn_buf_new()
|
|
store ptr %t20, ptr %t21
|
|
%t22 = call ptr @fn_buf_new()
|
|
store ptr %t22, ptr @g_falloc
|
|
%t23 = load ptr, ptr @g_code
|
|
store ptr %t23, ptr %t24
|
|
%t25 = load ptr, ptr %t21
|
|
store ptr %t25, ptr @g_code
|
|
%t26 = load ptr, ptr %t14
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 3
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = icmp ne ptr %t28, null
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
br i1 %t31, label %then3, label %ifend5
|
|
then3:
|
|
%t32 = call ptr @fn_emit_alloca(ptr @.str2106)
|
|
store ptr %t32, ptr %t33
|
|
call void @fn_emit(ptr @.str2107)
|
|
%t34 = load ptr, ptr %t33
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str2108)
|
|
%t35 = load ptr, ptr %t14
|
|
%t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 3
|
|
%t37 = load ptr, ptr %t36
|
|
%t38 = load ptr, ptr %t33
|
|
call void @fn_loc_push(ptr %t37, ptr %t38, ptr @.str2109)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t39 = load ptr, ptr %t19
|
|
call void @fn_emit_bind_props(ptr %t39, ptr @.str2110)
|
|
%t40 = load ptr, ptr %t14
|
|
%t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 4
|
|
%t42 = load ptr, ptr %t41
|
|
call void @fn_emit_block(ptr %t42)
|
|
%t43 = load i32, ptr @g_g_term
|
|
%t44 = icmp eq i32 %t43, 0
|
|
%t45 = zext i1 %t44 to i32
|
|
%t46 = icmp ne i32 %t45, 0
|
|
br i1 %t46, label %then6, label %ifend8
|
|
then6:
|
|
call void @fn_emit(ptr @.str2111)
|
|
br label %ifend8
|
|
ifend8:
|
|
call void @fn_emit(ptr @.str2112)
|
|
%t47 = load ptr, ptr %t24
|
|
store ptr %t47, ptr @g_code
|
|
call void @fn_emit(ptr @.str2113)
|
|
%t48 = load ptr, ptr %t14
|
|
%t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 1
|
|
%t50 = load ptr, ptr %t49
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str2114)
|
|
%t51 = load ptr, ptr @g_falloc
|
|
%t52 = call ptr @fn_buf_str(ptr %t51)
|
|
call void @fn_emit(ptr %t52)
|
|
%t53 = load ptr, ptr %t21
|
|
%t54 = call ptr @fn_buf_str(ptr %t53)
|
|
call void @fn_emit(ptr %t54)
|
|
call void @fn_emit(ptr @.str2115)
|
|
%t55 = load i32, ptr %t0
|
|
%t56 = add i32 %t55, 1
|
|
store i32 %t56, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_emit_despawn_all_fn()
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_despawn_all_fn() {
|
|
entry:
|
|
%t7 = alloca ptr
|
|
%t10 = alloca i32
|
|
%t26 = alloca ptr
|
|
%t29 = alloca ptr
|
|
%t42 = alloca ptr
|
|
%t0 = load ptr, ptr @g_g_ondespawn
|
|
%t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 1
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = icmp eq i32 %t2, 0
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
br label %ret
|
|
ifend2:
|
|
%t6 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t6, ptr %t7
|
|
call void @fn_emit(ptr @.str2116)
|
|
call void @fn_emit(ptr @.str2117)
|
|
call void @fn_emit(ptr @.str2118)
|
|
call void @fn_emit(ptr @.str2119)
|
|
call void @fn_emit(ptr @.str2120)
|
|
%t8 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t8)
|
|
call void @fn_emit(ptr @.str2121)
|
|
call void @fn_emit(ptr @.str2122)
|
|
call void @fn_emit(ptr @.str2123)
|
|
call void @fn_emit(ptr @.str2124)
|
|
%t9 = load ptr, ptr %t7
|
|
call void @fn_emit(ptr %t9)
|
|
call void @fn_emit(ptr @.str2125)
|
|
call void @fn_emit(ptr @.str2126)
|
|
store i32 0, ptr %t10
|
|
br label %wcond3
|
|
wcond3:
|
|
%t11 = load i32, ptr %t10
|
|
%t12 = load ptr, ptr @g_g_ondespawn
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1
|
|
%t14 = load i32, ptr %t13
|
|
%t15 = icmp slt i32 %t11, %t14
|
|
%t16 = zext i1 %t15 to i32
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t18 = load ptr, ptr @g_g_ondespawn
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = load i32, ptr %t10
|
|
%t22 = getelementptr inbounds ptr, ptr %t20, i32 %t21
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1
|
|
%t25 = load ptr, ptr %t24
|
|
store ptr %t25, ptr %t26
|
|
%t27 = load i32, ptr %t10
|
|
%t28 = call ptr @fn_itoa(i32 %t27)
|
|
store ptr %t28, ptr %t29
|
|
call void @fn_emit(ptr @.str2127)
|
|
%t30 = load ptr, ptr %t29
|
|
call void @fn_emit(ptr %t30)
|
|
call void @fn_emit(ptr @.str2128)
|
|
%t31 = load ptr, ptr %t26
|
|
%t32 = call i32 @fn_find_arch_id(ptr %t31)
|
|
%t33 = call ptr @fn_itoa(i32 %t32)
|
|
call void @fn_emit(ptr %t33)
|
|
call void @fn_emit(ptr @.str2129)
|
|
call void @fn_emit(ptr @.str2130)
|
|
%t34 = load ptr, ptr %t29
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str2131)
|
|
%t35 = load ptr, ptr %t29
|
|
call void @fn_emit(ptr %t35)
|
|
call void @fn_emit(ptr @.str2132)
|
|
%t36 = load ptr, ptr %t29
|
|
call void @fn_emit(ptr %t36)
|
|
call void @fn_emit(ptr @.str2133)
|
|
call void @fn_emit(ptr @.str2134)
|
|
%t37 = load ptr, ptr %t29
|
|
call void @fn_emit(ptr %t37)
|
|
call void @fn_emit(ptr @.str2135)
|
|
%t38 = load ptr, ptr %t26
|
|
call void @fn_emit(ptr %t38)
|
|
call void @fn_emit(ptr @.str2136)
|
|
%t39 = load ptr, ptr %t26
|
|
%t40 = call ptr @fn_str_concat(ptr @.str2137, ptr %t39)
|
|
%t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str2138)
|
|
store ptr %t41, ptr %t42
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = call ptr @fn_find_event(ptr %t43)
|
|
%t45 = icmp ne ptr %t44, null
|
|
%t46 = zext i1 %t45 to i32
|
|
%t47 = icmp ne i32 %t46, 0
|
|
br i1 %t47, label %then6, label %ifend8
|
|
then6:
|
|
call void @fn_emit(ptr @.str2139)
|
|
%t48 = load ptr, ptr %t42
|
|
call void @fn_emit(ptr %t48)
|
|
call void @fn_emit(ptr @.str2140)
|
|
br label %ifend8
|
|
ifend8:
|
|
call void @fn_emit(ptr @.str2141)
|
|
%t49 = load ptr, ptr %t29
|
|
call void @fn_emit(ptr %t49)
|
|
call void @fn_emit(ptr @.str2142)
|
|
call void @fn_emit(ptr @.str2143)
|
|
%t50 = load ptr, ptr %t29
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str2144)
|
|
%t51 = load i32, ptr %t10
|
|
%t52 = add i32 %t51, 1
|
|
store i32 %t52, ptr %t10
|
|
br label %wcond3
|
|
wend5:
|
|
call void @fn_emit(ptr @.str2145)
|
|
call void @fn_emit(ptr @.str2146)
|
|
call void @fn_emit(ptr @.str2147)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_event_fns() {
|
|
entry:
|
|
%t0 = alloca i32
|
|
%t14 = alloca ptr
|
|
%t18 = alloca ptr
|
|
%t20 = alloca ptr
|
|
%t22 = alloca i32
|
|
%t89 = alloca ptr
|
|
%t92 = alloca ptr
|
|
%t104 = alloca ptr
|
|
%t105 = alloca i32
|
|
%t123 = alloca ptr
|
|
%t128 = alloca ptr
|
|
%t130 = alloca ptr
|
|
%t142 = alloca ptr
|
|
%t156 = alloca ptr
|
|
%t176 = alloca i32
|
|
%t177 = alloca i32
|
|
%t212 = alloca ptr
|
|
%t215 = alloca ptr
|
|
%t217 = alloca ptr
|
|
%t219 = alloca ptr
|
|
%t225 = alloca ptr
|
|
%t229 = alloca ptr
|
|
%t236 = alloca ptr
|
|
%t242 = alloca ptr
|
|
%t250 = alloca ptr
|
|
%t255 = alloca ptr
|
|
%t257 = alloca ptr
|
|
%t259 = alloca ptr
|
|
%t272 = alloca ptr
|
|
%t286 = alloca ptr
|
|
%t289 = alloca ptr
|
|
%t298 = alloca i32
|
|
%t334 = alloca ptr
|
|
%t335 = alloca i32
|
|
%t351 = alloca ptr
|
|
%t354 = alloca ptr
|
|
call void @fn_emith(ptr @.str2148)
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_g_events
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_g_events
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
store ptr %t13, ptr %t14
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1
|
|
%t17 = load ptr, ptr %t16
|
|
store ptr %t17, ptr %t18
|
|
%t19 = call ptr @fn_itoa(i32 16)
|
|
store ptr %t19, ptr %t20
|
|
call void @fn_emith(ptr @.str2149)
|
|
%t21 = load ptr, ptr %t18
|
|
call void @fn_emith(ptr %t21)
|
|
call void @fn_emith(ptr @.str2150)
|
|
store i32 0, ptr %t22
|
|
br label %wcond3
|
|
wcond3:
|
|
%t23 = load i32, ptr %t22
|
|
%t24 = load ptr, ptr %t14
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 7
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1
|
|
%t28 = load i32, ptr %t27
|
|
%t29 = icmp slt i32 %t23, %t28
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
br i1 %t31, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t32 = load i32, ptr %t22
|
|
%t33 = icmp sgt i32 %t32, 0
|
|
%t34 = zext i1 %t33 to i32
|
|
%t35 = icmp ne i32 %t34, 0
|
|
br i1 %t35, label %then6, label %ifend8
|
|
then6:
|
|
call void @fn_emith(ptr @.str2151)
|
|
br label %ifend8
|
|
ifend8:
|
|
%t36 = load ptr, ptr %t14
|
|
%t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = load i32, ptr %t22
|
|
%t42 = getelementptr inbounds ptr, ptr %t40, i32 %t41
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 3
|
|
%t45 = load ptr, ptr %t44
|
|
%t46 = call ptr @fn_llty(ptr %t45)
|
|
call void @fn_emith(ptr %t46)
|
|
%t47 = load i32, ptr %t22
|
|
%t48 = add i32 %t47, 1
|
|
store i32 %t48, ptr %t22
|
|
br label %wcond3
|
|
wend5:
|
|
%t49 = load ptr, ptr %t14
|
|
%t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 2
|
|
%t51 = load i32, ptr %t50
|
|
%t52 = icmp eq i32 %t51, 1
|
|
%t53 = zext i1 %t52 to i32
|
|
%t54 = icmp ne i32 %t53, 0
|
|
br i1 %t54, label %then9, label %ifend11
|
|
then9:
|
|
%t55 = load ptr, ptr %t14
|
|
%t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 7
|
|
%t57 = load ptr, ptr %t56
|
|
%t58 = getelementptr inbounds %LSlice, ptr %t57, i32 0, i32 1
|
|
%t59 = load i32, ptr %t58
|
|
%t60 = icmp sgt i32 %t59, 0
|
|
%t61 = zext i1 %t60 to i32
|
|
%t62 = icmp ne i32 %t61, 0
|
|
br i1 %t62, label %then12, label %ifend14
|
|
then12:
|
|
call void @fn_emith(ptr @.str2152)
|
|
br label %ifend14
|
|
ifend14:
|
|
call void @fn_emith(ptr @.str2153)
|
|
br label %ifend11
|
|
ifend11:
|
|
call void @fn_emith(ptr @.str2154)
|
|
call void @fn_emith(ptr @.str2155)
|
|
%t63 = load ptr, ptr %t18
|
|
call void @fn_emith(ptr %t63)
|
|
call void @fn_emith(ptr @.str2156)
|
|
%t64 = load ptr, ptr %t20
|
|
call void @fn_emith(ptr %t64)
|
|
call void @fn_emith(ptr @.str2157)
|
|
call void @fn_emith(ptr @.str2158)
|
|
%t65 = load ptr, ptr %t18
|
|
call void @fn_emith(ptr %t65)
|
|
call void @fn_emith(ptr @.str2159)
|
|
call void @fn_emith(ptr @.str2160)
|
|
%t66 = load ptr, ptr %t18
|
|
call void @fn_emith(ptr %t66)
|
|
call void @fn_emith(ptr @.str2161)
|
|
%t67 = load ptr, ptr %t20
|
|
call void @fn_emith(ptr %t67)
|
|
call void @fn_emith(ptr @.str2162)
|
|
call void @fn_emit(ptr @.str2163)
|
|
%t68 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t68)
|
|
call void @fn_emit(ptr @.str2164)
|
|
call void @fn_emit(ptr @.str2165)
|
|
%t69 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t69)
|
|
call void @fn_emit(ptr @.str2166)
|
|
call void @fn_emit(ptr @.str2167)
|
|
%t70 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t70)
|
|
call void @fn_emit(ptr @.str2168)
|
|
call void @fn_emit(ptr @.str2169)
|
|
call void @fn_emit(ptr @.str2170)
|
|
%t71 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t71)
|
|
call void @fn_emit(ptr @.str2171)
|
|
%t72 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t72)
|
|
call void @fn_emit(ptr @.str2172)
|
|
call void @fn_emit(ptr @.str2173)
|
|
call void @fn_emit(ptr @.str2174)
|
|
%t73 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t73)
|
|
call void @fn_emit(ptr @.str2175)
|
|
%t74 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t74)
|
|
call void @fn_emit(ptr @.str2176)
|
|
call void @fn_emit(ptr @.str2177)
|
|
call void @fn_emit(ptr @.str2178)
|
|
%t75 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t75)
|
|
call void @fn_emit(ptr @.str2179)
|
|
call void @fn_emit(ptr @.str2180)
|
|
call void @fn_emit(ptr @.str2181)
|
|
%t76 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t76)
|
|
call void @fn_emit(ptr @.str2182)
|
|
call void @fn_emit(ptr @.str2183)
|
|
%t77 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t77)
|
|
call void @fn_emit(ptr @.str2184)
|
|
call void @fn_emit(ptr @.str2185)
|
|
%t78 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t78)
|
|
call void @fn_emit(ptr @.str2186)
|
|
call void @fn_emit(ptr @.str2187)
|
|
call void @fn_emit(ptr @.str2188)
|
|
%t79 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t79)
|
|
call void @fn_emit(ptr @.str2189)
|
|
%t80 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t80)
|
|
call void @fn_emit(ptr @.str2190)
|
|
call void @fn_emit(ptr @.str2191)
|
|
call void @fn_emit(ptr @.str2192)
|
|
%t81 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t81)
|
|
call void @fn_emit(ptr @.str2193)
|
|
%t82 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t82)
|
|
call void @fn_emit(ptr @.str2194)
|
|
call void @fn_emit(ptr @.str2195)
|
|
call void @fn_emit(ptr @.str2196)
|
|
%t83 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t83)
|
|
call void @fn_emit(ptr @.str2197)
|
|
call void @fn_emit(ptr @.str2198)
|
|
call void @fn_emit(ptr @.str2199)
|
|
%t84 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t84)
|
|
call void @fn_emit(ptr @.str2200)
|
|
call void @fn_emit(ptr @.str2201)
|
|
%t85 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t85)
|
|
call void @fn_emit(ptr @.str2202)
|
|
call void @fn_emit(ptr @.str2203)
|
|
call void @fn_emit(ptr @.str2204)
|
|
call void @fn_emit(ptr @.str2205)
|
|
%t86 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t86)
|
|
call void @fn_emit(ptr @.str2206)
|
|
%t87 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t87)
|
|
call void @fn_emit(ptr @.str2207)
|
|
call void @fn_emit(ptr @.str2208)
|
|
call void @fn_emit(ptr @.str2209)
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
store i32 0, ptr @g_g_term
|
|
call void @fn_loc_reset()
|
|
store i32 0, ptr @g_nloop
|
|
store i32 0, ptr @g_nself
|
|
store ptr @.str2210, ptr @g_ret_ty
|
|
%t88 = call ptr @fn_buf_new()
|
|
store ptr %t88, ptr %t89
|
|
%t90 = call ptr @fn_buf_new()
|
|
store ptr %t90, ptr @g_falloc
|
|
%t91 = load ptr, ptr @g_code
|
|
store ptr %t91, ptr %t92
|
|
%t93 = load ptr, ptr %t89
|
|
store ptr %t93, ptr @g_code
|
|
call void @fn_emit(ptr @.str2211)
|
|
call void @fn_emit(ptr @.str2212)
|
|
%t94 = call ptr @fn_itoa(i32 32)
|
|
call void @fn_emit(ptr %t94)
|
|
call void @fn_emit(ptr @.str2213)
|
|
call void @fn_emit(ptr @.str2214)
|
|
call void @fn_emit(ptr @.str2215)
|
|
%t95 = load ptr, ptr %t14
|
|
%t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 2
|
|
%t97 = load i32, ptr %t96
|
|
%t98 = icmp eq i32 %t97, 1
|
|
%t99 = zext i1 %t98 to i32
|
|
%t100 = icmp ne i32 %t99, 0
|
|
br i1 %t100, label %then15, label %else16
|
|
then15:
|
|
call void @fn_emit(ptr @.str2216)
|
|
br label %ifend17
|
|
else16:
|
|
call void @fn_emit(ptr @.str2217)
|
|
br label %ifend17
|
|
ifend17:
|
|
call void @fn_emit(ptr @.str2218)
|
|
call void @fn_emit(ptr @.str2219)
|
|
%t101 = load ptr, ptr %t18
|
|
%t102 = call ptr @fn_str_concat(ptr @.str2220, ptr %t101)
|
|
%t103 = call ptr @fn_emit_alloca(ptr %t102)
|
|
store ptr %t103, ptr %t104
|
|
store i32 0, ptr %t105
|
|
br label %wcond18
|
|
wcond18:
|
|
%t106 = load i32, ptr %t105
|
|
%t107 = load ptr, ptr %t14
|
|
%t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 7
|
|
%t109 = load ptr, ptr %t108
|
|
%t110 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 1
|
|
%t111 = load i32, ptr %t110
|
|
%t112 = icmp slt i32 %t106, %t111
|
|
%t113 = zext i1 %t112 to i32
|
|
%t114 = icmp ne i32 %t113, 0
|
|
br i1 %t114, label %wbody19, label %wend20
|
|
wbody19:
|
|
%t115 = load ptr, ptr %t14
|
|
%t116 = getelementptr inbounds %Cmp_Node, ptr %t115, i32 0, i32 7
|
|
%t117 = load ptr, ptr %t116
|
|
%t118 = getelementptr inbounds %LSlice, ptr %t117, i32 0, i32 0
|
|
%t119 = load ptr, ptr %t118
|
|
%t120 = load i32, ptr %t105
|
|
%t121 = getelementptr inbounds ptr, ptr %t119, i32 %t120
|
|
%t122 = load ptr, ptr %t121
|
|
store ptr %t122, ptr %t123
|
|
%t124 = load ptr, ptr %t123
|
|
%t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 3
|
|
%t126 = load ptr, ptr %t125
|
|
%t127 = call ptr @fn_llty(ptr %t126)
|
|
store ptr %t127, ptr %t128
|
|
%t129 = call ptr @fn_nreg()
|
|
store ptr %t129, ptr %t130
|
|
call void @fn_emit(ptr @.str2221)
|
|
%t131 = load ptr, ptr %t130
|
|
call void @fn_emit(ptr %t131)
|
|
call void @fn_emit(ptr @.str2222)
|
|
%t132 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t132)
|
|
call void @fn_emit(ptr @.str2223)
|
|
%t133 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t133)
|
|
call void @fn_emit(ptr @.str2224)
|
|
%t134 = load i32, ptr %t105
|
|
%t135 = call ptr @fn_itoa(i32 %t134)
|
|
call void @fn_emit(ptr %t135)
|
|
call void @fn_emit(ptr @.str2225)
|
|
call void @fn_emit(ptr @.str2226)
|
|
%t136 = load ptr, ptr %t128
|
|
call void @fn_emit(ptr %t136)
|
|
call void @fn_emit(ptr @.str2227)
|
|
%t137 = load i32, ptr %t105
|
|
%t138 = call ptr @fn_itoa(i32 %t137)
|
|
call void @fn_emit(ptr %t138)
|
|
call void @fn_emit(ptr @.str2228)
|
|
%t139 = load ptr, ptr %t130
|
|
call void @fn_emit(ptr %t139)
|
|
call void @fn_emit(ptr @.str2229)
|
|
%t140 = load ptr, ptr %t128
|
|
%t141 = call ptr @fn_emit_alloca(ptr %t140)
|
|
store ptr %t141, ptr %t142
|
|
call void @fn_emit(ptr @.str2230)
|
|
%t143 = load ptr, ptr %t128
|
|
call void @fn_emit(ptr %t143)
|
|
call void @fn_emit(ptr @.str2231)
|
|
%t144 = load i32, ptr %t105
|
|
%t145 = call ptr @fn_itoa(i32 %t144)
|
|
call void @fn_emit(ptr %t145)
|
|
call void @fn_emit(ptr @.str2232)
|
|
%t146 = load ptr, ptr %t142
|
|
call void @fn_emit(ptr %t146)
|
|
call void @fn_emit(ptr @.str2233)
|
|
%t147 = load ptr, ptr %t123
|
|
%t148 = getelementptr inbounds %Cmp_Node, ptr %t147, i32 0, i32 1
|
|
%t149 = load ptr, ptr %t148
|
|
%t150 = load ptr, ptr %t142
|
|
%t151 = load ptr, ptr %t123
|
|
%t152 = getelementptr inbounds %Cmp_Node, ptr %t151, i32 0, i32 3
|
|
%t153 = load ptr, ptr %t152
|
|
call void @fn_loc_push(ptr %t149, ptr %t150, ptr %t153)
|
|
%t154 = load i32, ptr %t105
|
|
%t155 = add i32 %t154, 1
|
|
store i32 %t155, ptr %t105
|
|
br label %wcond18
|
|
wend20:
|
|
store ptr null, ptr %t156
|
|
%t157 = load ptr, ptr %t14
|
|
%t158 = getelementptr inbounds %Cmp_Node, ptr %t157, i32 0, i32 2
|
|
%t159 = load i32, ptr %t158
|
|
%t160 = icmp eq i32 %t159, 1
|
|
%t161 = zext i1 %t160 to i32
|
|
%t162 = icmp ne i32 %t161, 0
|
|
br i1 %t162, label %then21, label %ifend23
|
|
then21:
|
|
%t163 = call ptr @fn_nreg()
|
|
store ptr %t163, ptr %t156
|
|
call void @fn_emit(ptr @.str2234)
|
|
%t164 = load ptr, ptr %t156
|
|
call void @fn_emit(ptr %t164)
|
|
call void @fn_emit(ptr @.str2235)
|
|
%t165 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t165)
|
|
call void @fn_emit(ptr @.str2236)
|
|
%t166 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t166)
|
|
call void @fn_emit(ptr @.str2237)
|
|
%t167 = load ptr, ptr %t14
|
|
%t168 = getelementptr inbounds %Cmp_Node, ptr %t167, i32 0, i32 7
|
|
%t169 = load ptr, ptr %t168
|
|
%t170 = getelementptr inbounds %LSlice, ptr %t169, i32 0, i32 1
|
|
%t171 = load i32, ptr %t170
|
|
%t172 = call ptr @fn_itoa(i32 %t171)
|
|
call void @fn_emit(ptr %t172)
|
|
call void @fn_emit(ptr @.str2238)
|
|
call void @fn_emit(ptr @.str2239)
|
|
%t173 = load ptr, ptr %t156
|
|
call void @fn_emit(ptr %t173)
|
|
call void @fn_emit(ptr @.str2240)
|
|
%t174 = load ptr, ptr %t156
|
|
store ptr %t174, ptr @g_g_cancel_addr
|
|
br label %ifend23
|
|
ifend23:
|
|
%t175 = load i32, ptr @g_nloc
|
|
store i32 %t175, ptr %t176
|
|
store i32 0, ptr %t177
|
|
br label %wcond24
|
|
wcond24:
|
|
%t178 = load i32, ptr %t177
|
|
%t179 = load ptr, ptr @g_g_onlisten
|
|
%t180 = getelementptr inbounds %LSlice, ptr %t179, i32 0, i32 1
|
|
%t181 = load i32, ptr %t180
|
|
%t182 = icmp slt i32 %t178, %t181
|
|
%t183 = zext i1 %t182 to i32
|
|
%t184 = icmp ne i32 %t183, 0
|
|
br i1 %t184, label %wbody25, label %wend26
|
|
wbody25:
|
|
%t185 = load ptr, ptr @g_g_onlisten
|
|
%t186 = getelementptr inbounds %LSlice, ptr %t185, i32 0, i32 0
|
|
%t187 = load ptr, ptr %t186
|
|
%t188 = load i32, ptr %t177
|
|
%t189 = getelementptr inbounds ptr, ptr %t187, i32 %t188
|
|
%t190 = load ptr, ptr %t189
|
|
%t191 = getelementptr inbounds %Cmp_Node, ptr %t190, i32 0, i32 1
|
|
%t192 = load ptr, ptr %t191
|
|
%t193 = load ptr, ptr %t18
|
|
%t194 = call i32 @fn_str_eq(ptr %t192, ptr %t193)
|
|
%t195 = icmp ne i32 %t194, 0
|
|
br i1 %t195, label %then27, label %ifend29
|
|
then27:
|
|
%t196 = load i32, ptr %t176
|
|
store i32 %t196, ptr @g_nloc
|
|
store i32 0, ptr @g_g_term
|
|
%t197 = load ptr, ptr @g_g_onlisten
|
|
%t198 = getelementptr inbounds %LSlice, ptr %t197, i32 0, i32 0
|
|
%t199 = load ptr, ptr %t198
|
|
%t200 = load i32, ptr %t177
|
|
%t201 = getelementptr inbounds ptr, ptr %t199, i32 %t200
|
|
%t202 = load ptr, ptr %t201
|
|
%t203 = getelementptr inbounds %Cmp_Node, ptr %t202, i32 0, i32 4
|
|
%t204 = load ptr, ptr %t203
|
|
call void @fn_emit_block(ptr %t204)
|
|
br label %ifend29
|
|
ifend29:
|
|
%t205 = load i32, ptr %t177
|
|
%t206 = add i32 %t205, 1
|
|
store i32 %t206, ptr %t177
|
|
br label %wcond24
|
|
wend26:
|
|
%t207 = load i32, ptr @g_g_term
|
|
%t208 = icmp eq i32 %t207, 0
|
|
%t209 = zext i1 %t208 to i32
|
|
%t210 = icmp ne i32 %t209, 0
|
|
br i1 %t210, label %then30, label %ifend32
|
|
then30:
|
|
%t211 = call ptr @fn_emit_alloca(ptr @.str2241)
|
|
store ptr %t211, ptr %t212
|
|
call void @fn_emit(ptr @.str2242)
|
|
%t213 = load ptr, ptr %t212
|
|
call void @fn_emit(ptr %t213)
|
|
call void @fn_emit(ptr @.str2243)
|
|
%t214 = call ptr @fn_lbl(ptr @.str2244)
|
|
store ptr %t214, ptr %t215
|
|
%t216 = call ptr @fn_lbl(ptr @.str2245)
|
|
store ptr %t216, ptr %t217
|
|
%t218 = call ptr @fn_lbl(ptr @.str2246)
|
|
store ptr %t218, ptr %t219
|
|
call void @fn_emit(ptr @.str2247)
|
|
%t220 = load ptr, ptr %t215
|
|
call void @fn_emit(ptr %t220)
|
|
call void @fn_emit(ptr @.str2248)
|
|
%t221 = load ptr, ptr %t215
|
|
call void @fn_emit(ptr %t221)
|
|
call void @fn_emit(ptr @.str2249)
|
|
%t222 = load ptr, ptr %t212
|
|
%t223 = call ptr @fn_str_concat(ptr @.str2250, ptr %t222)
|
|
%t224 = call ptr @fn_emit_bind(ptr %t223)
|
|
store ptr %t224, ptr %t225
|
|
%t226 = load ptr, ptr %t18
|
|
%t227 = call ptr @fn_str_concat(ptr @.str2251, ptr %t226)
|
|
%t228 = call ptr @fn_emit_bind(ptr %t227)
|
|
store ptr %t228, ptr %t229
|
|
%t230 = load ptr, ptr %t225
|
|
%t231 = call ptr @fn_str_concat(ptr @.str2252, ptr %t230)
|
|
%t232 = call ptr @fn_str_concat(ptr %t231, ptr @.str2253)
|
|
%t233 = load ptr, ptr %t229
|
|
%t234 = call ptr @fn_str_concat(ptr %t232, ptr %t233)
|
|
%t235 = call ptr @fn_emit_bind(ptr %t234)
|
|
store ptr %t235, ptr %t236
|
|
call void @fn_emit(ptr @.str2254)
|
|
%t237 = load ptr, ptr %t236
|
|
call void @fn_emit(ptr %t237)
|
|
call void @fn_emit(ptr @.str2255)
|
|
%t238 = load ptr, ptr %t217
|
|
call void @fn_emit(ptr %t238)
|
|
call void @fn_emit(ptr @.str2256)
|
|
%t239 = load ptr, ptr %t219
|
|
call void @fn_emit(ptr %t239)
|
|
call void @fn_emit(ptr @.str2257)
|
|
%t240 = load ptr, ptr %t217
|
|
call void @fn_emit(ptr %t240)
|
|
call void @fn_emit(ptr @.str2258)
|
|
%t241 = call ptr @fn_nreg()
|
|
store ptr %t241, ptr %t242
|
|
call void @fn_emit(ptr @.str2259)
|
|
%t243 = load ptr, ptr %t242
|
|
call void @fn_emit(ptr %t243)
|
|
call void @fn_emit(ptr @.str2260)
|
|
%t244 = load ptr, ptr %t20
|
|
call void @fn_emit(ptr %t244)
|
|
call void @fn_emit(ptr @.str2261)
|
|
%t245 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t245)
|
|
call void @fn_emit(ptr @.str2262)
|
|
%t246 = load ptr, ptr %t225
|
|
call void @fn_emit(ptr %t246)
|
|
call void @fn_emit(ptr @.str2263)
|
|
%t247 = load ptr, ptr %t242
|
|
%t248 = call ptr @fn_str_concat(ptr @.str2264, ptr %t247)
|
|
%t249 = call ptr @fn_emit_bind(ptr %t248)
|
|
store ptr %t249, ptr %t250
|
|
%t251 = load ptr, ptr %t250
|
|
%t252 = call ptr @fn_str_concat(ptr @.str2265, ptr %t251)
|
|
%t253 = call ptr @fn_str_concat(ptr %t252, ptr @.str2266)
|
|
%t254 = call ptr @fn_emit_bind(ptr %t253)
|
|
store ptr %t254, ptr %t255
|
|
%t256 = call ptr @fn_lbl(ptr @.str2267)
|
|
store ptr %t256, ptr %t257
|
|
%t258 = call ptr @fn_lbl(ptr @.str2268)
|
|
store ptr %t258, ptr %t259
|
|
call void @fn_emit(ptr @.str2269)
|
|
%t260 = load ptr, ptr %t255
|
|
call void @fn_emit(ptr %t260)
|
|
call void @fn_emit(ptr @.str2270)
|
|
%t261 = load ptr, ptr %t259
|
|
call void @fn_emit(ptr %t261)
|
|
call void @fn_emit(ptr @.str2271)
|
|
%t262 = load ptr, ptr %t257
|
|
call void @fn_emit(ptr %t262)
|
|
call void @fn_emit(ptr @.str2272)
|
|
%t263 = load ptr, ptr %t257
|
|
call void @fn_emit(ptr %t263)
|
|
call void @fn_emit(ptr @.str2273)
|
|
call void @fn_emit(ptr @.str2274)
|
|
%t264 = load ptr, ptr %t250
|
|
call void @fn_emit(ptr %t264)
|
|
call void @fn_emit(ptr @.str2275)
|
|
%t265 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t265)
|
|
call void @fn_emit(ptr @.str2276)
|
|
call void @fn_emit(ptr @.str2277)
|
|
%t266 = load ptr, ptr %t259
|
|
call void @fn_emit(ptr %t266)
|
|
call void @fn_emit(ptr @.str2278)
|
|
%t267 = load ptr, ptr %t259
|
|
call void @fn_emit(ptr %t267)
|
|
call void @fn_emit(ptr @.str2279)
|
|
%t268 = load ptr, ptr %t225
|
|
%t269 = call ptr @fn_str_concat(ptr @.str2280, ptr %t268)
|
|
%t270 = call ptr @fn_str_concat(ptr %t269, ptr @.str2281)
|
|
%t271 = call ptr @fn_emit_bind(ptr %t270)
|
|
store ptr %t271, ptr %t272
|
|
call void @fn_emit(ptr @.str2282)
|
|
%t273 = load ptr, ptr %t272
|
|
call void @fn_emit(ptr %t273)
|
|
call void @fn_emit(ptr @.str2283)
|
|
%t274 = load ptr, ptr %t212
|
|
call void @fn_emit(ptr %t274)
|
|
call void @fn_emit(ptr @.str2284)
|
|
call void @fn_emit(ptr @.str2285)
|
|
%t275 = load ptr, ptr %t215
|
|
call void @fn_emit(ptr %t275)
|
|
call void @fn_emit(ptr @.str2286)
|
|
%t276 = load ptr, ptr %t219
|
|
call void @fn_emit(ptr %t276)
|
|
call void @fn_emit(ptr @.str2287)
|
|
call void @fn_emit(ptr @.str2288)
|
|
br label %ifend32
|
|
ifend32:
|
|
call void @fn_emit(ptr @.str2289)
|
|
call void @fn_emit(ptr @.str2290)
|
|
%t277 = load ptr, ptr %t14
|
|
%t278 = getelementptr inbounds %Cmp_Node, ptr %t277, i32 0, i32 2
|
|
%t279 = load i32, ptr %t278
|
|
%t280 = icmp eq i32 %t279, 1
|
|
%t281 = zext i1 %t280 to i32
|
|
%t282 = icmp ne i32 %t281, 0
|
|
br i1 %t282, label %then33, label %else34
|
|
then33:
|
|
%t283 = load ptr, ptr %t156
|
|
%t284 = call ptr @fn_str_concat(ptr @.str2291, ptr %t283)
|
|
%t285 = call ptr @fn_emit_bind(ptr %t284)
|
|
store ptr %t285, ptr %t286
|
|
call void @fn_emit(ptr @.str2292)
|
|
%t287 = load ptr, ptr %t286
|
|
call void @fn_emit(ptr %t287)
|
|
call void @fn_emit(ptr @.str2293)
|
|
br label %ifend35
|
|
else34:
|
|
call void @fn_emit(ptr @.str2294)
|
|
br label %ifend35
|
|
ifend35:
|
|
store ptr null, ptr @g_g_cancel_addr
|
|
%t288 = load ptr, ptr %t92
|
|
store ptr %t288, ptr @g_code
|
|
store ptr @.str2295, ptr %t289
|
|
%t290 = load ptr, ptr %t14
|
|
%t291 = getelementptr inbounds %Cmp_Node, ptr %t290, i32 0, i32 2
|
|
%t292 = load i32, ptr %t291
|
|
%t293 = icmp eq i32 %t292, 1
|
|
%t294 = zext i1 %t293 to i32
|
|
%t295 = icmp ne i32 %t294, 0
|
|
br i1 %t295, label %then36, label %ifend38
|
|
then36:
|
|
store ptr @.str2296, ptr %t289
|
|
br label %ifend38
|
|
ifend38:
|
|
call void @fn_emit(ptr @.str2297)
|
|
%t296 = load ptr, ptr %t289
|
|
call void @fn_emit(ptr %t296)
|
|
call void @fn_emit(ptr @.str2298)
|
|
%t297 = load ptr, ptr %t18
|
|
call void @fn_emit(ptr %t297)
|
|
call void @fn_emit(ptr @.str2299)
|
|
store i32 0, ptr %t298
|
|
br label %wcond39
|
|
wcond39:
|
|
%t299 = load i32, ptr %t298
|
|
%t300 = load ptr, ptr %t14
|
|
%t301 = getelementptr inbounds %Cmp_Node, ptr %t300, i32 0, i32 7
|
|
%t302 = load ptr, ptr %t301
|
|
%t303 = getelementptr inbounds %LSlice, ptr %t302, i32 0, i32 1
|
|
%t304 = load i32, ptr %t303
|
|
%t305 = icmp slt i32 %t299, %t304
|
|
%t306 = zext i1 %t305 to i32
|
|
%t307 = icmp ne i32 %t306, 0
|
|
br i1 %t307, label %wbody40, label %wend41
|
|
wbody40:
|
|
%t308 = load i32, ptr %t298
|
|
%t309 = icmp sgt i32 %t308, 0
|
|
%t310 = zext i1 %t309 to i32
|
|
%t311 = icmp ne i32 %t310, 0
|
|
br i1 %t311, label %then42, label %ifend44
|
|
then42:
|
|
call void @fn_emit(ptr @.str2300)
|
|
br label %ifend44
|
|
ifend44:
|
|
%t312 = load ptr, ptr %t14
|
|
%t313 = getelementptr inbounds %Cmp_Node, ptr %t312, i32 0, i32 7
|
|
%t314 = load ptr, ptr %t313
|
|
%t315 = getelementptr inbounds %LSlice, ptr %t314, i32 0, i32 0
|
|
%t316 = load ptr, ptr %t315
|
|
%t317 = load i32, ptr %t298
|
|
%t318 = getelementptr inbounds ptr, ptr %t316, i32 %t317
|
|
%t319 = load ptr, ptr %t318
|
|
%t320 = getelementptr inbounds %Cmp_Node, ptr %t319, i32 0, i32 3
|
|
%t321 = load ptr, ptr %t320
|
|
%t322 = call ptr @fn_llty(ptr %t321)
|
|
call void @fn_emit(ptr %t322)
|
|
call void @fn_emit(ptr @.str2301)
|
|
%t323 = load i32, ptr %t298
|
|
%t324 = call ptr @fn_itoa(i32 %t323)
|
|
call void @fn_emit(ptr %t324)
|
|
%t325 = load i32, ptr %t298
|
|
%t326 = add i32 %t325, 1
|
|
store i32 %t326, ptr %t298
|
|
br label %wcond39
|
|
wend41:
|
|
call void @fn_emit(ptr @.str2302)
|
|
%t327 = load ptr, ptr @g_falloc
|
|
%t328 = call ptr @fn_buf_str(ptr %t327)
|
|
call void @fn_emit(ptr %t328)
|
|
%t329 = load ptr, ptr %t89
|
|
%t330 = call ptr @fn_buf_str(ptr %t329)
|
|
call void @fn_emit(ptr %t330)
|
|
call void @fn_emit(ptr @.str2303)
|
|
%t331 = load i32, ptr %t0
|
|
%t332 = add i32 %t331, 1
|
|
store i32 %t332, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
%t333 = call ptr @fn_itoa(i32 16)
|
|
store ptr %t333, ptr %t334
|
|
call void @fn_emit(ptr @.str2304)
|
|
store i32 0, ptr %t335
|
|
br label %wcond45
|
|
wcond45:
|
|
%t336 = load i32, ptr %t335
|
|
%t337 = load ptr, ptr @g_g_events
|
|
%t338 = getelementptr inbounds %LSlice, ptr %t337, i32 0, i32 1
|
|
%t339 = load i32, ptr %t338
|
|
%t340 = icmp slt i32 %t336, %t339
|
|
%t341 = zext i1 %t340 to i32
|
|
%t342 = icmp ne i32 %t341, 0
|
|
br i1 %t342, label %wbody46, label %wend47
|
|
wbody46:
|
|
%t343 = load ptr, ptr @g_g_events
|
|
%t344 = getelementptr inbounds %LSlice, ptr %t343, i32 0, i32 0
|
|
%t345 = load ptr, ptr %t344
|
|
%t346 = load i32, ptr %t335
|
|
%t347 = getelementptr inbounds ptr, ptr %t345, i32 %t346
|
|
%t348 = load ptr, ptr %t347
|
|
%t349 = getelementptr inbounds %Cmp_Node, ptr %t348, i32 0, i32 1
|
|
%t350 = load ptr, ptr %t349
|
|
store ptr %t350, ptr %t351
|
|
%t352 = load i32, ptr %t335
|
|
%t353 = call ptr @fn_itoa(i32 %t352)
|
|
store ptr %t353, ptr %t354
|
|
call void @fn_emit(ptr @.str2305)
|
|
%t355 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t355)
|
|
call void @fn_emit(ptr @.str2306)
|
|
call void @fn_emit(ptr @.str2307)
|
|
%t356 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t356)
|
|
call void @fn_emit(ptr @.str2308)
|
|
call void @fn_emit(ptr @.str2309)
|
|
%t357 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t357)
|
|
call void @fn_emit(ptr @.str2310)
|
|
%t358 = load ptr, ptr %t351
|
|
call void @fn_emit(ptr %t358)
|
|
call void @fn_emit(ptr @.str2311)
|
|
call void @fn_emit(ptr @.str2312)
|
|
%t359 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t359)
|
|
call void @fn_emit(ptr @.str2313)
|
|
%t360 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t360)
|
|
call void @fn_emit(ptr @.str2314)
|
|
%t361 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t361)
|
|
call void @fn_emit(ptr @.str2315)
|
|
call void @fn_emit(ptr @.str2316)
|
|
%t362 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t362)
|
|
call void @fn_emit(ptr @.str2317)
|
|
%t363 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t363)
|
|
call void @fn_emit(ptr @.str2318)
|
|
%t364 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t364)
|
|
call void @fn_emit(ptr @.str2319)
|
|
call void @fn_emit(ptr @.str2320)
|
|
%t365 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t365)
|
|
call void @fn_emit(ptr @.str2321)
|
|
call void @fn_emit(ptr @.str2322)
|
|
%t366 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t366)
|
|
call void @fn_emit(ptr @.str2323)
|
|
%t367 = load ptr, ptr %t334
|
|
call void @fn_emit(ptr %t367)
|
|
call void @fn_emit(ptr @.str2324)
|
|
%t368 = load ptr, ptr %t351
|
|
call void @fn_emit(ptr %t368)
|
|
call void @fn_emit(ptr @.str2325)
|
|
%t369 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t369)
|
|
call void @fn_emit(ptr @.str2326)
|
|
call void @fn_emit(ptr @.str2327)
|
|
%t370 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t370)
|
|
call void @fn_emit(ptr @.str2328)
|
|
%t371 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t371)
|
|
call void @fn_emit(ptr @.str2329)
|
|
call void @fn_emit(ptr @.str2330)
|
|
%t372 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t372)
|
|
call void @fn_emit(ptr @.str2331)
|
|
%t373 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t373)
|
|
call void @fn_emit(ptr @.str2332)
|
|
call void @fn_emit(ptr @.str2333)
|
|
%t374 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t374)
|
|
call void @fn_emit(ptr @.str2334)
|
|
%t375 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t375)
|
|
call void @fn_emit(ptr @.str2335)
|
|
%t376 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t376)
|
|
call void @fn_emit(ptr @.str2336)
|
|
call void @fn_emit(ptr @.str2337)
|
|
%t377 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t377)
|
|
call void @fn_emit(ptr @.str2338)
|
|
call void @fn_emit(ptr @.str2339)
|
|
%t378 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t378)
|
|
call void @fn_emit(ptr @.str2340)
|
|
%t379 = load ptr, ptr %t334
|
|
call void @fn_emit(ptr %t379)
|
|
call void @fn_emit(ptr @.str2341)
|
|
%t380 = load ptr, ptr %t351
|
|
call void @fn_emit(ptr %t380)
|
|
call void @fn_emit(ptr @.str2342)
|
|
%t381 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t381)
|
|
call void @fn_emit(ptr @.str2343)
|
|
call void @fn_emit(ptr @.str2344)
|
|
%t382 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t382)
|
|
call void @fn_emit(ptr @.str2345)
|
|
%t383 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t383)
|
|
call void @fn_emit(ptr @.str2346)
|
|
call void @fn_emit(ptr @.str2347)
|
|
%t384 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t384)
|
|
call void @fn_emit(ptr @.str2348)
|
|
call void @fn_emit(ptr @.str2349)
|
|
%t385 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t385)
|
|
call void @fn_emit(ptr @.str2350)
|
|
%t386 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t386)
|
|
call void @fn_emit(ptr @.str2351)
|
|
%t387 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t387)
|
|
call void @fn_emit(ptr @.str2352)
|
|
%t388 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t388)
|
|
call void @fn_emit(ptr @.str2353)
|
|
call void @fn_emit(ptr @.str2354)
|
|
%t389 = load ptr, ptr %t354
|
|
call void @fn_emit(ptr %t389)
|
|
call void @fn_emit(ptr @.str2355)
|
|
%t390 = load i32, ptr %t335
|
|
%t391 = add i32 %t390, 1
|
|
%t392 = load ptr, ptr @g_g_events
|
|
%t393 = getelementptr inbounds %LSlice, ptr %t392, i32 0, i32 1
|
|
%t394 = load i32, ptr %t393
|
|
%t395 = icmp slt i32 %t391, %t394
|
|
%t396 = zext i1 %t395 to i32
|
|
%t397 = icmp ne i32 %t396, 0
|
|
br i1 %t397, label %then48, label %else49
|
|
then48:
|
|
call void @fn_emit(ptr @.str2356)
|
|
%t398 = load i32, ptr %t335
|
|
%t399 = add i32 %t398, 1
|
|
%t400 = call ptr @fn_itoa(i32 %t399)
|
|
call void @fn_emit(ptr %t400)
|
|
call void @fn_emit(ptr @.str2357)
|
|
br label %ifend50
|
|
else49:
|
|
call void @fn_emit(ptr @.str2358)
|
|
br label %ifend50
|
|
ifend50:
|
|
%t401 = load i32, ptr %t335
|
|
%t402 = add i32 %t401, 1
|
|
store i32 %t402, ptr %t335
|
|
br label %wcond45
|
|
wend47:
|
|
call void @fn_emit(ptr @.str2359)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_world_table() {
|
|
entry:
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t28 = alloca ptr
|
|
%t29 = alloca i32
|
|
%t30 = alloca i32
|
|
%t58 = alloca ptr
|
|
%t61 = alloca ptr
|
|
%t101 = alloca ptr
|
|
%t104 = alloca ptr
|
|
%t111 = alloca i32
|
|
%t132 = alloca ptr
|
|
%t138 = alloca ptr
|
|
%t181 = alloca ptr
|
|
%t185 = alloca ptr
|
|
%t188 = alloca ptr
|
|
%t199 = alloca i32
|
|
%t220 = alloca ptr
|
|
%t226 = alloca ptr
|
|
%t293 = alloca ptr
|
|
%t297 = alloca ptr
|
|
%t300 = alloca ptr
|
|
%t311 = alloca i32
|
|
%t332 = alloca ptr
|
|
%t338 = alloca ptr
|
|
%t401 = alloca ptr
|
|
%t404 = alloca ptr
|
|
%t459 = alloca ptr
|
|
%t462 = alloca ptr
|
|
%t512 = alloca ptr
|
|
%t514 = alloca ptr
|
|
%t517 = alloca ptr
|
|
%t520 = alloca ptr
|
|
%t526 = alloca ptr
|
|
%t562 = alloca ptr
|
|
%t565 = alloca ptr
|
|
%t0 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t0, ptr %t1
|
|
call void @fn_emith(ptr @.str2360)
|
|
store i32 0, ptr %t2
|
|
store i32 0, ptr %t3
|
|
br label %wcond0
|
|
wcond0:
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = load ptr, ptr @g_prog
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1
|
|
%t7 = load i32, ptr %t6
|
|
%t8 = icmp slt i32 %t4, %t7
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t11 = load ptr, ptr @g_prog
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = load i32, ptr %t3
|
|
%t15 = getelementptr inbounds ptr, ptr %t13, i32 %t14
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 0
|
|
%t18 = load i32, ptr %t17
|
|
%t19 = icmp eq i32 %t18, 8
|
|
%t20 = zext i1 %t19 to i32
|
|
%t21 = icmp ne i32 %t20, 0
|
|
br i1 %t21, label %then3, label %ifend5
|
|
then3:
|
|
%t22 = load i32, ptr %t2
|
|
%t23 = add i32 %t22, 1
|
|
store i32 %t23, ptr %t2
|
|
br label %ifend5
|
|
ifend5:
|
|
%t24 = load i32, ptr %t3
|
|
%t25 = add i32 %t24, 1
|
|
store i32 %t25, ptr %t3
|
|
br label %wcond0
|
|
wend2:
|
|
%t26 = load i32, ptr %t2
|
|
%t27 = call ptr @fn_itoa(i32 %t26)
|
|
store ptr %t27, ptr %t28
|
|
call void @fn_emith(ptr @.str2361)
|
|
call void @fn_emith(ptr @.str2362)
|
|
call void @fn_emith(ptr @.str2363)
|
|
call void @fn_emith(ptr @.str2364)
|
|
call void @fn_emith(ptr @.str2365)
|
|
call void @fn_emit(ptr @.str2366)
|
|
store i32 0, ptr %t29
|
|
store i32 0, ptr %t30
|
|
br label %wcond6
|
|
wcond6:
|
|
%t31 = load i32, ptr %t30
|
|
%t32 = load ptr, ptr @g_prog
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 1
|
|
%t34 = load i32, ptr %t33
|
|
%t35 = icmp slt i32 %t31, %t34
|
|
%t36 = zext i1 %t35 to i32
|
|
%t37 = icmp ne i32 %t36, 0
|
|
br i1 %t37, label %wbody7, label %wend8
|
|
wbody7:
|
|
%t38 = load ptr, ptr @g_prog
|
|
%t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = load i32, ptr %t30
|
|
%t42 = getelementptr inbounds ptr, ptr %t40, i32 %t41
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 0
|
|
%t45 = load i32, ptr %t44
|
|
%t46 = icmp eq i32 %t45, 8
|
|
%t47 = zext i1 %t46 to i32
|
|
%t48 = icmp ne i32 %t47, 0
|
|
br i1 %t48, label %then9, label %ifend11
|
|
then9:
|
|
%t49 = load ptr, ptr @g_prog
|
|
%t50 = getelementptr inbounds %LSlice, ptr %t49, i32 0, i32 0
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = load i32, ptr %t30
|
|
%t53 = getelementptr inbounds ptr, ptr %t51, i32 %t52
|
|
%t54 = load ptr, ptr %t53
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 1
|
|
%t56 = load ptr, ptr %t55
|
|
%t57 = call ptr @fn_emit_str_const(ptr %t56)
|
|
store ptr %t57, ptr %t58
|
|
%t59 = load i32, ptr %t29
|
|
%t60 = call ptr @fn_itoa(i32 %t59)
|
|
store ptr %t60, ptr %t61
|
|
call void @fn_emit(ptr @.str2367)
|
|
%t62 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t62)
|
|
call void @fn_emit(ptr @.str2368)
|
|
%t63 = load ptr, ptr %t58
|
|
call void @fn_emit(ptr %t63)
|
|
call void @fn_emit(ptr @.str2369)
|
|
call void @fn_emit(ptr @.str2370)
|
|
%t64 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t64)
|
|
call void @fn_emit(ptr @.str2371)
|
|
%t65 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t65)
|
|
call void @fn_emit(ptr @.str2372)
|
|
call void @fn_emit(ptr @.str2373)
|
|
%t66 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t66)
|
|
call void @fn_emit(ptr @.str2374)
|
|
%t67 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t67)
|
|
call void @fn_emit(ptr @.str2375)
|
|
%t68 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t68)
|
|
call void @fn_emit(ptr @.str2376)
|
|
call void @fn_emit(ptr @.str2377)
|
|
%t69 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t69)
|
|
call void @fn_emit(ptr @.str2378)
|
|
%t70 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t70)
|
|
call void @fn_emit(ptr @.str2379)
|
|
call void @fn_emit(ptr @.str2380)
|
|
%t71 = load ptr, ptr %t61
|
|
call void @fn_emit(ptr %t71)
|
|
call void @fn_emit(ptr @.str2381)
|
|
%t72 = load i32, ptr %t29
|
|
%t73 = add i32 %t72, 1
|
|
store i32 %t73, ptr %t29
|
|
br label %ifend11
|
|
ifend11:
|
|
%t74 = load i32, ptr %t30
|
|
%t75 = add i32 %t74, 1
|
|
store i32 %t75, ptr %t30
|
|
br label %wcond6
|
|
wend8:
|
|
call void @fn_emit(ptr @.str2382)
|
|
call void @fn_emit(ptr @.str2383)
|
|
call void @fn_emit(ptr @.str2384)
|
|
call void @fn_emit(ptr @.str2385)
|
|
%t76 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t76)
|
|
call void @fn_emit(ptr @.str2386)
|
|
call void @fn_emit(ptr @.str2387)
|
|
call void @fn_emit(ptr @.str2388)
|
|
call void @fn_emit(ptr @.str2389)
|
|
store i32 0, ptr %t29
|
|
store i32 0, ptr %t30
|
|
br label %wcond12
|
|
wcond12:
|
|
%t77 = load i32, ptr %t30
|
|
%t78 = load ptr, ptr @g_prog
|
|
%t79 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 1
|
|
%t80 = load i32, ptr %t79
|
|
%t81 = icmp slt i32 %t77, %t80
|
|
%t82 = zext i1 %t81 to i32
|
|
%t83 = icmp ne i32 %t82, 0
|
|
br i1 %t83, label %wbody13, label %wend14
|
|
wbody13:
|
|
%t84 = load ptr, ptr @g_prog
|
|
%t85 = getelementptr inbounds %LSlice, ptr %t84, i32 0, i32 0
|
|
%t86 = load ptr, ptr %t85
|
|
%t87 = load i32, ptr %t30
|
|
%t88 = getelementptr inbounds ptr, ptr %t86, i32 %t87
|
|
%t89 = load ptr, ptr %t88
|
|
%t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 0
|
|
%t91 = load i32, ptr %t90
|
|
%t92 = icmp eq i32 %t91, 8
|
|
%t93 = zext i1 %t92 to i32
|
|
%t94 = icmp ne i32 %t93, 0
|
|
br i1 %t94, label %then15, label %ifend17
|
|
then15:
|
|
%t95 = load ptr, ptr @g_prog
|
|
%t96 = getelementptr inbounds %LSlice, ptr %t95, i32 0, i32 0
|
|
%t97 = load ptr, ptr %t96
|
|
%t98 = load i32, ptr %t30
|
|
%t99 = getelementptr inbounds ptr, ptr %t97, i32 %t98
|
|
%t100 = load ptr, ptr %t99
|
|
store ptr %t100, ptr %t101
|
|
%t102 = load i32, ptr %t29
|
|
%t103 = call ptr @fn_itoa(i32 %t102)
|
|
store ptr %t103, ptr %t104
|
|
call void @fn_emit(ptr @.str2390)
|
|
%t105 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t105)
|
|
call void @fn_emit(ptr @.str2391)
|
|
%t106 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t106)
|
|
call void @fn_emit(ptr @.str2392)
|
|
call void @fn_emit(ptr @.str2393)
|
|
%t107 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t107)
|
|
call void @fn_emit(ptr @.str2394)
|
|
%t108 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t108)
|
|
call void @fn_emit(ptr @.str2395)
|
|
%t109 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t109)
|
|
call void @fn_emit(ptr @.str2396)
|
|
call void @fn_emit(ptr @.str2397)
|
|
%t110 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t110)
|
|
call void @fn_emit(ptr @.str2398)
|
|
store i32 0, ptr %t111
|
|
br label %wcond18
|
|
wcond18:
|
|
%t112 = load i32, ptr %t111
|
|
%t113 = load ptr, ptr %t101
|
|
%t114 = getelementptr inbounds %Cmp_Node, ptr %t113, i32 0, i32 7
|
|
%t115 = load ptr, ptr %t114
|
|
%t116 = getelementptr inbounds %LSlice, ptr %t115, i32 0, i32 1
|
|
%t117 = load i32, ptr %t116
|
|
%t118 = icmp slt i32 %t112, %t117
|
|
%t119 = zext i1 %t118 to i32
|
|
%t120 = icmp ne i32 %t119, 0
|
|
br i1 %t120, label %wbody19, label %wend20
|
|
wbody19:
|
|
%t121 = load ptr, ptr %t101
|
|
%t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 7
|
|
%t123 = load ptr, ptr %t122
|
|
%t124 = getelementptr inbounds %LSlice, ptr %t123, i32 0, i32 0
|
|
%t125 = load ptr, ptr %t124
|
|
%t126 = load i32, ptr %t111
|
|
%t127 = getelementptr inbounds ptr, ptr %t125, i32 %t126
|
|
%t128 = load ptr, ptr %t127
|
|
%t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 1
|
|
%t130 = load ptr, ptr %t129
|
|
%t131 = call ptr @fn_emit_str_const(ptr %t130)
|
|
store ptr %t131, ptr %t132
|
|
%t133 = load ptr, ptr %t104
|
|
%t134 = call ptr @fn_str_concat(ptr %t133, ptr @.str2399)
|
|
%t135 = load i32, ptr %t111
|
|
%t136 = call ptr @fn_itoa(i32 %t135)
|
|
%t137 = call ptr @fn_str_concat(ptr %t134, ptr %t136)
|
|
store ptr %t137, ptr %t138
|
|
call void @fn_emit(ptr @.str2400)
|
|
%t139 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t139)
|
|
call void @fn_emit(ptr @.str2401)
|
|
%t140 = load ptr, ptr %t132
|
|
call void @fn_emit(ptr %t140)
|
|
call void @fn_emit(ptr @.str2402)
|
|
call void @fn_emit(ptr @.str2403)
|
|
%t141 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t141)
|
|
call void @fn_emit(ptr @.str2404)
|
|
%t142 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t142)
|
|
call void @fn_emit(ptr @.str2405)
|
|
call void @fn_emit(ptr @.str2406)
|
|
%t143 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t143)
|
|
call void @fn_emit(ptr @.str2407)
|
|
%t144 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t144)
|
|
call void @fn_emit(ptr @.str2408)
|
|
%t145 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t145)
|
|
call void @fn_emit(ptr @.str2409)
|
|
call void @fn_emit(ptr @.str2410)
|
|
%t146 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t146)
|
|
call void @fn_emit(ptr @.str2411)
|
|
%t147 = load i32, ptr %t111
|
|
%t148 = call ptr @fn_itoa(i32 %t147)
|
|
call void @fn_emit(ptr %t148)
|
|
call void @fn_emit(ptr @.str2412)
|
|
call void @fn_emit(ptr @.str2413)
|
|
%t149 = load ptr, ptr %t138
|
|
call void @fn_emit(ptr %t149)
|
|
call void @fn_emit(ptr @.str2414)
|
|
%t150 = load i32, ptr %t111
|
|
%t151 = add i32 %t150, 1
|
|
store i32 %t151, ptr %t111
|
|
br label %wcond18
|
|
wend20:
|
|
call void @fn_emit(ptr @.str2415)
|
|
call void @fn_emit(ptr @.str2416)
|
|
%t152 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t152)
|
|
call void @fn_emit(ptr @.str2417)
|
|
%t153 = load i32, ptr %t29
|
|
%t154 = add i32 %t153, 1
|
|
store i32 %t154, ptr %t29
|
|
br label %ifend17
|
|
ifend17:
|
|
%t155 = load i32, ptr %t30
|
|
%t156 = add i32 %t155, 1
|
|
store i32 %t156, ptr %t30
|
|
br label %wcond12
|
|
wend14:
|
|
call void @fn_emit(ptr @.str2418)
|
|
call void @fn_emit(ptr @.str2419)
|
|
store i32 0, ptr %t29
|
|
store i32 0, ptr %t30
|
|
br label %wcond21
|
|
wcond21:
|
|
%t157 = load i32, ptr %t30
|
|
%t158 = load ptr, ptr @g_prog
|
|
%t159 = getelementptr inbounds %LSlice, ptr %t158, i32 0, i32 1
|
|
%t160 = load i32, ptr %t159
|
|
%t161 = icmp slt i32 %t157, %t160
|
|
%t162 = zext i1 %t161 to i32
|
|
%t163 = icmp ne i32 %t162, 0
|
|
br i1 %t163, label %wbody22, label %wend23
|
|
wbody22:
|
|
%t164 = load ptr, ptr @g_prog
|
|
%t165 = getelementptr inbounds %LSlice, ptr %t164, i32 0, i32 0
|
|
%t166 = load ptr, ptr %t165
|
|
%t167 = load i32, ptr %t30
|
|
%t168 = getelementptr inbounds ptr, ptr %t166, i32 %t167
|
|
%t169 = load ptr, ptr %t168
|
|
%t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 0
|
|
%t171 = load i32, ptr %t170
|
|
%t172 = icmp eq i32 %t171, 8
|
|
%t173 = zext i1 %t172 to i32
|
|
%t174 = icmp ne i32 %t173, 0
|
|
br i1 %t174, label %then24, label %ifend26
|
|
then24:
|
|
%t175 = load ptr, ptr @g_prog
|
|
%t176 = getelementptr inbounds %LSlice, ptr %t175, i32 0, i32 0
|
|
%t177 = load ptr, ptr %t176
|
|
%t178 = load i32, ptr %t30
|
|
%t179 = getelementptr inbounds ptr, ptr %t177, i32 %t178
|
|
%t180 = load ptr, ptr %t179
|
|
store ptr %t180, ptr %t181
|
|
%t182 = load ptr, ptr %t181
|
|
%t183 = getelementptr inbounds %Cmp_Node, ptr %t182, i32 0, i32 1
|
|
%t184 = load ptr, ptr %t183
|
|
store ptr %t184, ptr %t185
|
|
%t186 = load i32, ptr %t29
|
|
%t187 = call ptr @fn_itoa(i32 %t186)
|
|
store ptr %t187, ptr %t188
|
|
call void @fn_emit(ptr @.str2420)
|
|
%t189 = load ptr, ptr %t188
|
|
call void @fn_emit(ptr %t189)
|
|
call void @fn_emit(ptr @.str2421)
|
|
%t190 = load ptr, ptr %t188
|
|
call void @fn_emit(ptr %t190)
|
|
call void @fn_emit(ptr @.str2422)
|
|
call void @fn_emit(ptr @.str2423)
|
|
%t191 = load ptr, ptr %t188
|
|
call void @fn_emit(ptr %t191)
|
|
call void @fn_emit(ptr @.str2424)
|
|
%t192 = load ptr, ptr %t188
|
|
call void @fn_emit(ptr %t192)
|
|
call void @fn_emit(ptr @.str2425)
|
|
%t193 = load ptr, ptr %t188
|
|
call void @fn_emit(ptr %t193)
|
|
call void @fn_emit(ptr @.str2426)
|
|
call void @fn_emit(ptr @.str2427)
|
|
%t194 = load ptr, ptr %t188
|
|
call void @fn_emit(ptr %t194)
|
|
call void @fn_emit(ptr @.str2428)
|
|
call void @fn_emit(ptr @.str2429)
|
|
%t195 = load ptr, ptr %t188
|
|
call void @fn_emit(ptr %t195)
|
|
call void @fn_emit(ptr @.str2430)
|
|
%t196 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t196)
|
|
call void @fn_emit(ptr @.str2431)
|
|
%t197 = load ptr, ptr %t185
|
|
call void @fn_emit(ptr %t197)
|
|
call void @fn_emit(ptr @.str2432)
|
|
%t198 = load ptr, ptr %t185
|
|
call void @fn_emit(ptr %t198)
|
|
call void @fn_emit(ptr @.str2433)
|
|
store i32 0, ptr %t199
|
|
br label %wcond27
|
|
wcond27:
|
|
%t200 = load i32, ptr %t199
|
|
%t201 = load ptr, ptr %t181
|
|
%t202 = getelementptr inbounds %Cmp_Node, ptr %t201, i32 0, i32 7
|
|
%t203 = load ptr, ptr %t202
|
|
%t204 = getelementptr inbounds %LSlice, ptr %t203, i32 0, i32 1
|
|
%t205 = load i32, ptr %t204
|
|
%t206 = icmp slt i32 %t200, %t205
|
|
%t207 = zext i1 %t206 to i32
|
|
%t208 = icmp ne i32 %t207, 0
|
|
br i1 %t208, label %wbody28, label %wend29
|
|
wbody28:
|
|
%t209 = load ptr, ptr %t181
|
|
%t210 = getelementptr inbounds %Cmp_Node, ptr %t209, i32 0, i32 7
|
|
%t211 = load ptr, ptr %t210
|
|
%t212 = getelementptr inbounds %LSlice, ptr %t211, i32 0, i32 0
|
|
%t213 = load ptr, ptr %t212
|
|
%t214 = load i32, ptr %t199
|
|
%t215 = getelementptr inbounds ptr, ptr %t213, i32 %t214
|
|
%t216 = load ptr, ptr %t215
|
|
%t217 = getelementptr inbounds %Cmp_Node, ptr %t216, i32 0, i32 3
|
|
%t218 = load ptr, ptr %t217
|
|
%t219 = call ptr @fn_llty(ptr %t218)
|
|
store ptr %t219, ptr %t220
|
|
%t221 = load ptr, ptr %t188
|
|
%t222 = call ptr @fn_str_concat(ptr %t221, ptr @.str2434)
|
|
%t223 = load i32, ptr %t199
|
|
%t224 = call ptr @fn_itoa(i32 %t223)
|
|
%t225 = call ptr @fn_str_concat(ptr %t222, ptr %t224)
|
|
store ptr %t225, ptr %t226
|
|
call void @fn_emit(ptr @.str2435)
|
|
%t227 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t227)
|
|
call void @fn_emit(ptr @.str2436)
|
|
%t228 = load i32, ptr %t199
|
|
%t229 = call ptr @fn_itoa(i32 %t228)
|
|
call void @fn_emit(ptr %t229)
|
|
call void @fn_emit(ptr @.str2437)
|
|
call void @fn_emit(ptr @.str2438)
|
|
%t230 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t230)
|
|
call void @fn_emit(ptr @.str2439)
|
|
%t231 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t231)
|
|
call void @fn_emit(ptr @.str2440)
|
|
%t232 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t232)
|
|
call void @fn_emit(ptr @.str2441)
|
|
call void @fn_emit(ptr @.str2442)
|
|
%t233 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t233)
|
|
call void @fn_emit(ptr @.str2443)
|
|
call void @fn_emit(ptr @.str2444)
|
|
%t234 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t234)
|
|
call void @fn_emit(ptr @.str2445)
|
|
%t235 = load ptr, ptr %t185
|
|
call void @fn_emit(ptr %t235)
|
|
call void @fn_emit(ptr @.str2446)
|
|
%t236 = load ptr, ptr %t188
|
|
call void @fn_emit(ptr %t236)
|
|
call void @fn_emit(ptr @.str2447)
|
|
%t237 = load i32, ptr %t199
|
|
%t238 = call ptr @fn_itoa(i32 %t237)
|
|
call void @fn_emit(ptr %t238)
|
|
call void @fn_emit(ptr @.str2448)
|
|
%t239 = load ptr, ptr %t220
|
|
%t240 = call i32 @fn_str_eq(ptr %t239, ptr @.str2449)
|
|
%t241 = icmp ne i32 %t240, 0
|
|
br i1 %t241, label %then30, label %else31
|
|
then30:
|
|
call void @fn_emit(ptr @.str2450)
|
|
%t242 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t242)
|
|
call void @fn_emit(ptr @.str2451)
|
|
%t243 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t243)
|
|
call void @fn_emit(ptr @.str2452)
|
|
call void @fn_emit(ptr @.str2453)
|
|
%t244 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t244)
|
|
call void @fn_emit(ptr @.str2454)
|
|
%t245 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t245)
|
|
call void @fn_emit(ptr @.str2455)
|
|
%t246 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t246)
|
|
call void @fn_emit(ptr @.str2456)
|
|
br label %ifend32
|
|
else31:
|
|
%t247 = load ptr, ptr %t220
|
|
%t248 = call i32 @fn_str_eq(ptr %t247, ptr @.str2457)
|
|
%t249 = icmp ne i32 %t248, 0
|
|
br i1 %t249, label %then33, label %else34
|
|
then33:
|
|
call void @fn_emit(ptr @.str2458)
|
|
%t250 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t250)
|
|
call void @fn_emit(ptr @.str2459)
|
|
%t251 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t251)
|
|
call void @fn_emit(ptr @.str2460)
|
|
call void @fn_emit(ptr @.str2461)
|
|
%t252 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t252)
|
|
call void @fn_emit(ptr @.str2462)
|
|
%t253 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t253)
|
|
call void @fn_emit(ptr @.str2463)
|
|
%t254 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t254)
|
|
call void @fn_emit(ptr @.str2464)
|
|
br label %ifend35
|
|
else34:
|
|
call void @fn_emit(ptr @.str2465)
|
|
%t255 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t255)
|
|
call void @fn_emit(ptr @.str2466)
|
|
%t256 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t256)
|
|
call void @fn_emit(ptr @.str2467)
|
|
call void @fn_emit(ptr @.str2468)
|
|
%t257 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t257)
|
|
call void @fn_emit(ptr @.str2469)
|
|
%t258 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t258)
|
|
call void @fn_emit(ptr @.str2470)
|
|
%t259 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t259)
|
|
call void @fn_emit(ptr @.str2471)
|
|
br label %ifend35
|
|
ifend35:
|
|
br label %ifend32
|
|
ifend32:
|
|
call void @fn_emit(ptr @.str2472)
|
|
%t260 = load ptr, ptr %t226
|
|
call void @fn_emit(ptr %t260)
|
|
call void @fn_emit(ptr @.str2473)
|
|
%t261 = load i32, ptr %t199
|
|
%t262 = add i32 %t261, 1
|
|
store i32 %t262, ptr %t199
|
|
br label %wcond27
|
|
wend29:
|
|
call void @fn_emit(ptr @.str2474)
|
|
call void @fn_emit(ptr @.str2475)
|
|
%t263 = load ptr, ptr %t188
|
|
call void @fn_emit(ptr %t263)
|
|
call void @fn_emit(ptr @.str2476)
|
|
%t264 = load i32, ptr %t29
|
|
%t265 = add i32 %t264, 1
|
|
store i32 %t265, ptr %t29
|
|
br label %ifend26
|
|
ifend26:
|
|
%t266 = load i32, ptr %t30
|
|
%t267 = add i32 %t266, 1
|
|
store i32 %t267, ptr %t30
|
|
br label %wcond21
|
|
wend23:
|
|
call void @fn_emit(ptr @.str2477)
|
|
%t268 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t268)
|
|
call void @fn_emit(ptr @.str2478)
|
|
call void @fn_emit(ptr @.str2479)
|
|
call void @fn_emit(ptr @.str2480)
|
|
call void @fn_emit(ptr @.str2481)
|
|
call void @fn_emit(ptr @.str2482)
|
|
call void @fn_emit(ptr @.str2483)
|
|
call void @fn_emit(ptr @.str2484)
|
|
store i32 0, ptr %t29
|
|
store i32 0, ptr %t30
|
|
br label %wcond36
|
|
wcond36:
|
|
%t269 = load i32, ptr %t30
|
|
%t270 = load ptr, ptr @g_prog
|
|
%t271 = getelementptr inbounds %LSlice, ptr %t270, i32 0, i32 1
|
|
%t272 = load i32, ptr %t271
|
|
%t273 = icmp slt i32 %t269, %t272
|
|
%t274 = zext i1 %t273 to i32
|
|
%t275 = icmp ne i32 %t274, 0
|
|
br i1 %t275, label %wbody37, label %wend38
|
|
wbody37:
|
|
%t276 = load ptr, ptr @g_prog
|
|
%t277 = getelementptr inbounds %LSlice, ptr %t276, i32 0, i32 0
|
|
%t278 = load ptr, ptr %t277
|
|
%t279 = load i32, ptr %t30
|
|
%t280 = getelementptr inbounds ptr, ptr %t278, i32 %t279
|
|
%t281 = load ptr, ptr %t280
|
|
%t282 = getelementptr inbounds %Cmp_Node, ptr %t281, i32 0, i32 0
|
|
%t283 = load i32, ptr %t282
|
|
%t284 = icmp eq i32 %t283, 8
|
|
%t285 = zext i1 %t284 to i32
|
|
%t286 = icmp ne i32 %t285, 0
|
|
br i1 %t286, label %then39, label %ifend41
|
|
then39:
|
|
%t287 = load ptr, ptr @g_prog
|
|
%t288 = getelementptr inbounds %LSlice, ptr %t287, i32 0, i32 0
|
|
%t289 = load ptr, ptr %t288
|
|
%t290 = load i32, ptr %t30
|
|
%t291 = getelementptr inbounds ptr, ptr %t289, i32 %t290
|
|
%t292 = load ptr, ptr %t291
|
|
store ptr %t292, ptr %t293
|
|
%t294 = load ptr, ptr %t293
|
|
%t295 = getelementptr inbounds %Cmp_Node, ptr %t294, i32 0, i32 1
|
|
%t296 = load ptr, ptr %t295
|
|
store ptr %t296, ptr %t297
|
|
%t298 = load i32, ptr %t29
|
|
%t299 = call ptr @fn_itoa(i32 %t298)
|
|
store ptr %t299, ptr %t300
|
|
call void @fn_emit(ptr @.str2485)
|
|
%t301 = load ptr, ptr %t300
|
|
call void @fn_emit(ptr %t301)
|
|
call void @fn_emit(ptr @.str2486)
|
|
%t302 = load ptr, ptr %t300
|
|
call void @fn_emit(ptr %t302)
|
|
call void @fn_emit(ptr @.str2487)
|
|
call void @fn_emit(ptr @.str2488)
|
|
%t303 = load ptr, ptr %t300
|
|
call void @fn_emit(ptr %t303)
|
|
call void @fn_emit(ptr @.str2489)
|
|
%t304 = load ptr, ptr %t300
|
|
call void @fn_emit(ptr %t304)
|
|
call void @fn_emit(ptr @.str2490)
|
|
%t305 = load ptr, ptr %t300
|
|
call void @fn_emit(ptr %t305)
|
|
call void @fn_emit(ptr @.str2491)
|
|
call void @fn_emit(ptr @.str2492)
|
|
%t306 = load ptr, ptr %t300
|
|
call void @fn_emit(ptr %t306)
|
|
call void @fn_emit(ptr @.str2493)
|
|
call void @fn_emit(ptr @.str2494)
|
|
%t307 = load ptr, ptr %t300
|
|
call void @fn_emit(ptr %t307)
|
|
call void @fn_emit(ptr @.str2495)
|
|
%t308 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t308)
|
|
call void @fn_emit(ptr @.str2496)
|
|
%t309 = load ptr, ptr %t297
|
|
call void @fn_emit(ptr %t309)
|
|
call void @fn_emit(ptr @.str2497)
|
|
%t310 = load ptr, ptr %t297
|
|
call void @fn_emit(ptr %t310)
|
|
call void @fn_emit(ptr @.str2498)
|
|
store i32 0, ptr %t311
|
|
br label %wcond42
|
|
wcond42:
|
|
%t312 = load i32, ptr %t311
|
|
%t313 = load ptr, ptr %t293
|
|
%t314 = getelementptr inbounds %Cmp_Node, ptr %t313, i32 0, i32 7
|
|
%t315 = load ptr, ptr %t314
|
|
%t316 = getelementptr inbounds %LSlice, ptr %t315, i32 0, i32 1
|
|
%t317 = load i32, ptr %t316
|
|
%t318 = icmp slt i32 %t312, %t317
|
|
%t319 = zext i1 %t318 to i32
|
|
%t320 = icmp ne i32 %t319, 0
|
|
br i1 %t320, label %wbody43, label %wend44
|
|
wbody43:
|
|
%t321 = load ptr, ptr %t293
|
|
%t322 = getelementptr inbounds %Cmp_Node, ptr %t321, i32 0, i32 7
|
|
%t323 = load ptr, ptr %t322
|
|
%t324 = getelementptr inbounds %LSlice, ptr %t323, i32 0, i32 0
|
|
%t325 = load ptr, ptr %t324
|
|
%t326 = load i32, ptr %t311
|
|
%t327 = getelementptr inbounds ptr, ptr %t325, i32 %t326
|
|
%t328 = load ptr, ptr %t327
|
|
%t329 = getelementptr inbounds %Cmp_Node, ptr %t328, i32 0, i32 3
|
|
%t330 = load ptr, ptr %t329
|
|
%t331 = call ptr @fn_llty(ptr %t330)
|
|
store ptr %t331, ptr %t332
|
|
%t333 = load ptr, ptr %t300
|
|
%t334 = call ptr @fn_str_concat(ptr %t333, ptr @.str2499)
|
|
%t335 = load i32, ptr %t311
|
|
%t336 = call ptr @fn_itoa(i32 %t335)
|
|
%t337 = call ptr @fn_str_concat(ptr %t334, ptr %t336)
|
|
store ptr %t337, ptr %t338
|
|
call void @fn_emit(ptr @.str2500)
|
|
%t339 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t339)
|
|
call void @fn_emit(ptr @.str2501)
|
|
%t340 = load i32, ptr %t311
|
|
%t341 = call ptr @fn_itoa(i32 %t340)
|
|
call void @fn_emit(ptr %t341)
|
|
call void @fn_emit(ptr @.str2502)
|
|
call void @fn_emit(ptr @.str2503)
|
|
%t342 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t342)
|
|
call void @fn_emit(ptr @.str2504)
|
|
%t343 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t343)
|
|
call void @fn_emit(ptr @.str2505)
|
|
%t344 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t344)
|
|
call void @fn_emit(ptr @.str2506)
|
|
call void @fn_emit(ptr @.str2507)
|
|
%t345 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t345)
|
|
call void @fn_emit(ptr @.str2508)
|
|
call void @fn_emit(ptr @.str2509)
|
|
%t346 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t346)
|
|
call void @fn_emit(ptr @.str2510)
|
|
%t347 = load ptr, ptr %t297
|
|
call void @fn_emit(ptr %t347)
|
|
call void @fn_emit(ptr @.str2511)
|
|
%t348 = load ptr, ptr %t300
|
|
call void @fn_emit(ptr %t348)
|
|
call void @fn_emit(ptr @.str2512)
|
|
%t349 = load i32, ptr %t311
|
|
%t350 = call ptr @fn_itoa(i32 %t349)
|
|
call void @fn_emit(ptr %t350)
|
|
call void @fn_emit(ptr @.str2513)
|
|
%t351 = load ptr, ptr %t332
|
|
%t352 = call i32 @fn_str_eq(ptr %t351, ptr @.str2514)
|
|
%t353 = icmp ne i32 %t352, 0
|
|
br i1 %t353, label %then45, label %else46
|
|
then45:
|
|
call void @fn_emit(ptr @.str2515)
|
|
%t354 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t354)
|
|
call void @fn_emit(ptr @.str2516)
|
|
call void @fn_emit(ptr @.str2517)
|
|
%t355 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t355)
|
|
call void @fn_emit(ptr @.str2518)
|
|
%t356 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t356)
|
|
call void @fn_emit(ptr @.str2519)
|
|
br label %ifend47
|
|
else46:
|
|
%t357 = load ptr, ptr %t332
|
|
%t358 = call i32 @fn_str_eq(ptr %t357, ptr @.str2520)
|
|
%t359 = icmp ne i32 %t358, 0
|
|
br i1 %t359, label %then48, label %else49
|
|
then48:
|
|
call void @fn_emit(ptr @.str2521)
|
|
%t360 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t360)
|
|
call void @fn_emit(ptr @.str2522)
|
|
call void @fn_emit(ptr @.str2523)
|
|
%t361 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t361)
|
|
call void @fn_emit(ptr @.str2524)
|
|
%t362 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t362)
|
|
call void @fn_emit(ptr @.str2525)
|
|
br label %ifend50
|
|
else49:
|
|
call void @fn_emit(ptr @.str2526)
|
|
%t363 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t363)
|
|
call void @fn_emit(ptr @.str2527)
|
|
call void @fn_emit(ptr @.str2528)
|
|
%t364 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t364)
|
|
call void @fn_emit(ptr @.str2529)
|
|
%t365 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t365)
|
|
call void @fn_emit(ptr @.str2530)
|
|
br label %ifend50
|
|
ifend50:
|
|
br label %ifend47
|
|
ifend47:
|
|
call void @fn_emit(ptr @.str2531)
|
|
%t366 = load ptr, ptr %t338
|
|
call void @fn_emit(ptr %t366)
|
|
call void @fn_emit(ptr @.str2532)
|
|
%t367 = load i32, ptr %t311
|
|
%t368 = add i32 %t367, 1
|
|
store i32 %t368, ptr %t311
|
|
br label %wcond42
|
|
wend44:
|
|
call void @fn_emit(ptr @.str2533)
|
|
call void @fn_emit(ptr @.str2534)
|
|
%t369 = load ptr, ptr %t300
|
|
call void @fn_emit(ptr %t369)
|
|
call void @fn_emit(ptr @.str2535)
|
|
%t370 = load i32, ptr %t29
|
|
%t371 = add i32 %t370, 1
|
|
store i32 %t371, ptr %t29
|
|
br label %ifend41
|
|
ifend41:
|
|
%t372 = load i32, ptr %t30
|
|
%t373 = add i32 %t372, 1
|
|
store i32 %t373, ptr %t30
|
|
br label %wcond36
|
|
wend38:
|
|
call void @fn_emit(ptr @.str2536)
|
|
%t374 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t374)
|
|
call void @fn_emit(ptr @.str2537)
|
|
call void @fn_emit(ptr @.str2538)
|
|
call void @fn_emit(ptr @.str2539)
|
|
call void @fn_emit(ptr @.str2540)
|
|
call void @fn_emit(ptr @.str2541)
|
|
call void @fn_emit(ptr @.str2542)
|
|
call void @fn_emit(ptr @.str2543)
|
|
store i32 0, ptr %t29
|
|
store i32 0, ptr %t30
|
|
br label %wcond51
|
|
wcond51:
|
|
%t375 = load i32, ptr %t30
|
|
%t376 = load ptr, ptr @g_prog
|
|
%t377 = getelementptr inbounds %LSlice, ptr %t376, i32 0, i32 1
|
|
%t378 = load i32, ptr %t377
|
|
%t379 = icmp slt i32 %t375, %t378
|
|
%t380 = zext i1 %t379 to i32
|
|
%t381 = icmp ne i32 %t380, 0
|
|
br i1 %t381, label %wbody52, label %wend53
|
|
wbody52:
|
|
%t382 = load ptr, ptr @g_prog
|
|
%t383 = getelementptr inbounds %LSlice, ptr %t382, i32 0, i32 0
|
|
%t384 = load ptr, ptr %t383
|
|
%t385 = load i32, ptr %t30
|
|
%t386 = getelementptr inbounds ptr, ptr %t384, i32 %t385
|
|
%t387 = load ptr, ptr %t386
|
|
%t388 = getelementptr inbounds %Cmp_Node, ptr %t387, i32 0, i32 0
|
|
%t389 = load i32, ptr %t388
|
|
%t390 = icmp eq i32 %t389, 8
|
|
%t391 = zext i1 %t390 to i32
|
|
%t392 = icmp ne i32 %t391, 0
|
|
br i1 %t392, label %then54, label %ifend56
|
|
then54:
|
|
%t393 = load ptr, ptr @g_prog
|
|
%t394 = getelementptr inbounds %LSlice, ptr %t393, i32 0, i32 0
|
|
%t395 = load ptr, ptr %t394
|
|
%t396 = load i32, ptr %t30
|
|
%t397 = getelementptr inbounds ptr, ptr %t395, i32 %t396
|
|
%t398 = load ptr, ptr %t397
|
|
%t399 = getelementptr inbounds %Cmp_Node, ptr %t398, i32 0, i32 1
|
|
%t400 = load ptr, ptr %t399
|
|
store ptr %t400, ptr %t401
|
|
%t402 = load i32, ptr %t29
|
|
%t403 = call ptr @fn_itoa(i32 %t402)
|
|
store ptr %t403, ptr %t404
|
|
call void @fn_emit(ptr @.str2544)
|
|
%t405 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t405)
|
|
call void @fn_emit(ptr @.str2545)
|
|
%t406 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t406)
|
|
call void @fn_emit(ptr @.str2546)
|
|
call void @fn_emit(ptr @.str2547)
|
|
%t407 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t407)
|
|
call void @fn_emit(ptr @.str2548)
|
|
%t408 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t408)
|
|
call void @fn_emit(ptr @.str2549)
|
|
%t409 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t409)
|
|
call void @fn_emit(ptr @.str2550)
|
|
call void @fn_emit(ptr @.str2551)
|
|
%t410 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t410)
|
|
call void @fn_emit(ptr @.str2552)
|
|
call void @fn_emit(ptr @.str2553)
|
|
%t411 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t411)
|
|
call void @fn_emit(ptr @.str2554)
|
|
%t412 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t412)
|
|
call void @fn_emit(ptr @.str2555)
|
|
%t413 = load ptr, ptr %t401
|
|
call void @fn_emit(ptr %t413)
|
|
call void @fn_emit(ptr @.str2556)
|
|
call void @fn_emit(ptr @.str2557)
|
|
%t414 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t414)
|
|
call void @fn_emit(ptr @.str2558)
|
|
%t415 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t415)
|
|
call void @fn_emit(ptr @.str2559)
|
|
call void @fn_emit(ptr @.str2560)
|
|
%t416 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t416)
|
|
call void @fn_emit(ptr @.str2561)
|
|
%t417 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t417)
|
|
call void @fn_emit(ptr @.str2562)
|
|
%t418 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t418)
|
|
call void @fn_emit(ptr @.str2563)
|
|
call void @fn_emit(ptr @.str2564)
|
|
%t419 = load ptr, ptr %t404
|
|
call void @fn_emit(ptr %t419)
|
|
call void @fn_emit(ptr @.str2565)
|
|
%t420 = load i32, ptr %t29
|
|
%t421 = add i32 %t420, 1
|
|
store i32 %t421, ptr %t29
|
|
br label %ifend56
|
|
ifend56:
|
|
%t422 = load i32, ptr %t30
|
|
%t423 = add i32 %t422, 1
|
|
store i32 %t423, ptr %t30
|
|
br label %wcond51
|
|
wend53:
|
|
call void @fn_emit(ptr @.str2566)
|
|
%t424 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t424)
|
|
call void @fn_emit(ptr @.str2567)
|
|
call void @fn_emit(ptr @.str2568)
|
|
call void @fn_emit(ptr @.str2569)
|
|
call void @fn_emit(ptr @.str2570)
|
|
call void @fn_emit(ptr @.str2571)
|
|
call void @fn_emit(ptr @.str2572)
|
|
call void @fn_emit(ptr @.str2573)
|
|
%t425 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t425)
|
|
call void @fn_emit(ptr @.str2574)
|
|
call void @fn_emit(ptr @.str2575)
|
|
call void @fn_emit(ptr @.str2576)
|
|
call void @fn_emit(ptr @.str2577)
|
|
%t426 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t426)
|
|
call void @fn_emit(ptr @.str2578)
|
|
%t427 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t427)
|
|
call void @fn_emit(ptr @.str2579)
|
|
call void @fn_emit(ptr @.str2580)
|
|
call void @fn_emit(ptr @.str2581)
|
|
call void @fn_emit(ptr @.str2582)
|
|
call void @fn_emit(ptr @.str2583)
|
|
%t428 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t428)
|
|
call void @fn_emit(ptr @.str2584)
|
|
call void @fn_emit(ptr @.str2585)
|
|
call void @fn_emit(ptr @.str2586)
|
|
call void @fn_emit(ptr @.str2587)
|
|
%t429 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t429)
|
|
call void @fn_emit(ptr @.str2588)
|
|
call void @fn_emit(ptr @.str2589)
|
|
call void @fn_emit(ptr @.str2590)
|
|
%t430 = load ptr, ptr %t28
|
|
call void @fn_emit(ptr %t430)
|
|
call void @fn_emit(ptr @.str2591)
|
|
call void @fn_emit(ptr @.str2592)
|
|
call void @fn_emit(ptr @.str2593)
|
|
call void @fn_emit(ptr @.str2594)
|
|
%t431 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t431)
|
|
call void @fn_emit(ptr @.str2595)
|
|
call void @fn_emit(ptr @.str2596)
|
|
call void @fn_emit(ptr @.str2597)
|
|
store i32 0, ptr %t29
|
|
store i32 0, ptr %t30
|
|
br label %wcond57
|
|
wcond57:
|
|
%t432 = load i32, ptr %t30
|
|
%t433 = load ptr, ptr @g_prog
|
|
%t434 = getelementptr inbounds %LSlice, ptr %t433, i32 0, i32 1
|
|
%t435 = load i32, ptr %t434
|
|
%t436 = icmp slt i32 %t432, %t435
|
|
%t437 = zext i1 %t436 to i32
|
|
%t438 = icmp ne i32 %t437, 0
|
|
br i1 %t438, label %wbody58, label %wend59
|
|
wbody58:
|
|
%t439 = load ptr, ptr @g_prog
|
|
%t440 = getelementptr inbounds %LSlice, ptr %t439, i32 0, i32 0
|
|
%t441 = load ptr, ptr %t440
|
|
%t442 = load i32, ptr %t30
|
|
%t443 = getelementptr inbounds ptr, ptr %t441, i32 %t442
|
|
%t444 = load ptr, ptr %t443
|
|
%t445 = getelementptr inbounds %Cmp_Node, ptr %t444, i32 0, i32 0
|
|
%t446 = load i32, ptr %t445
|
|
%t447 = icmp eq i32 %t446, 10
|
|
%t448 = zext i1 %t447 to i32
|
|
%t449 = icmp ne i32 %t448, 0
|
|
br i1 %t449, label %then60, label %ifend62
|
|
then60:
|
|
%t450 = load ptr, ptr @g_prog
|
|
%t451 = getelementptr inbounds %LSlice, ptr %t450, i32 0, i32 0
|
|
%t452 = load ptr, ptr %t451
|
|
%t453 = load i32, ptr %t30
|
|
%t454 = getelementptr inbounds ptr, ptr %t452, i32 %t453
|
|
%t455 = load ptr, ptr %t454
|
|
%t456 = getelementptr inbounds %Cmp_Node, ptr %t455, i32 0, i32 1
|
|
%t457 = load ptr, ptr %t456
|
|
%t458 = call ptr @fn_emit_str_const(ptr %t457)
|
|
store ptr %t458, ptr %t459
|
|
%t460 = load i32, ptr %t29
|
|
%t461 = call ptr @fn_itoa(i32 %t460)
|
|
store ptr %t461, ptr %t462
|
|
call void @fn_emit(ptr @.str2598)
|
|
%t463 = load ptr, ptr %t462
|
|
call void @fn_emit(ptr %t463)
|
|
call void @fn_emit(ptr @.str2599)
|
|
%t464 = load ptr, ptr %t459
|
|
call void @fn_emit(ptr %t464)
|
|
call void @fn_emit(ptr @.str2600)
|
|
call void @fn_emit(ptr @.str2601)
|
|
%t465 = load ptr, ptr %t462
|
|
call void @fn_emit(ptr %t465)
|
|
call void @fn_emit(ptr @.str2602)
|
|
%t466 = load ptr, ptr %t462
|
|
call void @fn_emit(ptr %t466)
|
|
call void @fn_emit(ptr @.str2603)
|
|
call void @fn_emit(ptr @.str2604)
|
|
%t467 = load ptr, ptr %t462
|
|
call void @fn_emit(ptr %t467)
|
|
call void @fn_emit(ptr @.str2605)
|
|
%t468 = load ptr, ptr %t462
|
|
call void @fn_emit(ptr %t468)
|
|
call void @fn_emit(ptr @.str2606)
|
|
%t469 = load ptr, ptr %t462
|
|
call void @fn_emit(ptr %t469)
|
|
call void @fn_emit(ptr @.str2607)
|
|
call void @fn_emit(ptr @.str2608)
|
|
%t470 = load ptr, ptr %t462
|
|
call void @fn_emit(ptr %t470)
|
|
call void @fn_emit(ptr @.str2609)
|
|
%t471 = load ptr, ptr @g_prog
|
|
%t472 = getelementptr inbounds %LSlice, ptr %t471, i32 0, i32 0
|
|
%t473 = load ptr, ptr %t472
|
|
%t474 = load i32, ptr %t30
|
|
%t475 = getelementptr inbounds ptr, ptr %t473, i32 %t474
|
|
%t476 = load ptr, ptr %t475
|
|
%t477 = getelementptr inbounds %Cmp_Node, ptr %t476, i32 0, i32 1
|
|
%t478 = load ptr, ptr %t477
|
|
%t479 = call i32 @fn_find_arch_id(ptr %t478)
|
|
%t480 = call ptr @fn_itoa(i32 %t479)
|
|
call void @fn_emit(ptr %t480)
|
|
call void @fn_emit(ptr @.str2610)
|
|
call void @fn_emit(ptr @.str2611)
|
|
%t481 = load ptr, ptr %t462
|
|
call void @fn_emit(ptr %t481)
|
|
call void @fn_emit(ptr @.str2612)
|
|
%t482 = load i32, ptr %t29
|
|
%t483 = add i32 %t482, 1
|
|
store i32 %t483, ptr %t29
|
|
br label %ifend62
|
|
ifend62:
|
|
%t484 = load i32, ptr %t30
|
|
%t485 = add i32 %t484, 1
|
|
store i32 %t485, ptr %t30
|
|
br label %wcond57
|
|
wend59:
|
|
call void @fn_emit(ptr @.str2613)
|
|
store i32 0, ptr %t30
|
|
br label %wcond63
|
|
wcond63:
|
|
%t486 = load i32, ptr %t30
|
|
%t487 = load ptr, ptr @g_prog
|
|
%t488 = getelementptr inbounds %LSlice, ptr %t487, i32 0, i32 1
|
|
%t489 = load i32, ptr %t488
|
|
%t490 = icmp slt i32 %t486, %t489
|
|
%t491 = zext i1 %t490 to i32
|
|
%t492 = icmp ne i32 %t491, 0
|
|
br i1 %t492, label %wbody64, label %wend65
|
|
wbody64:
|
|
%t493 = load ptr, ptr @g_prog
|
|
%t494 = getelementptr inbounds %LSlice, ptr %t493, i32 0, i32 0
|
|
%t495 = load ptr, ptr %t494
|
|
%t496 = load i32, ptr %t30
|
|
%t497 = getelementptr inbounds ptr, ptr %t495, i32 %t496
|
|
%t498 = load ptr, ptr %t497
|
|
%t499 = getelementptr inbounds %Cmp_Node, ptr %t498, i32 0, i32 0
|
|
%t500 = load i32, ptr %t499
|
|
%t501 = icmp eq i32 %t500, 10
|
|
%t502 = zext i1 %t501 to i32
|
|
%t503 = icmp ne i32 %t502, 0
|
|
br i1 %t503, label %then66, label %ifend68
|
|
then66:
|
|
%t504 = load ptr, ptr @g_prog
|
|
%t505 = getelementptr inbounds %LSlice, ptr %t504, i32 0, i32 0
|
|
%t506 = load ptr, ptr %t505
|
|
%t507 = load i32, ptr %t30
|
|
%t508 = getelementptr inbounds ptr, ptr %t506, i32 %t507
|
|
%t509 = load ptr, ptr %t508
|
|
%t510 = getelementptr inbounds %Cmp_Node, ptr %t509, i32 0, i32 1
|
|
%t511 = load ptr, ptr %t510
|
|
store ptr %t511, ptr %t512
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
store i32 0, ptr @g_g_term
|
|
call void @fn_loc_reset()
|
|
store i32 0, ptr @g_nloop
|
|
store i32 0, ptr @g_nself
|
|
store ptr @.str2614, ptr @g_ret_ty
|
|
%t513 = call ptr @fn_buf_new()
|
|
store ptr %t513, ptr %t514
|
|
%t515 = call ptr @fn_buf_new()
|
|
store ptr %t515, ptr @g_falloc
|
|
%t516 = load ptr, ptr @g_code
|
|
store ptr %t516, ptr %t517
|
|
%t518 = load ptr, ptr %t514
|
|
store ptr %t518, ptr @g_code
|
|
%t519 = call ptr @fn_node(i32 22)
|
|
store ptr %t519, ptr %t520
|
|
%t521 = load ptr, ptr %t520
|
|
%t522 = getelementptr inbounds %Cmp_Node, ptr %t521, i32 0, i32 1
|
|
%t523 = load ptr, ptr %t512
|
|
store ptr %t523, ptr %t522
|
|
%t524 = load ptr, ptr %t520
|
|
%t525 = call ptr @fn_emit_spawn(ptr %t524)
|
|
store ptr %t525, ptr %t526
|
|
call void @fn_emit(ptr @.str2615)
|
|
%t527 = load ptr, ptr %t526
|
|
call void @fn_emit(ptr %t527)
|
|
call void @fn_emit(ptr @.str2616)
|
|
%t528 = load ptr, ptr %t517
|
|
store ptr %t528, ptr @g_code
|
|
call void @fn_emit(ptr @.str2617)
|
|
%t529 = load ptr, ptr %t512
|
|
call void @fn_emit(ptr %t529)
|
|
call void @fn_emit(ptr @.str2618)
|
|
%t530 = load ptr, ptr @g_falloc
|
|
%t531 = call ptr @fn_buf_str(ptr %t530)
|
|
call void @fn_emit(ptr %t531)
|
|
%t532 = load ptr, ptr %t514
|
|
%t533 = call ptr @fn_buf_str(ptr %t532)
|
|
call void @fn_emit(ptr %t533)
|
|
call void @fn_emit(ptr @.str2619)
|
|
br label %ifend68
|
|
ifend68:
|
|
%t534 = load i32, ptr %t30
|
|
%t535 = add i32 %t534, 1
|
|
store i32 %t535, ptr %t30
|
|
br label %wcond63
|
|
wend65:
|
|
call void @fn_emit(ptr @.str2620)
|
|
store i32 0, ptr %t29
|
|
store i32 0, ptr %t30
|
|
br label %wcond69
|
|
wcond69:
|
|
%t536 = load i32, ptr %t30
|
|
%t537 = load ptr, ptr @g_prog
|
|
%t538 = getelementptr inbounds %LSlice, ptr %t537, i32 0, i32 1
|
|
%t539 = load i32, ptr %t538
|
|
%t540 = icmp slt i32 %t536, %t539
|
|
%t541 = zext i1 %t540 to i32
|
|
%t542 = icmp ne i32 %t541, 0
|
|
br i1 %t542, label %wbody70, label %wend71
|
|
wbody70:
|
|
%t543 = load ptr, ptr @g_prog
|
|
%t544 = getelementptr inbounds %LSlice, ptr %t543, i32 0, i32 0
|
|
%t545 = load ptr, ptr %t544
|
|
%t546 = load i32, ptr %t30
|
|
%t547 = getelementptr inbounds ptr, ptr %t545, i32 %t546
|
|
%t548 = load ptr, ptr %t547
|
|
%t549 = getelementptr inbounds %Cmp_Node, ptr %t548, i32 0, i32 0
|
|
%t550 = load i32, ptr %t549
|
|
%t551 = icmp eq i32 %t550, 10
|
|
%t552 = zext i1 %t551 to i32
|
|
%t553 = icmp ne i32 %t552, 0
|
|
br i1 %t553, label %then72, label %ifend74
|
|
then72:
|
|
%t554 = load ptr, ptr @g_prog
|
|
%t555 = getelementptr inbounds %LSlice, ptr %t554, i32 0, i32 0
|
|
%t556 = load ptr, ptr %t555
|
|
%t557 = load i32, ptr %t30
|
|
%t558 = getelementptr inbounds ptr, ptr %t556, i32 %t557
|
|
%t559 = load ptr, ptr %t558
|
|
%t560 = getelementptr inbounds %Cmp_Node, ptr %t559, i32 0, i32 1
|
|
%t561 = load ptr, ptr %t560
|
|
store ptr %t561, ptr %t562
|
|
%t563 = load i32, ptr %t29
|
|
%t564 = call ptr @fn_itoa(i32 %t563)
|
|
store ptr %t564, ptr %t565
|
|
call void @fn_emit(ptr @.str2621)
|
|
%t566 = load ptr, ptr %t565
|
|
call void @fn_emit(ptr %t566)
|
|
call void @fn_emit(ptr @.str2622)
|
|
%t567 = load ptr, ptr %t562
|
|
%t568 = call i32 @fn_find_arch_id(ptr %t567)
|
|
%t569 = call ptr @fn_itoa(i32 %t568)
|
|
call void @fn_emit(ptr %t569)
|
|
call void @fn_emit(ptr @.str2623)
|
|
call void @fn_emit(ptr @.str2624)
|
|
%t570 = load ptr, ptr %t565
|
|
call void @fn_emit(ptr %t570)
|
|
call void @fn_emit(ptr @.str2625)
|
|
%t571 = load ptr, ptr %t565
|
|
call void @fn_emit(ptr %t571)
|
|
call void @fn_emit(ptr @.str2626)
|
|
%t572 = load ptr, ptr %t565
|
|
call void @fn_emit(ptr %t572)
|
|
call void @fn_emit(ptr @.str2627)
|
|
call void @fn_emit(ptr @.str2628)
|
|
%t573 = load ptr, ptr %t565
|
|
call void @fn_emit(ptr %t573)
|
|
call void @fn_emit(ptr @.str2629)
|
|
%t574 = load ptr, ptr %t565
|
|
call void @fn_emit(ptr %t574)
|
|
call void @fn_emit(ptr @.str2630)
|
|
%t575 = load ptr, ptr %t562
|
|
call void @fn_emit(ptr %t575)
|
|
call void @fn_emit(ptr @.str2631)
|
|
%t576 = load ptr, ptr %t565
|
|
call void @fn_emit(ptr %t576)
|
|
call void @fn_emit(ptr @.str2632)
|
|
call void @fn_emit(ptr @.str2633)
|
|
%t577 = load ptr, ptr %t565
|
|
call void @fn_emit(ptr %t577)
|
|
call void @fn_emit(ptr @.str2634)
|
|
%t578 = load i32, ptr %t29
|
|
%t579 = add i32 %t578, 1
|
|
store i32 %t579, ptr %t29
|
|
br label %ifend74
|
|
ifend74:
|
|
%t580 = load i32, ptr %t30
|
|
%t581 = add i32 %t580, 1
|
|
store i32 %t581, ptr %t30
|
|
br label %wcond69
|
|
wend71:
|
|
call void @fn_emit(ptr @.str2635)
|
|
call void @fn_emit(ptr @.str2636)
|
|
call void @fn_emit(ptr @.str2637)
|
|
call void @fn_emit(ptr @.str2638)
|
|
call void @fn_emit(ptr @.str2639)
|
|
call void @fn_emit(ptr @.str2640)
|
|
%t582 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t582)
|
|
call void @fn_emit(ptr @.str2641)
|
|
call void @fn_emit(ptr @.str2642)
|
|
call void @fn_emit(ptr @.str2643)
|
|
call void @fn_emit(ptr @.str2644)
|
|
call void @fn_emit(ptr @.str2645)
|
|
call void @fn_emit(ptr @.str2646)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_tick_helpers() {
|
|
entry:
|
|
call void @fn_emit(ptr @.str2647)
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
call void @fn_emit_calls_for_phase(ptr @.str2648)
|
|
call void @fn_emit_calls_for_phase(ptr @.str2649)
|
|
call void @fn_emit_calls_for_phase(ptr @.str2650)
|
|
call void @fn_emit_calls_for_phase(ptr @.str2651)
|
|
call void @fn_emit(ptr @.str2652)
|
|
call void @fn_emit(ptr @.str2653)
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
call void @fn_emit_calls_for_phase(ptr @.str2654)
|
|
call void @fn_emit(ptr @.str2655)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_game_defs() {
|
|
entry:
|
|
%t0 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_prog
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = icmp eq i32 %t15, 9
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
%t19 = load ptr, ptr @g_prog
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = load i32, ptr %t0
|
|
%t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22
|
|
%t24 = load ptr, ptr %t23
|
|
call void @fn_emit_system_fn(ptr %t24)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t25 = load i32, ptr %t0
|
|
%t26 = add i32 %t25, 1
|
|
store i32 %t26, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_emit_despawn_hooks()
|
|
call void @fn_emit_scene_hooks()
|
|
call void @fn_emit_tick_helpers()
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_game_main() {
|
|
entry:
|
|
%t12 = alloca i32
|
|
%t47 = alloca ptr
|
|
%t52 = alloca ptr
|
|
%t58 = alloca ptr
|
|
%t63 = alloca ptr
|
|
%t70 = alloca ptr
|
|
%t78 = alloca ptr
|
|
call void @fn_emit_game_defs()
|
|
call void @fn_emit(ptr @.str2656)
|
|
call void @fn_emit(ptr @.str2657)
|
|
call void @fn_emit(ptr @.str2658)
|
|
%t0 = call ptr @fn_find_fn(ptr @.str2659)
|
|
%t1 = icmp ne ptr %t0, null
|
|
%t2 = zext i1 %t1 to i32
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_emit(ptr @.str2660)
|
|
br label %ifend2
|
|
ifend2:
|
|
call void @fn_emit_calls_for_phase(ptr @.str2661)
|
|
%t4 = load ptr, ptr @g_g_scenes
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1
|
|
%t6 = load i32, ptr %t5
|
|
%t7 = icmp sgt i32 %t6, 0
|
|
%t8 = zext i1 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then3, label %ifend5
|
|
then3:
|
|
call void @fn_emit(ptr @.str2662)
|
|
%t10 = load i32, ptr @g_g_start_scene
|
|
%t11 = call ptr @fn_itoa(i32 %t10)
|
|
call void @fn_emit(ptr %t11)
|
|
call void @fn_emit(ptr @.str2663)
|
|
store i32 0, ptr %t12
|
|
br label %wcond6
|
|
wcond6:
|
|
%t13 = load i32, ptr %t12
|
|
%t14 = load ptr, ptr @g_g_scenes
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1
|
|
%t16 = load i32, ptr %t15
|
|
%t17 = icmp slt i32 %t13, %t16
|
|
%t18 = zext i1 %t17 to i32
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %wbody7, label %wend8
|
|
wbody7:
|
|
%t20 = load ptr, ptr @g_g_scenes
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t12
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 2
|
|
%t27 = load i32, ptr %t26
|
|
%t28 = load i32, ptr @g_g_start_scene
|
|
%t29 = icmp eq i32 %t27, %t28
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
br i1 %t31, label %then9, label %ifend11
|
|
then9:
|
|
call void @fn_emit(ptr @.str2664)
|
|
%t32 = load ptr, ptr @g_g_scenes
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = load i32, ptr %t12
|
|
%t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35
|
|
%t37 = load ptr, ptr %t36
|
|
%t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1
|
|
%t39 = load ptr, ptr %t38
|
|
call void @fn_emit(ptr %t39)
|
|
call void @fn_emit(ptr @.str2665)
|
|
br label %ifend11
|
|
ifend11:
|
|
%t40 = load i32, ptr %t12
|
|
%t41 = add i32 %t40, 1
|
|
store i32 %t41, ptr %t12
|
|
br label %wcond6
|
|
wend8:
|
|
br label %ifend5
|
|
ifend5:
|
|
%t42 = call ptr @fn_find_event(ptr @.str2666)
|
|
%t43 = icmp ne ptr %t42, null
|
|
%t44 = zext i1 %t43 to i32
|
|
%t45 = icmp ne i32 %t44, 0
|
|
br i1 %t45, label %then12, label %ifend14
|
|
then12:
|
|
call void @fn_emit(ptr @.str2667)
|
|
br label %ifend14
|
|
ifend14:
|
|
call void @fn_emit(ptr @.str2668)
|
|
call void @fn_emit(ptr @.str2669)
|
|
%t46 = call ptr @fn_emit_bind(ptr @.str2670)
|
|
store ptr %t46, ptr %t47
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = call ptr @fn_str_concat(ptr @.str2671, ptr %t48)
|
|
%t50 = call ptr @fn_str_concat(ptr %t49, ptr @.str2672)
|
|
%t51 = call ptr @fn_emit_bind(ptr %t50)
|
|
store ptr %t51, ptr %t52
|
|
%t53 = call ptr @fn_find_fn(ptr @.str2673)
|
|
%t54 = icmp ne ptr %t53, null
|
|
%t55 = zext i1 %t54 to i32
|
|
%t56 = icmp ne i32 %t55, 0
|
|
br i1 %t56, label %then15, label %else16
|
|
then15:
|
|
%t57 = call ptr @fn_emit_bind(ptr @.str2674)
|
|
store ptr %t57, ptr %t58
|
|
%t59 = load ptr, ptr %t58
|
|
%t60 = call ptr @fn_str_concat(ptr @.str2675, ptr %t59)
|
|
%t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str2676)
|
|
%t62 = call ptr @fn_emit_bind(ptr %t61)
|
|
store ptr %t62, ptr %t63
|
|
%t64 = load ptr, ptr %t52
|
|
%t65 = call ptr @fn_str_concat(ptr @.str2677, ptr %t64)
|
|
%t66 = call ptr @fn_str_concat(ptr %t65, ptr @.str2678)
|
|
%t67 = load ptr, ptr %t63
|
|
%t68 = call ptr @fn_str_concat(ptr %t66, ptr %t67)
|
|
%t69 = call ptr @fn_emit_bind(ptr %t68)
|
|
store ptr %t69, ptr %t70
|
|
call void @fn_emit(ptr @.str2679)
|
|
%t71 = load ptr, ptr %t70
|
|
call void @fn_emit(ptr %t71)
|
|
call void @fn_emit(ptr @.str2680)
|
|
br label %ifend17
|
|
else16:
|
|
call void @fn_emit(ptr @.str2681)
|
|
%t72 = load ptr, ptr %t52
|
|
call void @fn_emit(ptr %t72)
|
|
call void @fn_emit(ptr @.str2682)
|
|
br label %ifend17
|
|
ifend17:
|
|
call void @fn_emit(ptr @.str2683)
|
|
%t73 = call ptr @fn_find_fn(ptr @.str2684)
|
|
%t74 = icmp ne ptr %t73, null
|
|
%t75 = zext i1 %t74 to i32
|
|
%t76 = icmp ne i32 %t75, 0
|
|
br i1 %t76, label %then18, label %ifend20
|
|
then18:
|
|
%t77 = call ptr @fn_emit_bind(ptr @.str2685)
|
|
store ptr %t77, ptr %t78
|
|
call void @fn_emit(ptr @.str2686)
|
|
%t79 = load ptr, ptr %t78
|
|
call void @fn_emit(ptr %t79)
|
|
call void @fn_emit(ptr @.str2687)
|
|
br label %ifend20
|
|
ifend20:
|
|
call void @fn_emit_calls_for_phase(ptr @.str2688)
|
|
call void @fn_emit_calls_for_phase(ptr @.str2689)
|
|
call void @fn_emit_calls_for_phase(ptr @.str2690)
|
|
call void @fn_emit_calls_for_phase(ptr @.str2691)
|
|
call void @fn_emit_calls_for_phase(ptr @.str2692)
|
|
call void @fn_emit(ptr @.str2693)
|
|
call void @fn_emit(ptr @.str2694)
|
|
%t80 = load ptr, ptr @g_g_ondespawn
|
|
%t81 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 1
|
|
%t82 = load i32, ptr %t81
|
|
%t83 = icmp sgt i32 %t82, 0
|
|
%t84 = zext i1 %t83 to i32
|
|
%t85 = icmp ne i32 %t84, 0
|
|
br i1 %t85, label %then21, label %ifend23
|
|
then21:
|
|
call void @fn_emit(ptr @.str2695)
|
|
br label %ifend23
|
|
ifend23:
|
|
call void @fn_emit_calls_for_phase(ptr @.str2696)
|
|
%t86 = call ptr @fn_find_event(ptr @.str2697)
|
|
%t87 = icmp ne ptr %t86, null
|
|
%t88 = zext i1 %t87 to i32
|
|
%t89 = icmp ne i32 %t88, 0
|
|
br i1 %t89, label %then24, label %ifend26
|
|
then24:
|
|
call void @fn_emit(ptr @.str2698)
|
|
br label %ifend26
|
|
ifend26:
|
|
%t90 = call ptr @fn_find_fn(ptr @.str2699)
|
|
%t91 = icmp ne ptr %t90, null
|
|
%t92 = zext i1 %t91 to i32
|
|
%t93 = icmp ne i32 %t92, 0
|
|
br i1 %t93, label %then27, label %ifend29
|
|
then27:
|
|
call void @fn_emit(ptr @.str2700)
|
|
br label %ifend29
|
|
ifend29:
|
|
call void @fn_emit(ptr @.str2701)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define ptr @fn_machine_var(ptr %arg_a) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t11 = alloca ptr
|
|
store ptr %arg_a, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 0
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = icmp eq i32 %t3, 33
|
|
%t5 = zext i1 %t4 to i32
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then0, label %ifend2
|
|
then0:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 1
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = call ptr @fn_find_global(ptr %t9)
|
|
store ptr %t10, ptr %t11
|
|
%t12 = load ptr, ptr %t11
|
|
%t13 = icmp ne ptr %t12, null
|
|
%t14 = zext i1 %t13 to i32
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then3, label %ifend5
|
|
then3:
|
|
%t16 = load ptr, ptr %t11
|
|
%t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 0
|
|
%t18 = load i32, ptr %t17
|
|
%t19 = icmp eq i32 %t18, 2
|
|
%t20 = zext i1 %t19 to i32
|
|
%t21 = icmp ne i32 %t20, 0
|
|
br i1 %t21, label %then6, label %ifend8
|
|
then6:
|
|
%t22 = load ptr, ptr %t11
|
|
store ptr %t22, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
br label %ifend5
|
|
ifend5:
|
|
br label %ifend2
|
|
ifend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t23 = load ptr, ptr %retval
|
|
ret ptr %t23
|
|
}
|
|
|
|
define void @fn_emit_machine(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t22 = alloca ptr
|
|
%t65 = alloca ptr
|
|
%t66 = alloca i32
|
|
%t84 = alloca ptr
|
|
%t89 = alloca ptr
|
|
%t98 = alloca ptr
|
|
%t100 = alloca ptr
|
|
%t102 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = call ptr @fn_machine_var(ptr %t3)
|
|
store ptr %t4, ptr %t5
|
|
store ptr @.str2702, ptr %t6
|
|
%t7 = load ptr, ptr %t5
|
|
%t8 = icmp ne ptr %t7, null
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %then0, label %else1
|
|
then0:
|
|
%t11 = load ptr, ptr %t0
|
|
%t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 4
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 1
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = call ptr @fn_str_concat(ptr @.str2703, ptr %t15)
|
|
%t17 = call ptr @fn_emit_bind(ptr %t16)
|
|
store ptr %t17, ptr %t6
|
|
br label %ifend2
|
|
else1:
|
|
%t18 = load ptr, ptr %t0
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 4
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = call ptr @fn_emit_expr(ptr %t20)
|
|
store ptr %t21, ptr %t22
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = call ptr @fn_str_concat(ptr @.str2704, ptr %t25)
|
|
%t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str2705)
|
|
%t28 = call ptr @fn_emit_bind(ptr %t27)
|
|
store ptr %t28, ptr %t6
|
|
br label %ifend2
|
|
ifend2:
|
|
%t29 = load i32, ptr @g_nmach
|
|
%t30 = load ptr, ptr @g_mach_stk
|
|
%t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1
|
|
%t32 = load i32, ptr %t31
|
|
%t33 = icmp slt i32 %t29, %t32
|
|
%t34 = zext i1 %t33 to i32
|
|
%t35 = icmp ne i32 %t34, 0
|
|
br i1 %t35, label %then3, label %else4
|
|
then3:
|
|
%t36 = load ptr, ptr @g_mach_stk
|
|
%t37 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = load i32, ptr @g_nmach
|
|
%t40 = getelementptr inbounds ptr, ptr %t38, i32 %t39
|
|
%t41 = load ptr, ptr %t0
|
|
store ptr %t41, ptr %t40
|
|
br label %ifend5
|
|
else4:
|
|
%t42 = load ptr, ptr @g_mach_stk
|
|
%t43 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 1
|
|
%t44 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 2
|
|
%t45 = getelementptr inbounds %LSlice, ptr %t42, i32 0, i32 0
|
|
%t46 = load i32, ptr %t43
|
|
%t47 = load i32, ptr %t44
|
|
%t48 = icmp sge i32 %t46, %t47
|
|
br i1 %t48, label %grow6, label %put7
|
|
grow6:
|
|
%t49 = mul i32 %t47, 2
|
|
%t50 = icmp eq i32 %t47, 0
|
|
%t51 = select i1 %t50, i32 8, i32 %t49
|
|
%t52 = getelementptr ptr, ptr null, i32 1
|
|
%t53 = ptrtoint ptr %t52 to i64
|
|
%t54 = zext i32 %t51 to i64
|
|
%t55 = mul i64 %t54, %t53
|
|
%t56 = load ptr, ptr %t45
|
|
%t57 = call ptr @realloc(ptr %t56, i64 %t55)
|
|
store ptr %t57, ptr %t45
|
|
store i32 %t51, ptr %t44
|
|
br label %put7
|
|
put7:
|
|
%t58 = load ptr, ptr %t0
|
|
%t59 = load ptr, ptr %t45
|
|
%t60 = getelementptr inbounds ptr, ptr %t59, i32 %t46
|
|
store ptr %t58, ptr %t60
|
|
%t61 = add i32 %t46, 1
|
|
store i32 %t61, ptr %t43
|
|
br label %ifend5
|
|
ifend5:
|
|
%t62 = load i32, ptr @g_nmach
|
|
%t63 = add i32 %t62, 1
|
|
store i32 %t63, ptr @g_nmach
|
|
%t64 = call ptr @fn_lbl(ptr @.str2706)
|
|
store ptr %t64, ptr %t65
|
|
store i32 0, ptr %t66
|
|
br label %wcond8
|
|
wcond8:
|
|
%t67 = load i32, ptr %t66
|
|
%t68 = load ptr, ptr %t0
|
|
%t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 7
|
|
%t70 = load ptr, ptr %t69
|
|
%t71 = getelementptr inbounds %LSlice, ptr %t70, i32 0, i32 1
|
|
%t72 = load i32, ptr %t71
|
|
%t73 = icmp slt i32 %t67, %t72
|
|
%t74 = zext i1 %t73 to i32
|
|
%t75 = icmp ne i32 %t74, 0
|
|
br i1 %t75, label %wbody9, label %wend10
|
|
wbody9:
|
|
%t76 = load ptr, ptr %t0
|
|
%t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 7
|
|
%t78 = load ptr, ptr %t77
|
|
%t79 = getelementptr inbounds %LSlice, ptr %t78, i32 0, i32 0
|
|
%t80 = load ptr, ptr %t79
|
|
%t81 = load i32, ptr %t66
|
|
%t82 = getelementptr inbounds ptr, ptr %t80, i32 %t81
|
|
%t83 = load ptr, ptr %t82
|
|
store ptr %t83, ptr %t84
|
|
%t85 = load ptr, ptr %t84
|
|
%t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 5
|
|
%t87 = load ptr, ptr %t86
|
|
%t88 = call ptr @fn_emit_expr(ptr %t87)
|
|
store ptr %t88, ptr %t89
|
|
%t90 = load ptr, ptr %t6
|
|
%t91 = call ptr @fn_str_concat(ptr @.str2707, ptr %t90)
|
|
%t92 = call ptr @fn_str_concat(ptr %t91, ptr @.str2708)
|
|
%t93 = load ptr, ptr %t89
|
|
%t94 = getelementptr inbounds %Cmp_Val, ptr %t93, i32 0, i32 0
|
|
%t95 = load ptr, ptr %t94
|
|
%t96 = call ptr @fn_str_concat(ptr %t92, ptr %t95)
|
|
%t97 = call ptr @fn_emit_bind(ptr %t96)
|
|
store ptr %t97, ptr %t98
|
|
%t99 = call ptr @fn_lbl(ptr @.str2709)
|
|
store ptr %t99, ptr %t100
|
|
%t101 = call ptr @fn_lbl(ptr @.str2710)
|
|
store ptr %t101, ptr %t102
|
|
call void @fn_emit(ptr @.str2711)
|
|
%t103 = load ptr, ptr %t98
|
|
call void @fn_emit(ptr %t103)
|
|
call void @fn_emit(ptr @.str2712)
|
|
%t104 = load ptr, ptr %t100
|
|
call void @fn_emit(ptr %t104)
|
|
call void @fn_emit(ptr @.str2713)
|
|
%t105 = load ptr, ptr %t102
|
|
call void @fn_emit(ptr %t105)
|
|
call void @fn_emit(ptr @.str2714)
|
|
%t106 = load ptr, ptr %t100
|
|
call void @fn_emit(ptr %t106)
|
|
call void @fn_emit(ptr @.str2715)
|
|
store i32 0, ptr @g_g_term
|
|
%t107 = load ptr, ptr %t84
|
|
%t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 4
|
|
%t109 = load ptr, ptr %t108
|
|
call void @fn_emit_block(ptr %t109)
|
|
%t110 = load i32, ptr @g_g_term
|
|
%t111 = icmp eq i32 %t110, 0
|
|
%t112 = zext i1 %t111 to i32
|
|
%t113 = icmp ne i32 %t112, 0
|
|
br i1 %t113, label %then11, label %ifend13
|
|
then11:
|
|
call void @fn_emit(ptr @.str2716)
|
|
%t114 = load ptr, ptr %t65
|
|
call void @fn_emit(ptr %t114)
|
|
call void @fn_emit(ptr @.str2717)
|
|
br label %ifend13
|
|
ifend13:
|
|
%t115 = load ptr, ptr %t102
|
|
call void @fn_emit(ptr %t115)
|
|
call void @fn_emit(ptr @.str2718)
|
|
store i32 0, ptr @g_g_term
|
|
%t116 = load i32, ptr %t66
|
|
%t117 = add i32 %t116, 1
|
|
store i32 %t117, ptr %t66
|
|
br label %wcond8
|
|
wend10:
|
|
%t118 = load i32, ptr @g_g_term
|
|
%t119 = icmp eq i32 %t118, 0
|
|
%t120 = zext i1 %t119 to i32
|
|
%t121 = icmp ne i32 %t120, 0
|
|
br i1 %t121, label %then14, label %ifend16
|
|
then14:
|
|
call void @fn_emit(ptr @.str2719)
|
|
%t122 = load ptr, ptr %t65
|
|
call void @fn_emit(ptr %t122)
|
|
call void @fn_emit(ptr @.str2720)
|
|
br label %ifend16
|
|
ifend16:
|
|
%t123 = load ptr, ptr %t65
|
|
call void @fn_emit(ptr %t123)
|
|
call void @fn_emit(ptr @.str2721)
|
|
store i32 0, ptr @g_g_term
|
|
%t124 = load i32, ptr @g_nmach
|
|
%t125 = sub i32 %t124, 1
|
|
store i32 %t125, ptr @g_nmach
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_become(ptr %arg_st) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t12 = alloca ptr
|
|
%t13 = alloca ptr
|
|
%t14 = alloca i32
|
|
%t57 = alloca ptr
|
|
%t62 = alloca ptr
|
|
%t79 = alloca ptr
|
|
%t90 = alloca ptr
|
|
store ptr %arg_st, ptr %t0
|
|
%t1 = load i32, ptr @g_nmach
|
|
%t2 = icmp sgt i32 %t1, 0
|
|
%t3 = zext i1 %t2 to i32
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
%t5 = load ptr, ptr @g_mach_stk
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 0
|
|
%t7 = load ptr, ptr %t6
|
|
%t8 = load i32, ptr @g_nmach
|
|
%t9 = sub i32 %t8, 1
|
|
%t10 = getelementptr inbounds ptr, ptr %t7, i32 %t9
|
|
%t11 = load ptr, ptr %t10
|
|
store ptr %t11, ptr %t12
|
|
store ptr null, ptr %t13
|
|
store i32 0, ptr %t14
|
|
br label %wcond3
|
|
wcond3:
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = load ptr, ptr %t12
|
|
%t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 1
|
|
%t20 = load i32, ptr %t19
|
|
%t21 = icmp slt i32 %t15, %t20
|
|
%t22 = zext i1 %t21 to i32
|
|
%t23 = icmp ne i32 %t22, 0
|
|
br i1 %t23, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t24 = load ptr, ptr %t12
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 7
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = load i32, ptr %t14
|
|
%t30 = getelementptr inbounds ptr, ptr %t28, i32 %t29
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1
|
|
%t33 = load ptr, ptr %t32
|
|
%t34 = load ptr, ptr %t0
|
|
%t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1
|
|
%t36 = load ptr, ptr %t35
|
|
%t37 = call i32 @fn_str_eq(ptr %t33, ptr %t36)
|
|
%t38 = icmp ne i32 %t37, 0
|
|
br i1 %t38, label %then6, label %ifend8
|
|
then6:
|
|
%t39 = load ptr, ptr %t12
|
|
%t40 = getelementptr inbounds %Cmp_Node, ptr %t39, i32 0, i32 7
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = getelementptr inbounds %LSlice, ptr %t41, i32 0, i32 0
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = load i32, ptr %t14
|
|
%t45 = getelementptr inbounds ptr, ptr %t43, i32 %t44
|
|
%t46 = load ptr, ptr %t45
|
|
store ptr %t46, ptr %t13
|
|
br label %ifend8
|
|
ifend8:
|
|
%t47 = load i32, ptr %t14
|
|
%t48 = add i32 %t47, 1
|
|
store i32 %t48, ptr %t14
|
|
br label %wcond3
|
|
wend5:
|
|
%t49 = load ptr, ptr %t13
|
|
%t50 = icmp ne ptr %t49, null
|
|
%t51 = zext i1 %t50 to i32
|
|
%t52 = icmp ne i32 %t51, 0
|
|
br i1 %t52, label %then9, label %ifend11
|
|
then9:
|
|
%t53 = load ptr, ptr %t12
|
|
%t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 4
|
|
%t55 = load ptr, ptr %t54
|
|
%t56 = call ptr @fn_machine_var(ptr %t55)
|
|
store ptr %t56, ptr %t57
|
|
%t58 = load ptr, ptr %t13
|
|
%t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 5
|
|
%t60 = load ptr, ptr %t59
|
|
%t61 = call ptr @fn_emit_expr(ptr %t60)
|
|
store ptr %t61, ptr %t62
|
|
%t63 = load ptr, ptr %t57
|
|
%t64 = icmp ne ptr %t63, null
|
|
%t65 = zext i1 %t64 to i32
|
|
%t66 = icmp ne i32 %t65, 0
|
|
br i1 %t66, label %then12, label %else13
|
|
then12:
|
|
call void @fn_emit(ptr @.str2722)
|
|
%t67 = load ptr, ptr %t62
|
|
%t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 0
|
|
%t69 = load ptr, ptr %t68
|
|
call void @fn_emit(ptr %t69)
|
|
call void @fn_emit(ptr @.str2723)
|
|
%t70 = load ptr, ptr %t12
|
|
%t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 4
|
|
%t72 = load ptr, ptr %t71
|
|
%t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1
|
|
%t74 = load ptr, ptr %t73
|
|
call void @fn_emit(ptr %t74)
|
|
call void @fn_emit(ptr @.str2724)
|
|
br label %ifend14
|
|
else13:
|
|
%t75 = load ptr, ptr %t12
|
|
%t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 4
|
|
%t77 = load ptr, ptr %t76
|
|
%t78 = call ptr @fn_emit_expr(ptr %t77)
|
|
store ptr %t78, ptr %t79
|
|
call void @fn_emit(ptr @.str2725)
|
|
%t80 = load ptr, ptr %t79
|
|
%t81 = getelementptr inbounds %Cmp_Val, ptr %t80, i32 0, i32 0
|
|
%t82 = load ptr, ptr %t81
|
|
call void @fn_emit(ptr %t82)
|
|
call void @fn_emit(ptr @.str2726)
|
|
%t83 = load ptr, ptr %t62
|
|
%t84 = getelementptr inbounds %Cmp_Val, ptr %t83, i32 0, i32 0
|
|
%t85 = load ptr, ptr %t84
|
|
call void @fn_emit(ptr %t85)
|
|
call void @fn_emit(ptr @.str2727)
|
|
br label %ifend14
|
|
ifend14:
|
|
br label %ret
|
|
ifend11:
|
|
br label %ifend2
|
|
ifend2:
|
|
%t86 = load ptr, ptr %t0
|
|
%t87 = getelementptr inbounds %Cmp_Node, ptr %t86, i32 0, i32 1
|
|
%t88 = load ptr, ptr %t87
|
|
%t89 = call ptr @fn_find_scene(ptr %t88)
|
|
store ptr %t89, ptr %t90
|
|
%t91 = load ptr, ptr %t90
|
|
%t92 = icmp eq ptr %t91, null
|
|
%t93 = zext i1 %t92 to i32
|
|
%t94 = icmp ne i32 %t93, 0
|
|
br i1 %t94, label %then15, label %ifend17
|
|
then15:
|
|
%t95 = load ptr, ptr %t0
|
|
%t96 = getelementptr inbounds %Cmp_Node, ptr %t95, i32 0, i32 1
|
|
%t97 = load ptr, ptr %t96
|
|
%t98 = call ptr @fn_str_concat(ptr @.str2728, ptr %t97)
|
|
call void @fn_perr(ptr %t98)
|
|
br label %ifend17
|
|
ifend17:
|
|
%t99 = load ptr, ptr @g_g_cur_scene
|
|
%t100 = icmp ne ptr %t99, null
|
|
%t101 = zext i1 %t100 to i32
|
|
%t102 = icmp ne i32 %t101, 0
|
|
br i1 %t102, label %then18, label %ifend20
|
|
then18:
|
|
call void @fn_emit(ptr @.str2729)
|
|
%t103 = load ptr, ptr @g_g_cur_scene
|
|
%t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 1
|
|
%t105 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t105)
|
|
call void @fn_emit(ptr @.str2730)
|
|
br label %ifend20
|
|
ifend20:
|
|
call void @fn_emit(ptr @.str2731)
|
|
%t106 = load ptr, ptr %t90
|
|
%t107 = getelementptr inbounds %Cmp_Node, ptr %t106, i32 0, i32 2
|
|
%t108 = load i32, ptr %t107
|
|
%t109 = call ptr @fn_itoa(i32 %t108)
|
|
call void @fn_emit(ptr %t109)
|
|
call void @fn_emit(ptr @.str2732)
|
|
call void @fn_emit(ptr @.str2733)
|
|
%t110 = load ptr, ptr %t90
|
|
%t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 1
|
|
%t112 = load ptr, ptr %t111
|
|
call void @fn_emit(ptr %t112)
|
|
call void @fn_emit(ptr @.str2734)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_io(ptr %arg_fn2, ptr %arg_p, ptr %arg_bytes) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t9 = alloca ptr
|
|
%t22 = alloca ptr
|
|
%t32 = alloca ptr
|
|
%t47 = alloca ptr
|
|
store ptr %arg_fn2, ptr %t0
|
|
store ptr %arg_p, ptr %t1
|
|
store ptr %arg_bytes, ptr %t2
|
|
%t3 = load ptr, ptr @g_g_snap_mode
|
|
%t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str2735)
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load i32, ptr @g_g_iok
|
|
%t7 = call ptr @fn_itoa(i32 %t6)
|
|
%t8 = call ptr @fn_str_concat(ptr @.str2736, ptr %t7)
|
|
store ptr %t8, ptr %t9
|
|
%t10 = load i32, ptr @g_g_iok
|
|
%t11 = add i32 %t10, 1
|
|
store i32 %t11, ptr @g_g_iok
|
|
call void @fn_emit(ptr @.str2737)
|
|
%t12 = load ptr, ptr %t9
|
|
call void @fn_emit(ptr %t12)
|
|
call void @fn_emit(ptr @.str2738)
|
|
%t13 = load ptr, ptr %t0
|
|
call void @fn_emit(ptr %t13)
|
|
call void @fn_emit(ptr @.str2739)
|
|
%t14 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t14)
|
|
call void @fn_emit(ptr @.str2740)
|
|
%t15 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t15)
|
|
call void @fn_emit(ptr @.str2741)
|
|
br label %ret
|
|
ifend2:
|
|
%t16 = load ptr, ptr @g_g_snap_mode
|
|
%t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str2742)
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
%t19 = load i32, ptr @g_g_iok
|
|
%t20 = call ptr @fn_itoa(i32 %t19)
|
|
%t21 = call ptr @fn_str_concat(ptr @.str2743, ptr %t20)
|
|
store ptr %t21, ptr %t22
|
|
call void @fn_emit(ptr @.str2744)
|
|
%t23 = load ptr, ptr %t22
|
|
call void @fn_emit(ptr %t23)
|
|
call void @fn_emit(ptr @.str2745)
|
|
%t24 = load ptr, ptr @g_g_off
|
|
call void @fn_emit(ptr %t24)
|
|
call void @fn_emit(ptr @.str2746)
|
|
%t25 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t25)
|
|
call void @fn_emit(ptr @.str2747)
|
|
%t26 = load ptr, ptr %t22
|
|
store ptr %t26, ptr @g_g_off
|
|
%t27 = load i32, ptr @g_g_iok
|
|
%t28 = add i32 %t27, 1
|
|
store i32 %t28, ptr @g_g_iok
|
|
br label %ret
|
|
ifend5:
|
|
%t29 = load i32, ptr @g_g_iok
|
|
%t30 = call ptr @fn_itoa(i32 %t29)
|
|
%t31 = call ptr @fn_str_concat(ptr @.str2748, ptr %t30)
|
|
store ptr %t31, ptr %t32
|
|
call void @fn_emit(ptr @.str2749)
|
|
%t33 = load ptr, ptr %t32
|
|
call void @fn_emit(ptr %t33)
|
|
call void @fn_emit(ptr @.str2750)
|
|
%t34 = load ptr, ptr @g_g_off
|
|
call void @fn_emit(ptr %t34)
|
|
call void @fn_emit(ptr @.str2751)
|
|
%t35 = load ptr, ptr @g_g_snap_mode
|
|
%t36 = call i32 @fn_str_eq(ptr %t35, ptr @.str2752)
|
|
%t37 = icmp ne i32 %t36, 0
|
|
br i1 %t37, label %then6, label %else7
|
|
then6:
|
|
call void @fn_emit(ptr @.str2753)
|
|
%t38 = load ptr, ptr %t32
|
|
call void @fn_emit(ptr %t38)
|
|
call void @fn_emit(ptr @.str2754)
|
|
%t39 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t39)
|
|
call void @fn_emit(ptr @.str2755)
|
|
%t40 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t40)
|
|
call void @fn_emit(ptr @.str2756)
|
|
br label %ifend8
|
|
else7:
|
|
call void @fn_emit(ptr @.str2757)
|
|
%t41 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t41)
|
|
call void @fn_emit(ptr @.str2758)
|
|
%t42 = load ptr, ptr %t32
|
|
call void @fn_emit(ptr %t42)
|
|
call void @fn_emit(ptr @.str2759)
|
|
%t43 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t43)
|
|
call void @fn_emit(ptr @.str2760)
|
|
br label %ifend8
|
|
ifend8:
|
|
%t44 = load i32, ptr @g_g_iok
|
|
%t45 = call ptr @fn_itoa(i32 %t44)
|
|
%t46 = call ptr @fn_str_concat(ptr @.str2761, ptr %t45)
|
|
store ptr %t46, ptr %t47
|
|
call void @fn_emit(ptr @.str2762)
|
|
%t48 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t48)
|
|
call void @fn_emit(ptr @.str2763)
|
|
%t49 = load ptr, ptr @g_g_off
|
|
call void @fn_emit(ptr %t49)
|
|
call void @fn_emit(ptr @.str2764)
|
|
%t50 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str2765)
|
|
%t51 = load ptr, ptr %t47
|
|
store ptr %t51, ptr @g_g_off
|
|
%t52 = load i32, ptr @g_g_iok
|
|
%t53 = add i32 %t52, 1
|
|
store i32 %t53, ptr @g_g_iok
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_snapshot_blocks(ptr %arg_fn2) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t12 = alloca i32
|
|
%t43 = alloca i32
|
|
%t70 = alloca ptr
|
|
%t74 = alloca ptr
|
|
store ptr %arg_fn2, ptr %t0
|
|
store i32 0, ptr @g_g_iok
|
|
store ptr @.str2766, ptr @g_g_off
|
|
%t1 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t1, ptr %t2
|
|
%t3 = load ptr, ptr %t0
|
|
call void @fn_emit_io(ptr %t3, ptr @.str2767, ptr @.str2768)
|
|
%t4 = load ptr, ptr %t0
|
|
call void @fn_emit_io(ptr %t4, ptr @.str2769, ptr @.str2770)
|
|
call void @fn_emit(ptr @.str2771)
|
|
%t5 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t5)
|
|
call void @fn_emit(ptr @.str2772)
|
|
%t6 = load ptr, ptr %t0
|
|
call void @fn_emit_io(ptr %t6, ptr @.str2773, ptr @.str2774)
|
|
%t7 = load ptr, ptr %t0
|
|
call void @fn_emit_io(ptr %t7, ptr @.str2775, ptr @.str2776)
|
|
%t8 = load ptr, ptr %t0
|
|
call void @fn_emit_io(ptr %t8, ptr @.str2777, ptr @.str2778)
|
|
%t9 = call i32 @fn_net_has_owned()
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %then0, label %ifend2
|
|
then0:
|
|
%t11 = load ptr, ptr %t0
|
|
call void @fn_emit_io(ptr %t11, ptr @.str2779, ptr @.str2780)
|
|
br label %ifend2
|
|
ifend2:
|
|
store i32 0, ptr %t12
|
|
br label %wcond3
|
|
wcond3:
|
|
%t13 = load i32, ptr %t12
|
|
%t14 = load ptr, ptr @g_prog
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1
|
|
%t16 = load i32, ptr %t15
|
|
%t17 = icmp slt i32 %t13, %t16
|
|
%t18 = zext i1 %t17 to i32
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t20 = load ptr, ptr @g_prog
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 0
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = load i32, ptr %t12
|
|
%t24 = getelementptr inbounds ptr, ptr %t22, i32 %t23
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 0
|
|
%t27 = load i32, ptr %t26
|
|
%t28 = icmp eq i32 %t27, 2
|
|
%t29 = zext i1 %t28 to i32
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then6, label %ifend8
|
|
then6:
|
|
%t31 = load ptr, ptr %t0
|
|
%t32 = load ptr, ptr @g_prog
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = load i32, ptr %t12
|
|
%t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35
|
|
%t37 = load ptr, ptr %t36
|
|
%t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1
|
|
%t39 = load ptr, ptr %t38
|
|
%t40 = call ptr @fn_str_concat(ptr @.str2781, ptr %t39)
|
|
call void @fn_emit_io(ptr %t31, ptr %t40, ptr @.str2782)
|
|
br label %ifend8
|
|
ifend8:
|
|
%t41 = load i32, ptr %t12
|
|
%t42 = add i32 %t41, 1
|
|
store i32 %t42, ptr %t12
|
|
br label %wcond3
|
|
wend5:
|
|
store i32 0, ptr %t43
|
|
store i32 0, ptr %t12
|
|
br label %wcond9
|
|
wcond9:
|
|
%t44 = load i32, ptr %t12
|
|
%t45 = load ptr, ptr @g_prog
|
|
%t46 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1
|
|
%t47 = load i32, ptr %t46
|
|
%t48 = icmp slt i32 %t44, %t47
|
|
%t49 = zext i1 %t48 to i32
|
|
%t50 = icmp ne i32 %t49, 0
|
|
br i1 %t50, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t51 = load ptr, ptr @g_prog
|
|
%t52 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 0
|
|
%t53 = load ptr, ptr %t52
|
|
%t54 = load i32, ptr %t12
|
|
%t55 = getelementptr inbounds ptr, ptr %t53, i32 %t54
|
|
%t56 = load ptr, ptr %t55
|
|
%t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 0
|
|
%t58 = load i32, ptr %t57
|
|
%t59 = icmp eq i32 %t58, 8
|
|
%t60 = zext i1 %t59 to i32
|
|
%t61 = icmp ne i32 %t60, 0
|
|
br i1 %t61, label %then12, label %ifend14
|
|
then12:
|
|
%t62 = load ptr, ptr @g_prog
|
|
%t63 = getelementptr inbounds %LSlice, ptr %t62, i32 0, i32 0
|
|
%t64 = load ptr, ptr %t63
|
|
%t65 = load i32, ptr %t12
|
|
%t66 = getelementptr inbounds ptr, ptr %t64, i32 %t65
|
|
%t67 = load ptr, ptr %t66
|
|
%t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 1
|
|
%t69 = load ptr, ptr %t68
|
|
store ptr %t69, ptr %t70
|
|
%t71 = load i32, ptr %t43
|
|
%t72 = call ptr @fn_itoa(i32 %t71)
|
|
%t73 = call ptr @fn_str_concat(ptr @.str2783, ptr %t72)
|
|
store ptr %t73, ptr %t74
|
|
call void @fn_emit(ptr @.str2784)
|
|
%t75 = load ptr, ptr %t74
|
|
call void @fn_emit(ptr %t75)
|
|
call void @fn_emit(ptr @.str2785)
|
|
%t76 = load ptr, ptr %t70
|
|
call void @fn_emit(ptr %t76)
|
|
call void @fn_emit(ptr @.str2786)
|
|
%t77 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t77)
|
|
call void @fn_emit(ptr @.str2787)
|
|
%t78 = load ptr, ptr %t0
|
|
%t79 = load ptr, ptr %t70
|
|
%t80 = call ptr @fn_str_concat(ptr @.str2788, ptr %t79)
|
|
%t81 = load ptr, ptr %t74
|
|
call void @fn_emit_io(ptr %t78, ptr %t80, ptr %t81)
|
|
%t82 = load ptr, ptr %t0
|
|
%t83 = load ptr, ptr %t70
|
|
%t84 = call ptr @fn_str_concat(ptr @.str2789, ptr %t83)
|
|
%t85 = load ptr, ptr %t2
|
|
call void @fn_emit_io(ptr %t82, ptr %t84, ptr %t85)
|
|
%t86 = load i32, ptr %t43
|
|
%t87 = add i32 %t86, 1
|
|
store i32 %t87, ptr %t43
|
|
br label %ifend14
|
|
ifend14:
|
|
%t88 = load i32, ptr %t12
|
|
%t89 = add i32 %t88, 1
|
|
store i32 %t89, ptr %t12
|
|
br label %wcond9
|
|
wend11:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_snapshot() {
|
|
entry:
|
|
%t3 = alloca i32
|
|
%t7 = alloca i32
|
|
%t15 = alloca ptr
|
|
%t22 = alloca ptr
|
|
store ptr @.str2790, ptr @g_g_snap_mode
|
|
call void @fn_emith(ptr @.str2791)
|
|
call void @fn_emith(ptr @.str2792)
|
|
call void @fn_emith(ptr @.str2793)
|
|
%t0 = call ptr @fn_find_fn(ptr @.str2794)
|
|
%t1 = icmp ne ptr %t0, null
|
|
%t2 = zext i1 %t1 to i32
|
|
store i32 %t2, ptr %t3
|
|
%t4 = call ptr @fn_find_fn(ptr @.str2795)
|
|
%t5 = icmp ne ptr %t4, null
|
|
%t6 = zext i1 %t5 to i32
|
|
store i32 %t6, ptr %t7
|
|
call void @fn_emit(ptr @.str2796)
|
|
call void @fn_emit(ptr @.str2797)
|
|
call void @fn_emit(ptr @.str2798)
|
|
call void @fn_emit(ptr @.str2799)
|
|
call void @fn_emit_snapshot_blocks(ptr @.str2800)
|
|
%t8 = load i32, ptr %t3
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_emit(ptr @.str2801)
|
|
br label %ifend2
|
|
ifend2:
|
|
call void @fn_emit(ptr @.str2802)
|
|
call void @fn_emit(ptr @.str2803)
|
|
call void @fn_emit(ptr @.str2804)
|
|
call void @fn_emit(ptr @.str2805)
|
|
call void @fn_emit(ptr @.str2806)
|
|
call void @fn_emit_snapshot_blocks(ptr @.str2807)
|
|
%t10 = load i32, ptr %t7
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %then3, label %ifend5
|
|
then3:
|
|
call void @fn_emit(ptr @.str2808)
|
|
br label %ifend5
|
|
ifend5:
|
|
call void @fn_emit(ptr @.str2809)
|
|
call void @fn_emit(ptr @.str2810)
|
|
store ptr @.str2811, ptr @g_g_snap_mode
|
|
call void @fn_emit_snapshot_blocks(ptr @.str2812)
|
|
%t12 = load i32, ptr @g_g_iok
|
|
%t13 = call ptr @fn_itoa(i32 %t12)
|
|
%t14 = call ptr @fn_str_concat(ptr @.str2813, ptr %t13)
|
|
store ptr %t14, ptr %t15
|
|
call void @fn_emit(ptr @.str2814)
|
|
%t16 = load ptr, ptr %t15
|
|
call void @fn_emit(ptr %t16)
|
|
call void @fn_emit(ptr @.str2815)
|
|
%t17 = load ptr, ptr @g_g_off
|
|
call void @fn_emit(ptr %t17)
|
|
call void @fn_emit(ptr @.str2816)
|
|
call void @fn_emit(ptr @.str2817)
|
|
%t18 = load ptr, ptr %t15
|
|
call void @fn_emit(ptr %t18)
|
|
call void @fn_emit(ptr @.str2818)
|
|
call void @fn_emit(ptr @.str2819)
|
|
store ptr @.str2820, ptr @g_g_snap_mode
|
|
call void @fn_emit_snapshot_blocks(ptr @.str2821)
|
|
call void @fn_emit(ptr @.str2822)
|
|
call void @fn_emit(ptr @.str2823)
|
|
store ptr @.str2824, ptr @g_g_snap_mode
|
|
call void @fn_emit_snapshot_blocks(ptr @.str2825)
|
|
%t19 = load i32, ptr @g_g_iok
|
|
%t20 = call ptr @fn_itoa(i32 %t19)
|
|
%t21 = call ptr @fn_str_concat(ptr @.str2826, ptr %t20)
|
|
store ptr %t21, ptr %t22
|
|
call void @fn_emit(ptr @.str2827)
|
|
%t23 = load ptr, ptr %t22
|
|
call void @fn_emit(ptr %t23)
|
|
call void @fn_emit(ptr @.str2828)
|
|
%t24 = load ptr, ptr @g_g_off
|
|
call void @fn_emit(ptr %t24)
|
|
call void @fn_emit(ptr @.str2829)
|
|
call void @fn_emit(ptr @.str2830)
|
|
%t25 = load ptr, ptr %t22
|
|
call void @fn_emit(ptr %t25)
|
|
call void @fn_emit(ptr @.str2831)
|
|
store ptr @.str2832, ptr @g_g_snap_mode
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_net_field_ibytes(ptr %arg_ty) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
store ptr %arg_ty, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call ptr @fn_llty(ptr %t1)
|
|
%t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str2833)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
store i32 4, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t5 = load i32, ptr %retval
|
|
ret i32 %t5
|
|
}
|
|
|
|
define ptr @fn_net_field_bytes(ptr %arg_ty) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
store ptr %arg_ty, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call ptr @fn_llty(ptr %t1)
|
|
%t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str2834)
|
|
%t4 = icmp ne i32 %t3, 0
|
|
br i1 %t4, label %then0, label %ifend2
|
|
then0:
|
|
store ptr @.str2835, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
store ptr @.str2836, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t5 = load ptr, ptr %retval
|
|
ret ptr %t5
|
|
}
|
|
|
|
define i32 @fn_net_model_bytes(ptr %arg_m) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t2 = alloca i32
|
|
%t36 = alloca ptr
|
|
%t41 = alloca i32
|
|
store ptr %arg_m, ptr %t0
|
|
store i32 0, ptr %t1
|
|
store i32 0, ptr %t2
|
|
br label %wcond0
|
|
wcond0:
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 7
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = icmp slt i32 %t3, %t8
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = getelementptr inbounds %Cmp_Node, ptr %t12, i32 0, i32 7
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load i32, ptr %t2
|
|
%t18 = getelementptr inbounds ptr, ptr %t16, i32 %t17
|
|
%t19 = load ptr, ptr %t18
|
|
%t20 = getelementptr inbounds %Cmp_Node, ptr %t19, i32 0, i32 2
|
|
%t21 = load i32, ptr %t20
|
|
%t22 = icmp eq i32 %t21, 1
|
|
%t23 = zext i1 %t22 to i32
|
|
%t24 = icmp ne i32 %t23, 0
|
|
br i1 %t24, label %then3, label %ifend5
|
|
then3:
|
|
%t25 = load ptr, ptr %t0
|
|
%t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 7
|
|
%t27 = load ptr, ptr %t26
|
|
%t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0
|
|
%t29 = load ptr, ptr %t28
|
|
%t30 = load i32, ptr %t2
|
|
%t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = call ptr @fn_find_comp(ptr %t34)
|
|
store ptr %t35, ptr %t36
|
|
%t37 = load ptr, ptr %t36
|
|
%t38 = icmp ne ptr %t37, null
|
|
%t39 = zext i1 %t38 to i32
|
|
%t40 = icmp ne i32 %t39, 0
|
|
br i1 %t40, label %then6, label %ifend8
|
|
then6:
|
|
store i32 0, ptr %t41
|
|
br label %wcond9
|
|
wcond9:
|
|
%t42 = load i32, ptr %t41
|
|
%t43 = load ptr, ptr %t36
|
|
%t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 7
|
|
%t45 = load ptr, ptr %t44
|
|
%t46 = getelementptr inbounds %LSlice, ptr %t45, i32 0, i32 1
|
|
%t47 = load i32, ptr %t46
|
|
%t48 = icmp slt i32 %t42, %t47
|
|
%t49 = zext i1 %t48 to i32
|
|
%t50 = icmp ne i32 %t49, 0
|
|
br i1 %t50, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t51 = load ptr, ptr %t36
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 7
|
|
%t53 = load ptr, ptr %t52
|
|
%t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 0
|
|
%t55 = load ptr, ptr %t54
|
|
%t56 = load i32, ptr %t41
|
|
%t57 = getelementptr inbounds ptr, ptr %t55, i32 %t56
|
|
%t58 = load ptr, ptr %t57
|
|
%t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 2
|
|
%t60 = load i32, ptr %t59
|
|
%t61 = icmp eq i32 %t60, 1
|
|
%t62 = zext i1 %t61 to i32
|
|
%t63 = icmp ne i32 %t62, 0
|
|
br i1 %t63, label %then12, label %ifend14
|
|
then12:
|
|
%t64 = load i32, ptr %t1
|
|
%t65 = load ptr, ptr %t36
|
|
%t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 7
|
|
%t67 = load ptr, ptr %t66
|
|
%t68 = getelementptr inbounds %LSlice, ptr %t67, i32 0, i32 0
|
|
%t69 = load ptr, ptr %t68
|
|
%t70 = load i32, ptr %t41
|
|
%t71 = getelementptr inbounds ptr, ptr %t69, i32 %t70
|
|
%t72 = load ptr, ptr %t71
|
|
%t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 3
|
|
%t74 = load ptr, ptr %t73
|
|
%t75 = call i32 @fn_net_field_ibytes(ptr %t74)
|
|
%t76 = add i32 %t64, %t75
|
|
store i32 %t76, ptr %t1
|
|
br label %ifend14
|
|
ifend14:
|
|
%t77 = load i32, ptr %t41
|
|
%t78 = add i32 %t77, 1
|
|
store i32 %t78, ptr %t41
|
|
br label %wcond9
|
|
wend11:
|
|
br label %ifend8
|
|
ifend8:
|
|
br label %ifend5
|
|
ifend5:
|
|
%t79 = load i32, ptr %t2
|
|
%t80 = add i32 %t79, 1
|
|
store i32 %t80, ptr %t2
|
|
br label %wcond0
|
|
wend2:
|
|
%t81 = load i32, ptr %t1
|
|
store i32 %t81, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t82 = load i32, ptr %retval
|
|
ret i32 %t82
|
|
}
|
|
|
|
define i32 @fn_net_model_syncs(ptr %arg_m) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
store ptr %arg_m, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i32 @fn_net_model_bytes(ptr %t1)
|
|
%t3 = icmp sgt i32 %t2, 0
|
|
%t4 = zext i1 %t3 to i32
|
|
store i32 %t4, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t5 = load i32, ptr %retval
|
|
ret i32 %t5
|
|
}
|
|
|
|
define i32 @fn_net_has_sync() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_prog
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = icmp eq i32 %t15, 10
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
%t19 = load ptr, ptr @g_prog
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = load i32, ptr %t0
|
|
%t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = call i32 @fn_net_model_syncs(ptr %t24)
|
|
%t26 = icmp ne i32 %t25, 0
|
|
br i1 %t26, label %then6, label %ifend8
|
|
then6:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
br label %ifend5
|
|
ifend5:
|
|
%t27 = load i32, ptr %t0
|
|
%t28 = add i32 %t27, 1
|
|
store i32 %t28, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t29 = load i32, ptr %retval
|
|
ret i32 %t29
|
|
}
|
|
|
|
define i32 @fn_net_has_owned() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
%t8 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_prog
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t0
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 0
|
|
%t16 = load i32, ptr %t15
|
|
%t17 = icmp eq i32 %t16, 10
|
|
%t18 = zext i1 %t17 to i32
|
|
%t19 = icmp ne i32 %t18, 0
|
|
%t20 = zext i1 %t19 to i32
|
|
store i32 %t20, ptr %t8
|
|
br i1 %t19, label %sc3, label %scend4
|
|
sc3:
|
|
%t21 = load ptr, ptr @g_prog
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = load i32, ptr %t0
|
|
%t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 2
|
|
%t28 = load i32, ptr %t27
|
|
%t29 = icmp eq i32 %t28, 1
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
%t32 = zext i1 %t31 to i32
|
|
store i32 %t32, ptr %t8
|
|
br label %scend4
|
|
scend4:
|
|
%t33 = load i32, ptr %t8
|
|
%t34 = icmp ne i32 %t33, 0
|
|
br i1 %t34, label %then5, label %ifend7
|
|
then5:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t35 = load i32, ptr %t0
|
|
%t36 = add i32 %t35, 1
|
|
store i32 %t36, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t37 = load i32, ptr %retval
|
|
ret i32 %t37
|
|
}
|
|
|
|
define i32 @fn_net_has_role() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
%t8 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_prog
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t0
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 0
|
|
%t16 = load i32, ptr %t15
|
|
%t17 = icmp eq i32 %t16, 9
|
|
%t18 = zext i1 %t17 to i32
|
|
%t19 = icmp ne i32 %t18, 0
|
|
%t20 = zext i1 %t19 to i32
|
|
store i32 %t20, ptr %t8
|
|
br i1 %t19, label %sc3, label %scend4
|
|
sc3:
|
|
%t21 = load ptr, ptr @g_prog
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = load i32, ptr %t0
|
|
%t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 2
|
|
%t28 = load i32, ptr %t27
|
|
%t29 = icmp ne i32 %t28, 0
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
%t32 = zext i1 %t31 to i32
|
|
store i32 %t32, ptr %t8
|
|
br label %scend4
|
|
scend4:
|
|
%t33 = load i32, ptr %t8
|
|
%t34 = icmp ne i32 %t33, 0
|
|
br i1 %t34, label %then5, label %ifend7
|
|
then5:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t35 = load i32, ptr %t0
|
|
%t36 = add i32 %t35, 1
|
|
store i32 %t36, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t37 = load i32, ptr %retval
|
|
ret i32 %t37
|
|
}
|
|
|
|
define i32 @fn_net_any() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
%t1 = alloca i32
|
|
%t2 = call i32 @fn_net_has_sync()
|
|
%t3 = icmp ne i32 %t2, 0
|
|
%t4 = zext i1 %t3 to i32
|
|
store i32 %t4, ptr %t1
|
|
br i1 %t3, label %scend1, label %sc0
|
|
sc0:
|
|
%t5 = call i32 @fn_net_has_owned()
|
|
%t6 = icmp ne i32 %t5, 0
|
|
%t7 = zext i1 %t6 to i32
|
|
store i32 %t7, ptr %t1
|
|
br label %scend1
|
|
scend1:
|
|
%t8 = load i32, ptr %t1
|
|
%t9 = icmp ne i32 %t8, 0
|
|
%t10 = zext i1 %t9 to i32
|
|
store i32 %t10, ptr %t0
|
|
br i1 %t9, label %scend3, label %sc2
|
|
sc2:
|
|
%t11 = call i32 @fn_net_has_role()
|
|
%t12 = icmp ne i32 %t11, 0
|
|
%t13 = zext i1 %t12 to i32
|
|
store i32 %t13, ptr %t0
|
|
br label %scend3
|
|
scend3:
|
|
%t14 = load i32, ptr %t0
|
|
store i32 %t14, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t15 = load i32, ptr %retval
|
|
ret i32 %t15
|
|
}
|
|
|
|
define void @fn_net_warn(ptr %arg_msg) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
store ptr %arg_msg, ptr %t0
|
|
%t1 = load ptr, ptr @__stderrp
|
|
store ptr %t1, ptr %t2
|
|
%t3 = load ptr, ptr %t2
|
|
%t4 = zext i32 23 to i64
|
|
%t5 = call i64 @fwrite(ptr @.str2837, i64 1, i64 %t4, ptr %t3)
|
|
%t6 = trunc i64 %t5 to i32
|
|
%t7 = load ptr, ptr %t2
|
|
%t8 = load ptr, ptr %t0
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = call i64 @strlen(ptr %t9)
|
|
%t11 = trunc i64 %t10 to i32
|
|
%t12 = zext i32 %t11 to i64
|
|
%t13 = call i64 @fwrite(ptr %t8, i64 1, i64 %t12, ptr %t7)
|
|
%t14 = trunc i64 %t13 to i32
|
|
%t15 = load ptr, ptr %t2
|
|
%t16 = zext i32 1 to i64
|
|
%t17 = call i64 @fwrite(ptr @.str2838, i64 1, i64 %t16, ptr %t15)
|
|
%t18 = trunc i64 %t17 to i32
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_net_check() {
|
|
entry:
|
|
%t0 = alloca i32
|
|
%t25 = alloca ptr
|
|
%t26 = alloca i32
|
|
%t59 = alloca ptr
|
|
%t62 = alloca ptr
|
|
%t67 = alloca i32
|
|
%t68 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_prog
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 0
|
|
%t15 = load i32, ptr %t14
|
|
%t16 = icmp eq i32 %t15, 10
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
%t19 = load ptr, ptr @g_prog
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = load i32, ptr %t0
|
|
%t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22
|
|
%t24 = load ptr, ptr %t23
|
|
store ptr %t24, ptr %t25
|
|
store i32 0, ptr %t26
|
|
br label %wcond6
|
|
wcond6:
|
|
%t27 = load i32, ptr %t26
|
|
%t28 = load ptr, ptr %t25
|
|
%t29 = getelementptr inbounds %Cmp_Node, ptr %t28, i32 0, i32 7
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 1
|
|
%t32 = load i32, ptr %t31
|
|
%t33 = icmp slt i32 %t27, %t32
|
|
%t34 = zext i1 %t33 to i32
|
|
%t35 = icmp ne i32 %t34, 0
|
|
br i1 %t35, label %wbody7, label %wend8
|
|
wbody7:
|
|
%t36 = load ptr, ptr %t25
|
|
%t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 7
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = getelementptr inbounds %LSlice, ptr %t38, i32 0, i32 0
|
|
%t40 = load ptr, ptr %t39
|
|
%t41 = load i32, ptr %t26
|
|
%t42 = getelementptr inbounds ptr, ptr %t40, i32 %t41
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = getelementptr inbounds %Cmp_Node, ptr %t43, i32 0, i32 2
|
|
%t45 = load i32, ptr %t44
|
|
%t46 = icmp eq i32 %t45, 1
|
|
%t47 = zext i1 %t46 to i32
|
|
%t48 = icmp ne i32 %t47, 0
|
|
br i1 %t48, label %then9, label %ifend11
|
|
then9:
|
|
%t49 = load ptr, ptr %t25
|
|
%t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 7
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = getelementptr inbounds %LSlice, ptr %t51, i32 0, i32 0
|
|
%t53 = load ptr, ptr %t52
|
|
%t54 = load i32, ptr %t26
|
|
%t55 = getelementptr inbounds ptr, ptr %t53, i32 %t54
|
|
%t56 = load ptr, ptr %t55
|
|
%t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 1
|
|
%t58 = load ptr, ptr %t57
|
|
store ptr %t58, ptr %t59
|
|
%t60 = load ptr, ptr %t59
|
|
%t61 = call ptr @fn_find_comp(ptr %t60)
|
|
store ptr %t61, ptr %t62
|
|
%t63 = load ptr, ptr %t62
|
|
%t64 = icmp ne ptr %t63, null
|
|
%t65 = zext i1 %t64 to i32
|
|
%t66 = icmp ne i32 %t65, 0
|
|
br i1 %t66, label %then12, label %ifend14
|
|
then12:
|
|
store i32 0, ptr %t67
|
|
store i32 0, ptr %t68
|
|
br label %wcond15
|
|
wcond15:
|
|
%t69 = load i32, ptr %t68
|
|
%t70 = load ptr, ptr %t62
|
|
%t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 7
|
|
%t72 = load ptr, ptr %t71
|
|
%t73 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 1
|
|
%t74 = load i32, ptr %t73
|
|
%t75 = icmp slt i32 %t69, %t74
|
|
%t76 = zext i1 %t75 to i32
|
|
%t77 = icmp ne i32 %t76, 0
|
|
br i1 %t77, label %wbody16, label %wend17
|
|
wbody16:
|
|
%t78 = load ptr, ptr %t62
|
|
%t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 7
|
|
%t80 = load ptr, ptr %t79
|
|
%t81 = getelementptr inbounds %LSlice, ptr %t80, i32 0, i32 0
|
|
%t82 = load ptr, ptr %t81
|
|
%t83 = load i32, ptr %t68
|
|
%t84 = getelementptr inbounds ptr, ptr %t82, i32 %t83
|
|
%t85 = load ptr, ptr %t84
|
|
%t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 2
|
|
%t87 = load i32, ptr %t86
|
|
%t88 = icmp eq i32 %t87, 1
|
|
%t89 = zext i1 %t88 to i32
|
|
%t90 = icmp ne i32 %t89, 0
|
|
br i1 %t90, label %then18, label %ifend20
|
|
then18:
|
|
store i32 1, ptr %t67
|
|
%t91 = load ptr, ptr %t62
|
|
%t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 7
|
|
%t93 = load ptr, ptr %t92
|
|
%t94 = getelementptr inbounds %LSlice, ptr %t93, i32 0, i32 0
|
|
%t95 = load ptr, ptr %t94
|
|
%t96 = load i32, ptr %t68
|
|
%t97 = getelementptr inbounds ptr, ptr %t95, i32 %t96
|
|
%t98 = load ptr, ptr %t97
|
|
%t99 = getelementptr inbounds %Cmp_Node, ptr %t98, i32 0, i32 3
|
|
%t100 = load ptr, ptr %t99
|
|
%t101 = call ptr @fn_llty(ptr %t100)
|
|
%t102 = call i32 @fn_str_eq(ptr %t101, ptr @.str2839)
|
|
%t103 = icmp ne i32 %t102, 0
|
|
br i1 %t103, label %then21, label %ifend23
|
|
then21:
|
|
%t104 = load ptr, ptr %t59
|
|
%t105 = call ptr @fn_str_concat(ptr @.str2840, ptr %t104)
|
|
%t106 = call ptr @fn_str_concat(ptr %t105, ptr @.str2841)
|
|
%t107 = load ptr, ptr %t62
|
|
%t108 = getelementptr inbounds %Cmp_Node, ptr %t107, i32 0, i32 7
|
|
%t109 = load ptr, ptr %t108
|
|
%t110 = getelementptr inbounds %LSlice, ptr %t109, i32 0, i32 0
|
|
%t111 = load ptr, ptr %t110
|
|
%t112 = load i32, ptr %t68
|
|
%t113 = getelementptr inbounds ptr, ptr %t111, i32 %t112
|
|
%t114 = load ptr, ptr %t113
|
|
%t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 1
|
|
%t116 = load ptr, ptr %t115
|
|
%t117 = call ptr @fn_str_concat(ptr %t106, ptr %t116)
|
|
%t118 = call ptr @fn_str_concat(ptr %t117, ptr @.str2842)
|
|
call void @fn_perr(ptr %t118)
|
|
br label %ifend23
|
|
ifend23:
|
|
br label %ifend20
|
|
ifend20:
|
|
%t119 = load i32, ptr %t68
|
|
%t120 = add i32 %t119, 1
|
|
store i32 %t120, ptr %t68
|
|
br label %wcond15
|
|
wend17:
|
|
%t121 = load i32, ptr %t67
|
|
%t122 = icmp eq i32 %t121, 0
|
|
%t123 = zext i1 %t122 to i32
|
|
%t124 = icmp ne i32 %t123, 0
|
|
br i1 %t124, label %then24, label %ifend26
|
|
then24:
|
|
%t125 = load ptr, ptr %t25
|
|
%t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 1
|
|
%t127 = load ptr, ptr %t126
|
|
%t128 = call ptr @fn_str_concat(ptr @.str2843, ptr %t127)
|
|
%t129 = call ptr @fn_str_concat(ptr %t128, ptr @.str2844)
|
|
%t130 = load ptr, ptr %t59
|
|
%t131 = call ptr @fn_str_concat(ptr %t129, ptr %t130)
|
|
%t132 = call ptr @fn_str_concat(ptr %t131, ptr @.str2845)
|
|
call void @fn_net_warn(ptr %t132)
|
|
br label %ifend26
|
|
ifend26:
|
|
br label %ifend14
|
|
ifend14:
|
|
br label %ifend11
|
|
ifend11:
|
|
%t133 = load i32, ptr %t26
|
|
%t134 = add i32 %t133, 1
|
|
store i32 %t134, ptr %t26
|
|
br label %wcond6
|
|
wend8:
|
|
br label %ifend5
|
|
ifend5:
|
|
%t135 = load i32, ptr %t0
|
|
%t136 = add i32 %t135, 1
|
|
store i32 %t136, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_net_serialize(ptr %arg_m) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t6 = alloca i32
|
|
%t7 = alloca i32
|
|
%t40 = alloca ptr
|
|
%t43 = alloca ptr
|
|
%t49 = alloca ptr
|
|
%t54 = alloca i32
|
|
%t88 = alloca ptr
|
|
%t90 = alloca ptr
|
|
%t97 = alloca ptr
|
|
store ptr %arg_m, ptr %t0
|
|
store i32 0, ptr @g_ll_t
|
|
%t1 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t1, ptr %t2
|
|
call void @fn_emit(ptr @.str2846)
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1
|
|
%t5 = load ptr, ptr %t4
|
|
call void @fn_emit(ptr %t5)
|
|
call void @fn_emit(ptr @.str2847)
|
|
store i32 0, ptr %t6
|
|
store i32 0, ptr %t7
|
|
br label %wcond0
|
|
wcond0:
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1
|
|
%t13 = load i32, ptr %t12
|
|
%t14 = icmp slt i32 %t8, %t13
|
|
%t15 = zext i1 %t14 to i32
|
|
%t16 = icmp ne i32 %t15, 0
|
|
br i1 %t16, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7
|
|
%t19 = load ptr, ptr %t18
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = load i32, ptr %t7
|
|
%t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 2
|
|
%t26 = load i32, ptr %t25
|
|
%t27 = icmp eq i32 %t26, 1
|
|
%t28 = zext i1 %t27 to i32
|
|
%t29 = icmp ne i32 %t28, 0
|
|
br i1 %t29, label %then3, label %ifend5
|
|
then3:
|
|
%t30 = load ptr, ptr %t0
|
|
%t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = load i32, ptr %t7
|
|
%t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35
|
|
%t37 = load ptr, ptr %t36
|
|
%t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1
|
|
%t39 = load ptr, ptr %t38
|
|
store ptr %t39, ptr %t40
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = call ptr @fn_find_comp(ptr %t41)
|
|
store ptr %t42, ptr %t43
|
|
%t44 = load ptr, ptr %t43
|
|
%t45 = icmp ne ptr %t44, null
|
|
%t46 = zext i1 %t45 to i32
|
|
%t47 = icmp ne i32 %t46, 0
|
|
br i1 %t47, label %then6, label %ifend8
|
|
then6:
|
|
%t48 = call ptr @fn_nreg()
|
|
store ptr %t48, ptr %t49
|
|
call void @fn_emit(ptr @.str2848)
|
|
%t50 = load ptr, ptr %t49
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str2849)
|
|
%t51 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t51)
|
|
call void @fn_emit(ptr @.str2850)
|
|
%t52 = load ptr, ptr %t40
|
|
call void @fn_emit(ptr %t52)
|
|
call void @fn_emit(ptr @.str2851)
|
|
%t53 = load ptr, ptr %t40
|
|
call void @fn_emit(ptr %t53)
|
|
call void @fn_emit(ptr @.str2852)
|
|
store i32 0, ptr %t54
|
|
br label %wcond9
|
|
wcond9:
|
|
%t55 = load i32, ptr %t54
|
|
%t56 = load ptr, ptr %t43
|
|
%t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 7
|
|
%t58 = load ptr, ptr %t57
|
|
%t59 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1
|
|
%t60 = load i32, ptr %t59
|
|
%t61 = icmp slt i32 %t55, %t60
|
|
%t62 = zext i1 %t61 to i32
|
|
%t63 = icmp ne i32 %t62, 0
|
|
br i1 %t63, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t64 = load ptr, ptr %t43
|
|
%t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 7
|
|
%t66 = load ptr, ptr %t65
|
|
%t67 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 0
|
|
%t68 = load ptr, ptr %t67
|
|
%t69 = load i32, ptr %t54
|
|
%t70 = getelementptr inbounds ptr, ptr %t68, i32 %t69
|
|
%t71 = load ptr, ptr %t70
|
|
%t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 2
|
|
%t73 = load i32, ptr %t72
|
|
%t74 = icmp eq i32 %t73, 1
|
|
%t75 = zext i1 %t74 to i32
|
|
%t76 = icmp ne i32 %t75, 0
|
|
br i1 %t76, label %then12, label %ifend14
|
|
then12:
|
|
%t77 = load ptr, ptr %t43
|
|
%t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 7
|
|
%t79 = load ptr, ptr %t78
|
|
%t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0
|
|
%t81 = load ptr, ptr %t80
|
|
%t82 = load i32, ptr %t54
|
|
%t83 = getelementptr inbounds ptr, ptr %t81, i32 %t82
|
|
%t84 = load ptr, ptr %t83
|
|
%t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 3
|
|
%t86 = load ptr, ptr %t85
|
|
%t87 = call ptr @fn_net_field_bytes(ptr %t86)
|
|
store ptr %t87, ptr %t88
|
|
%t89 = call ptr @fn_nreg()
|
|
store ptr %t89, ptr %t90
|
|
call void @fn_emit(ptr @.str2853)
|
|
%t91 = load ptr, ptr %t90
|
|
call void @fn_emit(ptr %t91)
|
|
call void @fn_emit(ptr @.str2854)
|
|
%t92 = load ptr, ptr %t40
|
|
call void @fn_emit(ptr %t92)
|
|
call void @fn_emit(ptr @.str2855)
|
|
%t93 = load ptr, ptr %t49
|
|
call void @fn_emit(ptr %t93)
|
|
call void @fn_emit(ptr @.str2856)
|
|
%t94 = load i32, ptr %t54
|
|
%t95 = call ptr @fn_itoa(i32 %t94)
|
|
call void @fn_emit(ptr %t95)
|
|
call void @fn_emit(ptr @.str2857)
|
|
%t96 = call ptr @fn_nreg()
|
|
store ptr %t96, ptr %t97
|
|
call void @fn_emit(ptr @.str2858)
|
|
%t98 = load ptr, ptr %t97
|
|
call void @fn_emit(ptr %t98)
|
|
call void @fn_emit(ptr @.str2859)
|
|
%t99 = load i32, ptr %t6
|
|
%t100 = call ptr @fn_itoa(i32 %t99)
|
|
call void @fn_emit(ptr %t100)
|
|
call void @fn_emit(ptr @.str2860)
|
|
call void @fn_emit(ptr @.str2861)
|
|
%t101 = load ptr, ptr %t97
|
|
call void @fn_emit(ptr %t101)
|
|
call void @fn_emit(ptr @.str2862)
|
|
%t102 = load ptr, ptr %t90
|
|
call void @fn_emit(ptr %t102)
|
|
call void @fn_emit(ptr @.str2863)
|
|
%t103 = load ptr, ptr %t88
|
|
call void @fn_emit(ptr %t103)
|
|
call void @fn_emit(ptr @.str2864)
|
|
%t104 = load i32, ptr %t6
|
|
%t105 = load ptr, ptr %t43
|
|
%t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 7
|
|
%t107 = load ptr, ptr %t106
|
|
%t108 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 0
|
|
%t109 = load ptr, ptr %t108
|
|
%t110 = load i32, ptr %t54
|
|
%t111 = getelementptr inbounds ptr, ptr %t109, i32 %t110
|
|
%t112 = load ptr, ptr %t111
|
|
%t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 3
|
|
%t114 = load ptr, ptr %t113
|
|
%t115 = call i32 @fn_net_field_ibytes(ptr %t114)
|
|
%t116 = add i32 %t104, %t115
|
|
store i32 %t116, ptr %t6
|
|
br label %ifend14
|
|
ifend14:
|
|
%t117 = load i32, ptr %t54
|
|
%t118 = add i32 %t117, 1
|
|
store i32 %t118, ptr %t54
|
|
br label %wcond9
|
|
wend11:
|
|
br label %ifend8
|
|
ifend8:
|
|
br label %ifend5
|
|
ifend5:
|
|
%t119 = load i32, ptr %t7
|
|
%t120 = add i32 %t119, 1
|
|
store i32 %t120, ptr %t7
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_emit(ptr @.str2865)
|
|
%t121 = load i32, ptr %t6
|
|
%t122 = call ptr @fn_itoa(i32 %t121)
|
|
call void @fn_emit(ptr %t122)
|
|
call void @fn_emit(ptr @.str2866)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_net_apply(ptr %arg_m) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t6 = alloca i32
|
|
%t7 = alloca i32
|
|
%t40 = alloca ptr
|
|
%t43 = alloca ptr
|
|
%t49 = alloca ptr
|
|
%t54 = alloca i32
|
|
%t88 = alloca ptr
|
|
%t90 = alloca ptr
|
|
%t97 = alloca ptr
|
|
store ptr %arg_m, ptr %t0
|
|
store i32 0, ptr @g_ll_t
|
|
%t1 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t1, ptr %t2
|
|
call void @fn_emit(ptr @.str2867)
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1
|
|
%t5 = load ptr, ptr %t4
|
|
call void @fn_emit(ptr %t5)
|
|
call void @fn_emit(ptr @.str2868)
|
|
store i32 0, ptr %t6
|
|
store i32 0, ptr %t7
|
|
br label %wcond0
|
|
wcond0:
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 7
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1
|
|
%t13 = load i32, ptr %t12
|
|
%t14 = icmp slt i32 %t8, %t13
|
|
%t15 = zext i1 %t14 to i32
|
|
%t16 = icmp ne i32 %t15, 0
|
|
br i1 %t16, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = getelementptr inbounds %Cmp_Node, ptr %t17, i32 0, i32 7
|
|
%t19 = load ptr, ptr %t18
|
|
%t20 = getelementptr inbounds %LSlice, ptr %t19, i32 0, i32 0
|
|
%t21 = load ptr, ptr %t20
|
|
%t22 = load i32, ptr %t7
|
|
%t23 = getelementptr inbounds ptr, ptr %t21, i32 %t22
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 2
|
|
%t26 = load i32, ptr %t25
|
|
%t27 = icmp eq i32 %t26, 1
|
|
%t28 = zext i1 %t27 to i32
|
|
%t29 = icmp ne i32 %t28, 0
|
|
br i1 %t29, label %then3, label %ifend5
|
|
then3:
|
|
%t30 = load ptr, ptr %t0
|
|
%t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = load i32, ptr %t7
|
|
%t36 = getelementptr inbounds ptr, ptr %t34, i32 %t35
|
|
%t37 = load ptr, ptr %t36
|
|
%t38 = getelementptr inbounds %Cmp_Node, ptr %t37, i32 0, i32 1
|
|
%t39 = load ptr, ptr %t38
|
|
store ptr %t39, ptr %t40
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = call ptr @fn_find_comp(ptr %t41)
|
|
store ptr %t42, ptr %t43
|
|
%t44 = load ptr, ptr %t43
|
|
%t45 = icmp ne ptr %t44, null
|
|
%t46 = zext i1 %t45 to i32
|
|
%t47 = icmp ne i32 %t46, 0
|
|
br i1 %t47, label %then6, label %ifend8
|
|
then6:
|
|
%t48 = call ptr @fn_nreg()
|
|
store ptr %t48, ptr %t49
|
|
call void @fn_emit(ptr @.str2869)
|
|
%t50 = load ptr, ptr %t49
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str2870)
|
|
%t51 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t51)
|
|
call void @fn_emit(ptr @.str2871)
|
|
%t52 = load ptr, ptr %t40
|
|
call void @fn_emit(ptr %t52)
|
|
call void @fn_emit(ptr @.str2872)
|
|
%t53 = load ptr, ptr %t40
|
|
call void @fn_emit(ptr %t53)
|
|
call void @fn_emit(ptr @.str2873)
|
|
store i32 0, ptr %t54
|
|
br label %wcond9
|
|
wcond9:
|
|
%t55 = load i32, ptr %t54
|
|
%t56 = load ptr, ptr %t43
|
|
%t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 7
|
|
%t58 = load ptr, ptr %t57
|
|
%t59 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 1
|
|
%t60 = load i32, ptr %t59
|
|
%t61 = icmp slt i32 %t55, %t60
|
|
%t62 = zext i1 %t61 to i32
|
|
%t63 = icmp ne i32 %t62, 0
|
|
br i1 %t63, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t64 = load ptr, ptr %t43
|
|
%t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 7
|
|
%t66 = load ptr, ptr %t65
|
|
%t67 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 0
|
|
%t68 = load ptr, ptr %t67
|
|
%t69 = load i32, ptr %t54
|
|
%t70 = getelementptr inbounds ptr, ptr %t68, i32 %t69
|
|
%t71 = load ptr, ptr %t70
|
|
%t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 2
|
|
%t73 = load i32, ptr %t72
|
|
%t74 = icmp eq i32 %t73, 1
|
|
%t75 = zext i1 %t74 to i32
|
|
%t76 = icmp ne i32 %t75, 0
|
|
br i1 %t76, label %then12, label %ifend14
|
|
then12:
|
|
%t77 = load ptr, ptr %t43
|
|
%t78 = getelementptr inbounds %Cmp_Node, ptr %t77, i32 0, i32 7
|
|
%t79 = load ptr, ptr %t78
|
|
%t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 0
|
|
%t81 = load ptr, ptr %t80
|
|
%t82 = load i32, ptr %t54
|
|
%t83 = getelementptr inbounds ptr, ptr %t81, i32 %t82
|
|
%t84 = load ptr, ptr %t83
|
|
%t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 3
|
|
%t86 = load ptr, ptr %t85
|
|
%t87 = call ptr @fn_net_field_bytes(ptr %t86)
|
|
store ptr %t87, ptr %t88
|
|
%t89 = call ptr @fn_nreg()
|
|
store ptr %t89, ptr %t90
|
|
call void @fn_emit(ptr @.str2874)
|
|
%t91 = load ptr, ptr %t90
|
|
call void @fn_emit(ptr %t91)
|
|
call void @fn_emit(ptr @.str2875)
|
|
%t92 = load ptr, ptr %t40
|
|
call void @fn_emit(ptr %t92)
|
|
call void @fn_emit(ptr @.str2876)
|
|
%t93 = load ptr, ptr %t49
|
|
call void @fn_emit(ptr %t93)
|
|
call void @fn_emit(ptr @.str2877)
|
|
%t94 = load i32, ptr %t54
|
|
%t95 = call ptr @fn_itoa(i32 %t94)
|
|
call void @fn_emit(ptr %t95)
|
|
call void @fn_emit(ptr @.str2878)
|
|
%t96 = call ptr @fn_nreg()
|
|
store ptr %t96, ptr %t97
|
|
call void @fn_emit(ptr @.str2879)
|
|
%t98 = load ptr, ptr %t97
|
|
call void @fn_emit(ptr %t98)
|
|
call void @fn_emit(ptr @.str2880)
|
|
%t99 = load i32, ptr %t6
|
|
%t100 = call ptr @fn_itoa(i32 %t99)
|
|
call void @fn_emit(ptr %t100)
|
|
call void @fn_emit(ptr @.str2881)
|
|
call void @fn_emit(ptr @.str2882)
|
|
%t101 = load ptr, ptr %t90
|
|
call void @fn_emit(ptr %t101)
|
|
call void @fn_emit(ptr @.str2883)
|
|
%t102 = load ptr, ptr %t97
|
|
call void @fn_emit(ptr %t102)
|
|
call void @fn_emit(ptr @.str2884)
|
|
%t103 = load ptr, ptr %t88
|
|
call void @fn_emit(ptr %t103)
|
|
call void @fn_emit(ptr @.str2885)
|
|
%t104 = load i32, ptr %t6
|
|
%t105 = load ptr, ptr %t43
|
|
%t106 = getelementptr inbounds %Cmp_Node, ptr %t105, i32 0, i32 7
|
|
%t107 = load ptr, ptr %t106
|
|
%t108 = getelementptr inbounds %LSlice, ptr %t107, i32 0, i32 0
|
|
%t109 = load ptr, ptr %t108
|
|
%t110 = load i32, ptr %t54
|
|
%t111 = getelementptr inbounds ptr, ptr %t109, i32 %t110
|
|
%t112 = load ptr, ptr %t111
|
|
%t113 = getelementptr inbounds %Cmp_Node, ptr %t112, i32 0, i32 3
|
|
%t114 = load ptr, ptr %t113
|
|
%t115 = call i32 @fn_net_field_ibytes(ptr %t114)
|
|
%t116 = add i32 %t104, %t115
|
|
store i32 %t116, ptr %t6
|
|
br label %ifend14
|
|
ifend14:
|
|
%t117 = load i32, ptr %t54
|
|
%t118 = add i32 %t117, 1
|
|
store i32 %t118, ptr %t54
|
|
br label %wcond9
|
|
wend11:
|
|
br label %ifend8
|
|
ifend8:
|
|
br label %ifend5
|
|
ifend5:
|
|
%t119 = load i32, ptr %t7
|
|
%t120 = add i32 %t119, 1
|
|
store i32 %t120, ptr %t7
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_emit(ptr @.str2886)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_net_dispatch() {
|
|
entry:
|
|
%t1 = alloca ptr
|
|
%t3 = alloca i32
|
|
%t4 = alloca i32
|
|
%t12 = alloca i32
|
|
%t44 = alloca ptr
|
|
%t47 = alloca ptr
|
|
%t72 = alloca i32
|
|
%t104 = alloca ptr
|
|
%t107 = alloca ptr
|
|
%t130 = alloca i32
|
|
%t162 = alloca ptr
|
|
%t165 = alloca ptr
|
|
%t0 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t0, ptr %t1
|
|
call void @fn_emit(ptr @.str2887)
|
|
call void @fn_emit(ptr @.str2888)
|
|
%t2 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t2)
|
|
call void @fn_emit(ptr @.str2889)
|
|
store i32 0, ptr %t3
|
|
store i32 0, ptr %t4
|
|
br label %wcond0
|
|
wcond0:
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = load ptr, ptr @g_prog
|
|
%t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = icmp slt i32 %t5, %t8
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t13 = load ptr, ptr @g_prog
|
|
%t14 = getelementptr inbounds %LSlice, ptr %t13, i32 0, i32 0
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = load i32, ptr %t4
|
|
%t17 = getelementptr inbounds ptr, ptr %t15, i32 %t16
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 0
|
|
%t20 = load i32, ptr %t19
|
|
%t21 = icmp eq i32 %t20, 10
|
|
%t22 = zext i1 %t21 to i32
|
|
%t23 = icmp ne i32 %t22, 0
|
|
%t24 = zext i1 %t23 to i32
|
|
store i32 %t24, ptr %t12
|
|
br i1 %t23, label %sc3, label %scend4
|
|
sc3:
|
|
%t25 = load ptr, ptr @g_prog
|
|
%t26 = getelementptr inbounds %LSlice, ptr %t25, i32 0, i32 0
|
|
%t27 = load ptr, ptr %t26
|
|
%t28 = load i32, ptr %t4
|
|
%t29 = getelementptr inbounds ptr, ptr %t27, i32 %t28
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = call i32 @fn_net_model_syncs(ptr %t30)
|
|
%t32 = icmp ne i32 %t31, 0
|
|
%t33 = zext i1 %t32 to i32
|
|
store i32 %t33, ptr %t12
|
|
br label %scend4
|
|
scend4:
|
|
%t34 = load i32, ptr %t12
|
|
%t35 = icmp ne i32 %t34, 0
|
|
br i1 %t35, label %then5, label %ifend7
|
|
then5:
|
|
%t36 = load ptr, ptr @g_prog
|
|
%t37 = getelementptr inbounds %LSlice, ptr %t36, i32 0, i32 0
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = load i32, ptr %t4
|
|
%t40 = getelementptr inbounds ptr, ptr %t38, i32 %t39
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 1
|
|
%t43 = load ptr, ptr %t42
|
|
store ptr %t43, ptr %t44
|
|
%t45 = load i32, ptr %t3
|
|
%t46 = call ptr @fn_itoa(i32 %t45)
|
|
store ptr %t46, ptr %t47
|
|
call void @fn_emit(ptr @.str2890)
|
|
%t48 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t48)
|
|
call void @fn_emit(ptr @.str2891)
|
|
%t49 = load ptr, ptr %t44
|
|
%t50 = call i32 @fn_find_arch_id(ptr %t49)
|
|
%t51 = call ptr @fn_itoa(i32 %t50)
|
|
call void @fn_emit(ptr %t51)
|
|
call void @fn_emit(ptr @.str2892)
|
|
call void @fn_emit(ptr @.str2893)
|
|
%t52 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t52)
|
|
call void @fn_emit(ptr @.str2894)
|
|
%t53 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t53)
|
|
call void @fn_emit(ptr @.str2895)
|
|
%t54 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t54)
|
|
call void @fn_emit(ptr @.str2896)
|
|
call void @fn_emit(ptr @.str2897)
|
|
%t55 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t55)
|
|
call void @fn_emit(ptr @.str2898)
|
|
%t56 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t56)
|
|
call void @fn_emit(ptr @.str2899)
|
|
%t57 = load ptr, ptr %t44
|
|
call void @fn_emit(ptr %t57)
|
|
call void @fn_emit(ptr @.str2900)
|
|
%t58 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t58)
|
|
call void @fn_emit(ptr @.str2901)
|
|
call void @fn_emit(ptr @.str2902)
|
|
%t59 = load ptr, ptr %t47
|
|
call void @fn_emit(ptr %t59)
|
|
call void @fn_emit(ptr @.str2903)
|
|
%t60 = load i32, ptr %t3
|
|
%t61 = add i32 %t60, 1
|
|
store i32 %t61, ptr %t3
|
|
br label %ifend7
|
|
ifend7:
|
|
%t62 = load i32, ptr %t4
|
|
%t63 = add i32 %t62, 1
|
|
store i32 %t63, ptr %t4
|
|
br label %wcond0
|
|
wend2:
|
|
call void @fn_emit(ptr @.str2904)
|
|
call void @fn_emit(ptr @.str2905)
|
|
call void @fn_emit(ptr @.str2906)
|
|
%t64 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t64)
|
|
call void @fn_emit(ptr @.str2907)
|
|
store i32 0, ptr %t3
|
|
store i32 0, ptr %t4
|
|
br label %wcond8
|
|
wcond8:
|
|
%t65 = load i32, ptr %t4
|
|
%t66 = load ptr, ptr @g_prog
|
|
%t67 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1
|
|
%t68 = load i32, ptr %t67
|
|
%t69 = icmp slt i32 %t65, %t68
|
|
%t70 = zext i1 %t69 to i32
|
|
%t71 = icmp ne i32 %t70, 0
|
|
br i1 %t71, label %wbody9, label %wend10
|
|
wbody9:
|
|
%t73 = load ptr, ptr @g_prog
|
|
%t74 = getelementptr inbounds %LSlice, ptr %t73, i32 0, i32 0
|
|
%t75 = load ptr, ptr %t74
|
|
%t76 = load i32, ptr %t4
|
|
%t77 = getelementptr inbounds ptr, ptr %t75, i32 %t76
|
|
%t78 = load ptr, ptr %t77
|
|
%t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 0
|
|
%t80 = load i32, ptr %t79
|
|
%t81 = icmp eq i32 %t80, 10
|
|
%t82 = zext i1 %t81 to i32
|
|
%t83 = icmp ne i32 %t82, 0
|
|
%t84 = zext i1 %t83 to i32
|
|
store i32 %t84, ptr %t72
|
|
br i1 %t83, label %sc11, label %scend12
|
|
sc11:
|
|
%t85 = load ptr, ptr @g_prog
|
|
%t86 = getelementptr inbounds %LSlice, ptr %t85, i32 0, i32 0
|
|
%t87 = load ptr, ptr %t86
|
|
%t88 = load i32, ptr %t4
|
|
%t89 = getelementptr inbounds ptr, ptr %t87, i32 %t88
|
|
%t90 = load ptr, ptr %t89
|
|
%t91 = call i32 @fn_net_model_syncs(ptr %t90)
|
|
%t92 = icmp ne i32 %t91, 0
|
|
%t93 = zext i1 %t92 to i32
|
|
store i32 %t93, ptr %t72
|
|
br label %scend12
|
|
scend12:
|
|
%t94 = load i32, ptr %t72
|
|
%t95 = icmp ne i32 %t94, 0
|
|
br i1 %t95, label %then13, label %ifend15
|
|
then13:
|
|
%t96 = load ptr, ptr @g_prog
|
|
%t97 = getelementptr inbounds %LSlice, ptr %t96, i32 0, i32 0
|
|
%t98 = load ptr, ptr %t97
|
|
%t99 = load i32, ptr %t4
|
|
%t100 = getelementptr inbounds ptr, ptr %t98, i32 %t99
|
|
%t101 = load ptr, ptr %t100
|
|
%t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 1
|
|
%t103 = load ptr, ptr %t102
|
|
store ptr %t103, ptr %t104
|
|
%t105 = load i32, ptr %t3
|
|
%t106 = call ptr @fn_itoa(i32 %t105)
|
|
store ptr %t106, ptr %t107
|
|
call void @fn_emit(ptr @.str2908)
|
|
%t108 = load ptr, ptr %t107
|
|
call void @fn_emit(ptr %t108)
|
|
call void @fn_emit(ptr @.str2909)
|
|
%t109 = load ptr, ptr %t104
|
|
%t110 = call i32 @fn_find_arch_id(ptr %t109)
|
|
%t111 = call ptr @fn_itoa(i32 %t110)
|
|
call void @fn_emit(ptr %t111)
|
|
call void @fn_emit(ptr @.str2910)
|
|
call void @fn_emit(ptr @.str2911)
|
|
%t112 = load ptr, ptr %t107
|
|
call void @fn_emit(ptr %t112)
|
|
call void @fn_emit(ptr @.str2912)
|
|
%t113 = load ptr, ptr %t107
|
|
call void @fn_emit(ptr %t113)
|
|
call void @fn_emit(ptr @.str2913)
|
|
%t114 = load ptr, ptr %t107
|
|
call void @fn_emit(ptr %t114)
|
|
call void @fn_emit(ptr @.str2914)
|
|
call void @fn_emit(ptr @.str2915)
|
|
%t115 = load ptr, ptr %t107
|
|
call void @fn_emit(ptr %t115)
|
|
call void @fn_emit(ptr @.str2916)
|
|
%t116 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t116)
|
|
call void @fn_emit(ptr @.str2917)
|
|
call void @fn_emit(ptr @.str2918)
|
|
%t117 = load ptr, ptr %t107
|
|
call void @fn_emit(ptr %t117)
|
|
call void @fn_emit(ptr @.str2919)
|
|
%t118 = load i32, ptr %t3
|
|
%t119 = add i32 %t118, 1
|
|
store i32 %t119, ptr %t3
|
|
br label %ifend15
|
|
ifend15:
|
|
%t120 = load i32, ptr %t4
|
|
%t121 = add i32 %t120, 1
|
|
store i32 %t121, ptr %t4
|
|
br label %wcond8
|
|
wend10:
|
|
call void @fn_emit(ptr @.str2920)
|
|
call void @fn_emit(ptr @.str2921)
|
|
call void @fn_emit(ptr @.str2922)
|
|
%t122 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t122)
|
|
call void @fn_emit(ptr @.str2923)
|
|
store i32 0, ptr %t3
|
|
store i32 0, ptr %t4
|
|
br label %wcond16
|
|
wcond16:
|
|
%t123 = load i32, ptr %t4
|
|
%t124 = load ptr, ptr @g_prog
|
|
%t125 = getelementptr inbounds %LSlice, ptr %t124, i32 0, i32 1
|
|
%t126 = load i32, ptr %t125
|
|
%t127 = icmp slt i32 %t123, %t126
|
|
%t128 = zext i1 %t127 to i32
|
|
%t129 = icmp ne i32 %t128, 0
|
|
br i1 %t129, label %wbody17, label %wend18
|
|
wbody17:
|
|
%t131 = load ptr, ptr @g_prog
|
|
%t132 = getelementptr inbounds %LSlice, ptr %t131, i32 0, i32 0
|
|
%t133 = load ptr, ptr %t132
|
|
%t134 = load i32, ptr %t4
|
|
%t135 = getelementptr inbounds ptr, ptr %t133, i32 %t134
|
|
%t136 = load ptr, ptr %t135
|
|
%t137 = getelementptr inbounds %Cmp_Node, ptr %t136, i32 0, i32 0
|
|
%t138 = load i32, ptr %t137
|
|
%t139 = icmp eq i32 %t138, 10
|
|
%t140 = zext i1 %t139 to i32
|
|
%t141 = icmp ne i32 %t140, 0
|
|
%t142 = zext i1 %t141 to i32
|
|
store i32 %t142, ptr %t130
|
|
br i1 %t141, label %sc19, label %scend20
|
|
sc19:
|
|
%t143 = load ptr, ptr @g_prog
|
|
%t144 = getelementptr inbounds %LSlice, ptr %t143, i32 0, i32 0
|
|
%t145 = load ptr, ptr %t144
|
|
%t146 = load i32, ptr %t4
|
|
%t147 = getelementptr inbounds ptr, ptr %t145, i32 %t146
|
|
%t148 = load ptr, ptr %t147
|
|
%t149 = call i32 @fn_net_model_syncs(ptr %t148)
|
|
%t150 = icmp ne i32 %t149, 0
|
|
%t151 = zext i1 %t150 to i32
|
|
store i32 %t151, ptr %t130
|
|
br label %scend20
|
|
scend20:
|
|
%t152 = load i32, ptr %t130
|
|
%t153 = icmp ne i32 %t152, 0
|
|
br i1 %t153, label %then21, label %ifend23
|
|
then21:
|
|
%t154 = load ptr, ptr @g_prog
|
|
%t155 = getelementptr inbounds %LSlice, ptr %t154, i32 0, i32 0
|
|
%t156 = load ptr, ptr %t155
|
|
%t157 = load i32, ptr %t4
|
|
%t158 = getelementptr inbounds ptr, ptr %t156, i32 %t157
|
|
%t159 = load ptr, ptr %t158
|
|
%t160 = getelementptr inbounds %Cmp_Node, ptr %t159, i32 0, i32 1
|
|
%t161 = load ptr, ptr %t160
|
|
store ptr %t161, ptr %t162
|
|
%t163 = load i32, ptr %t3
|
|
%t164 = call ptr @fn_itoa(i32 %t163)
|
|
store ptr %t164, ptr %t165
|
|
call void @fn_emit(ptr @.str2924)
|
|
%t166 = load ptr, ptr %t165
|
|
call void @fn_emit(ptr %t166)
|
|
call void @fn_emit(ptr @.str2925)
|
|
%t167 = load ptr, ptr %t162
|
|
%t168 = call i32 @fn_find_arch_id(ptr %t167)
|
|
%t169 = call ptr @fn_itoa(i32 %t168)
|
|
call void @fn_emit(ptr %t169)
|
|
call void @fn_emit(ptr @.str2926)
|
|
call void @fn_emit(ptr @.str2927)
|
|
%t170 = load ptr, ptr %t165
|
|
call void @fn_emit(ptr %t170)
|
|
call void @fn_emit(ptr @.str2928)
|
|
%t171 = load ptr, ptr %t165
|
|
call void @fn_emit(ptr %t171)
|
|
call void @fn_emit(ptr @.str2929)
|
|
%t172 = load ptr, ptr %t165
|
|
call void @fn_emit(ptr %t172)
|
|
call void @fn_emit(ptr @.str2930)
|
|
call void @fn_emit(ptr @.str2931)
|
|
%t173 = load ptr, ptr %t165
|
|
call void @fn_emit(ptr %t173)
|
|
call void @fn_emit(ptr @.str2932)
|
|
%t174 = load ptr, ptr @g_prog
|
|
%t175 = getelementptr inbounds %LSlice, ptr %t174, i32 0, i32 0
|
|
%t176 = load ptr, ptr %t175
|
|
%t177 = load i32, ptr %t4
|
|
%t178 = getelementptr inbounds ptr, ptr %t176, i32 %t177
|
|
%t179 = load ptr, ptr %t178
|
|
%t180 = call i32 @fn_net_model_bytes(ptr %t179)
|
|
%t181 = call ptr @fn_itoa(i32 %t180)
|
|
call void @fn_emit(ptr %t181)
|
|
call void @fn_emit(ptr @.str2933)
|
|
call void @fn_emit(ptr @.str2934)
|
|
%t182 = load ptr, ptr %t165
|
|
call void @fn_emit(ptr %t182)
|
|
call void @fn_emit(ptr @.str2935)
|
|
%t183 = load i32, ptr %t3
|
|
%t184 = add i32 %t183, 1
|
|
store i32 %t184, ptr %t3
|
|
br label %ifend23
|
|
ifend23:
|
|
%t185 = load i32, ptr %t4
|
|
%t186 = add i32 %t185, 1
|
|
store i32 %t186, ptr %t4
|
|
br label %wcond16
|
|
wend18:
|
|
call void @fn_emit(ptr @.str2936)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_net_owner() {
|
|
entry:
|
|
%t1 = alloca ptr
|
|
%t0 = call ptr @fn_itoa(i32 1024)
|
|
store ptr %t0, ptr %t1
|
|
call void @fn_emit(ptr @.str2937)
|
|
call void @fn_emit(ptr @.str2938)
|
|
%t2 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t2)
|
|
call void @fn_emit(ptr @.str2939)
|
|
call void @fn_emit(ptr @.str2940)
|
|
call void @fn_emit(ptr @.str2941)
|
|
%t3 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t3)
|
|
call void @fn_emit(ptr @.str2942)
|
|
call void @fn_emit(ptr @.str2943)
|
|
call void @fn_emit(ptr @.str2944)
|
|
%t4 = load ptr, ptr %t1
|
|
call void @fn_emit(ptr %t4)
|
|
call void @fn_emit(ptr @.str2945)
|
|
call void @fn_emit(ptr @.str2946)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_loopback() {
|
|
entry:
|
|
call void @fn_emith(ptr @.str2947)
|
|
call void @fn_emith(ptr @.str2948)
|
|
call void @fn_emith(ptr @.str2949)
|
|
call void @fn_emith(ptr @.str2950)
|
|
call void @fn_emit(ptr @.str2951)
|
|
call void @fn_emit(ptr @.str2952)
|
|
call void @fn_emit(ptr @.str2953)
|
|
call void @fn_emit(ptr @.str2954)
|
|
call void @fn_emit(ptr @.str2955)
|
|
call void @fn_emit(ptr @.str2956)
|
|
call void @fn_emit(ptr @.str2957)
|
|
call void @fn_emit(ptr @.str2958)
|
|
call void @fn_emit(ptr @.str2959)
|
|
call void @fn_emit(ptr @.str2960)
|
|
call void @fn_emit(ptr @.str2961)
|
|
call void @fn_emit(ptr @.str2962)
|
|
call void @fn_emit(ptr @.str2963)
|
|
call void @fn_emit(ptr @.str2964)
|
|
call void @fn_emit(ptr @.str2965)
|
|
call void @fn_emit(ptr @.str2966)
|
|
call void @fn_emit(ptr @.str2967)
|
|
call void @fn_emit(ptr @.str2968)
|
|
call void @fn_emit(ptr @.str2969)
|
|
call void @fn_emit(ptr @.str2970)
|
|
call void @fn_emit(ptr @.str2971)
|
|
call void @fn_emit(ptr @.str2972)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_net_has_remote() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_g_events
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t8 = load ptr, ptr @g_g_events
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
%t10 = load ptr, ptr %t9
|
|
%t11 = load i32, ptr %t0
|
|
%t12 = getelementptr inbounds ptr, ptr %t10, i32 %t11
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = getelementptr inbounds %Cmp_Node, ptr %t13, i32 0, i32 3
|
|
%t15 = load ptr, ptr %t14
|
|
%t16 = icmp ne ptr %t15, null
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t19 = load i32, ptr %t0
|
|
%t20 = add i32 %t19, 1
|
|
store i32 %t20, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t21 = load i32, ptr %retval
|
|
ret i32 %t21
|
|
}
|
|
|
|
define i32 @fn_net_event_id(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr @g_g_events
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t3, i32 0, i32 1
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp slt i32 %t2, %t5
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_g_events
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t1
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 1
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = load ptr, ptr %t0
|
|
%t18 = call i32 @fn_str_eq(ptr %t16, ptr %t17)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load i32, ptr %t1
|
|
store i32 %t20, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t21 = load i32, ptr %t1
|
|
%t22 = add i32 %t21, 1
|
|
store i32 %t22, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
%t23 = sub i32 0, 1
|
|
store i32 %t23, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t24 = load i32, ptr %retval
|
|
ret i32 %t24
|
|
}
|
|
|
|
define ptr @fn_net_send_sym() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t0 = call ptr @fn_find_extern(ptr @.str2973)
|
|
store ptr %t0, ptr %t1
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = icmp ne ptr %t2, null
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load ptr, ptr %t1
|
|
%t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 4
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1
|
|
%t10 = load ptr, ptr %t9
|
|
store ptr %t10, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
store ptr @.str2974, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t11 = load ptr, ptr %retval
|
|
ret ptr %t11
|
|
}
|
|
|
|
define ptr @fn_net_poll_sym() {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t0 = call ptr @fn_find_extern(ptr @.str2975)
|
|
store ptr %t0, ptr %t1
|
|
%t2 = load ptr, ptr %t1
|
|
%t3 = icmp ne ptr %t2, null
|
|
%t4 = zext i1 %t3 to i32
|
|
%t5 = icmp ne i32 %t4, 0
|
|
br i1 %t5, label %then0, label %ifend2
|
|
then0:
|
|
%t6 = load ptr, ptr %t1
|
|
%t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 4
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 1
|
|
%t10 = load ptr, ptr %t9
|
|
store ptr %t10, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
store ptr @.str2976, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t11 = load ptr, ptr %retval
|
|
ret ptr %t11
|
|
}
|
|
|
|
define void @fn_emit_net_pump() {
|
|
entry:
|
|
%t5 = alloca ptr
|
|
%t7 = alloca i32
|
|
%t21 = alloca ptr
|
|
%t30 = alloca ptr
|
|
%t41 = alloca i32
|
|
%t42 = alloca i32
|
|
%t44 = alloca ptr
|
|
%t65 = alloca ptr
|
|
%t71 = alloca ptr
|
|
call void @fn_emith(ptr @.str2977)
|
|
%t0 = call ptr @fn_find_extern(ptr @.str2978)
|
|
%t1 = icmp eq ptr %t0, null
|
|
%t2 = zext i1 %t1 to i32
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %then0, label %ifend2
|
|
then0:
|
|
store i32 1, ptr @g_g_uses_loopback
|
|
br label %ifend2
|
|
ifend2:
|
|
%t4 = call ptr @fn_net_poll_sym()
|
|
store ptr %t4, ptr %t5
|
|
call void @fn_emit(ptr @.str2979)
|
|
call void @fn_emit(ptr @.str2980)
|
|
%t6 = load ptr, ptr %t5
|
|
call void @fn_emit(ptr %t6)
|
|
call void @fn_emit(ptr @.str2981)
|
|
call void @fn_emit(ptr @.str2982)
|
|
call void @fn_emit(ptr @.str2983)
|
|
store i32 0, ptr %t7
|
|
br label %wcond3
|
|
wcond3:
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = load ptr, ptr @g_g_events
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 1
|
|
%t11 = load i32, ptr %t10
|
|
%t12 = icmp slt i32 %t8, %t11
|
|
%t13 = zext i1 %t12 to i32
|
|
%t14 = icmp ne i32 %t13, 0
|
|
br i1 %t14, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t15 = load ptr, ptr @g_g_events
|
|
%t16 = getelementptr inbounds %LSlice, ptr %t15, i32 0, i32 0
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = load i32, ptr %t7
|
|
%t19 = getelementptr inbounds ptr, ptr %t17, i32 %t18
|
|
%t20 = load ptr, ptr %t19
|
|
store ptr %t20, ptr %t21
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 3
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = icmp ne ptr %t24, null
|
|
%t26 = zext i1 %t25 to i32
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %then6, label %ifend8
|
|
then6:
|
|
%t28 = load i32, ptr %t7
|
|
%t29 = call ptr @fn_itoa(i32 %t28)
|
|
store ptr %t29, ptr %t30
|
|
call void @fn_emit(ptr @.str2984)
|
|
%t31 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t31)
|
|
call void @fn_emit(ptr @.str2985)
|
|
%t32 = load ptr, ptr %t21
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = call i32 @fn_net_event_id(ptr %t34)
|
|
%t36 = call ptr @fn_itoa(i32 %t35)
|
|
call void @fn_emit(ptr %t36)
|
|
call void @fn_emit(ptr @.str2986)
|
|
call void @fn_emit(ptr @.str2987)
|
|
%t37 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t37)
|
|
call void @fn_emit(ptr @.str2988)
|
|
%t38 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t38)
|
|
call void @fn_emit(ptr @.str2989)
|
|
%t39 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t39)
|
|
call void @fn_emit(ptr @.str2990)
|
|
call void @fn_emit(ptr @.str2991)
|
|
%t40 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t40)
|
|
call void @fn_emit(ptr @.str2992)
|
|
store i32 4, ptr %t41
|
|
store i32 0, ptr %t42
|
|
%t43 = call ptr @fn_buf_new()
|
|
store ptr %t43, ptr %t44
|
|
br label %wcond9
|
|
wcond9:
|
|
%t45 = load i32, ptr %t42
|
|
%t46 = load ptr, ptr %t21
|
|
%t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 7
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = getelementptr inbounds %LSlice, ptr %t48, i32 0, i32 1
|
|
%t50 = load i32, ptr %t49
|
|
%t51 = icmp slt i32 %t45, %t50
|
|
%t52 = zext i1 %t51 to i32
|
|
%t53 = icmp ne i32 %t52, 0
|
|
br i1 %t53, label %wbody10, label %wend11
|
|
wbody10:
|
|
%t54 = load ptr, ptr %t21
|
|
%t55 = getelementptr inbounds %Cmp_Node, ptr %t54, i32 0, i32 7
|
|
%t56 = load ptr, ptr %t55
|
|
%t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0
|
|
%t58 = load ptr, ptr %t57
|
|
%t59 = load i32, ptr %t42
|
|
%t60 = getelementptr inbounds ptr, ptr %t58, i32 %t59
|
|
%t61 = load ptr, ptr %t60
|
|
%t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 3
|
|
%t63 = load ptr, ptr %t62
|
|
%t64 = call ptr @fn_llty(ptr %t63)
|
|
store ptr %t64, ptr %t65
|
|
%t66 = load ptr, ptr %t30
|
|
%t67 = call ptr @fn_str_concat(ptr %t66, ptr @.str2993)
|
|
%t68 = load i32, ptr %t42
|
|
%t69 = call ptr @fn_itoa(i32 %t68)
|
|
%t70 = call ptr @fn_str_concat(ptr %t67, ptr %t69)
|
|
store ptr %t70, ptr %t71
|
|
call void @fn_emit(ptr @.str2994)
|
|
%t72 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t72)
|
|
call void @fn_emit(ptr @.str2995)
|
|
%t73 = load i32, ptr %t41
|
|
%t74 = call ptr @fn_itoa(i32 %t73)
|
|
call void @fn_emit(ptr %t74)
|
|
call void @fn_emit(ptr @.str2996)
|
|
call void @fn_emit(ptr @.str2997)
|
|
%t75 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t75)
|
|
call void @fn_emit(ptr @.str2998)
|
|
%t76 = load ptr, ptr %t65
|
|
call void @fn_emit(ptr %t76)
|
|
call void @fn_emit(ptr @.str2999)
|
|
%t77 = load ptr, ptr %t71
|
|
call void @fn_emit(ptr %t77)
|
|
call void @fn_emit(ptr @.str3000)
|
|
%t78 = load i32, ptr %t42
|
|
%t79 = icmp sgt i32 %t78, 0
|
|
%t80 = zext i1 %t79 to i32
|
|
%t81 = icmp ne i32 %t80, 0
|
|
br i1 %t81, label %then12, label %ifend14
|
|
then12:
|
|
%t82 = load ptr, ptr %t44
|
|
call void @fn_buf_puts(ptr %t82, ptr @.str3001)
|
|
br label %ifend14
|
|
ifend14:
|
|
%t83 = load ptr, ptr %t44
|
|
%t84 = load ptr, ptr %t65
|
|
call void @fn_buf_puts(ptr %t83, ptr %t84)
|
|
%t85 = load ptr, ptr %t44
|
|
call void @fn_buf_puts(ptr %t85, ptr @.str3002)
|
|
%t86 = load ptr, ptr %t44
|
|
%t87 = load ptr, ptr %t71
|
|
call void @fn_buf_puts(ptr %t86, ptr %t87)
|
|
%t88 = load i32, ptr %t41
|
|
%t89 = load ptr, ptr %t21
|
|
%t90 = getelementptr inbounds %Cmp_Node, ptr %t89, i32 0, i32 7
|
|
%t91 = load ptr, ptr %t90
|
|
%t92 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 0
|
|
%t93 = load ptr, ptr %t92
|
|
%t94 = load i32, ptr %t42
|
|
%t95 = getelementptr inbounds ptr, ptr %t93, i32 %t94
|
|
%t96 = load ptr, ptr %t95
|
|
%t97 = getelementptr inbounds %Cmp_Node, ptr %t96, i32 0, i32 3
|
|
%t98 = load ptr, ptr %t97
|
|
%t99 = call i32 @fn_net_field_ibytes(ptr %t98)
|
|
%t100 = add i32 %t88, %t99
|
|
store i32 %t100, ptr %t41
|
|
%t101 = load i32, ptr %t42
|
|
%t102 = add i32 %t101, 1
|
|
store i32 %t102, ptr %t42
|
|
br label %wcond9
|
|
wend11:
|
|
call void @fn_emit(ptr @.str3003)
|
|
%t103 = load ptr, ptr %t21
|
|
%t104 = getelementptr inbounds %Cmp_Node, ptr %t103, i32 0, i32 1
|
|
%t105 = load ptr, ptr %t104
|
|
call void @fn_emit(ptr %t105)
|
|
call void @fn_emit(ptr @.str3004)
|
|
%t106 = load ptr, ptr %t44
|
|
%t107 = call ptr @fn_buf_str(ptr %t106)
|
|
call void @fn_emit(ptr %t107)
|
|
call void @fn_emit(ptr @.str3005)
|
|
call void @fn_emit(ptr @.str3006)
|
|
call void @fn_emit(ptr @.str3007)
|
|
%t108 = load ptr, ptr %t30
|
|
call void @fn_emit(ptr %t108)
|
|
call void @fn_emit(ptr @.str3008)
|
|
br label %ifend8
|
|
ifend8:
|
|
%t109 = load i32, ptr %t7
|
|
%t110 = add i32 %t109, 1
|
|
store i32 %t110, ptr %t7
|
|
br label %wcond3
|
|
wend5:
|
|
call void @fn_emit(ptr @.str3009)
|
|
call void @fn_emit(ptr @.str3010)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_net() {
|
|
entry:
|
|
%t2 = alloca i32
|
|
%t10 = alloca i32
|
|
%t0 = call i32 @fn_net_has_sync()
|
|
%t1 = icmp ne i32 %t0, 0
|
|
br i1 %t1, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_net_check()
|
|
store i32 0, ptr %t2
|
|
br label %wcond3
|
|
wcond3:
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = load ptr, ptr @g_prog
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1
|
|
%t6 = load i32, ptr %t5
|
|
%t7 = icmp slt i32 %t3, %t6
|
|
%t8 = zext i1 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t11 = load ptr, ptr @g_prog
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 0
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = load i32, ptr %t2
|
|
%t15 = getelementptr inbounds ptr, ptr %t13, i32 %t14
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 0
|
|
%t18 = load i32, ptr %t17
|
|
%t19 = icmp eq i32 %t18, 10
|
|
%t20 = zext i1 %t19 to i32
|
|
%t21 = icmp ne i32 %t20, 0
|
|
%t22 = zext i1 %t21 to i32
|
|
store i32 %t22, ptr %t10
|
|
br i1 %t21, label %sc6, label %scend7
|
|
sc6:
|
|
%t23 = load ptr, ptr @g_prog
|
|
%t24 = getelementptr inbounds %LSlice, ptr %t23, i32 0, i32 0
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = load i32, ptr %t2
|
|
%t27 = getelementptr inbounds ptr, ptr %t25, i32 %t26
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = call i32 @fn_net_model_syncs(ptr %t28)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
%t31 = zext i1 %t30 to i32
|
|
store i32 %t31, ptr %t10
|
|
br label %scend7
|
|
scend7:
|
|
%t32 = load i32, ptr %t10
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then8, label %ifend10
|
|
then8:
|
|
%t34 = load ptr, ptr @g_prog
|
|
%t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0
|
|
%t36 = load ptr, ptr %t35
|
|
%t37 = load i32, ptr %t2
|
|
%t38 = getelementptr inbounds ptr, ptr %t36, i32 %t37
|
|
%t39 = load ptr, ptr %t38
|
|
call void @fn_emit_net_serialize(ptr %t39)
|
|
%t40 = load ptr, ptr @g_prog
|
|
%t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0
|
|
%t42 = load ptr, ptr %t41
|
|
%t43 = load i32, ptr %t2
|
|
%t44 = getelementptr inbounds ptr, ptr %t42, i32 %t43
|
|
%t45 = load ptr, ptr %t44
|
|
call void @fn_emit_net_apply(ptr %t45)
|
|
br label %ifend10
|
|
ifend10:
|
|
%t46 = load i32, ptr %t2
|
|
%t47 = add i32 %t46, 1
|
|
store i32 %t47, ptr %t2
|
|
br label %wcond3
|
|
wend5:
|
|
call void @fn_emit_net_dispatch()
|
|
br label %ifend2
|
|
ifend2:
|
|
%t48 = call i32 @fn_net_has_owned()
|
|
%t49 = icmp ne i32 %t48, 0
|
|
br i1 %t49, label %then11, label %ifend13
|
|
then11:
|
|
call void @fn_emit_net_owner()
|
|
br label %ifend13
|
|
ifend13:
|
|
%t50 = call i32 @fn_net_has_remote()
|
|
%t51 = icmp ne i32 %t50, 0
|
|
br i1 %t51, label %then14, label %ifend16
|
|
then14:
|
|
call void @fn_emith(ptr @.str3011)
|
|
call void @fn_emit_net_pump()
|
|
br label %ifend16
|
|
ifend16:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_ui_wtype(ptr %arg_w) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t4 = alloca ptr
|
|
store ptr %arg_w, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 1
|
|
%t3 = load ptr, ptr %t2
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = call i32 @fn_str_eq(ptr %t5, ptr @.str3012)
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %then0, label %ifend2
|
|
then0:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t8 = load ptr, ptr %t4
|
|
%t9 = call i32 @fn_str_eq(ptr %t8, ptr @.str3013)
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %then3, label %ifend5
|
|
then3:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t11 = load ptr, ptr %t4
|
|
%t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str3014)
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %then6, label %ifend8
|
|
then6:
|
|
store i32 2, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t14 = load ptr, ptr %t4
|
|
%t15 = call i32 @fn_str_eq(ptr %t14, ptr @.str3015)
|
|
%t16 = icmp ne i32 %t15, 0
|
|
br i1 %t16, label %then9, label %ifend11
|
|
then9:
|
|
store i32 3, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t17 = load ptr, ptr %t4
|
|
%t18 = call i32 @fn_str_eq(ptr %t17, ptr @.str3016)
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then12, label %ifend14
|
|
then12:
|
|
store i32 4, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
%t20 = load ptr, ptr %t4
|
|
%t21 = call i32 @fn_str_eq(ptr %t20, ptr @.str3017)
|
|
%t22 = icmp ne i32 %t21, 0
|
|
br i1 %t22, label %then15, label %ifend17
|
|
then15:
|
|
store i32 5, ptr %retval
|
|
br label %ret
|
|
ifend17:
|
|
%t23 = load ptr, ptr %t4
|
|
%t24 = call i32 @fn_str_eq(ptr %t23, ptr @.str3018)
|
|
%t25 = icmp ne i32 %t24, 0
|
|
br i1 %t25, label %then18, label %ifend20
|
|
then18:
|
|
store i32 6, ptr %retval
|
|
br label %ret
|
|
ifend20:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t26 = load i32, ptr %retval
|
|
ret i32 %t26
|
|
}
|
|
|
|
define ptr @fn_ui_prop(ptr %arg_w, ptr %arg_key) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
store ptr %arg_w, ptr %t0
|
|
store ptr %arg_key, ptr %t1
|
|
store i32 0, ptr %t2
|
|
br label %wcond0
|
|
wcond0:
|
|
%t3 = load i32, ptr %t2
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = getelementptr inbounds %Cmp_Node, ptr %t4, i32 0, i32 5
|
|
%t6 = load ptr, ptr %t5
|
|
%t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 7
|
|
%t8 = load ptr, ptr %t7
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1
|
|
%t10 = load i32, ptr %t9
|
|
%t11 = icmp slt i32 %t3, %t10
|
|
%t12 = zext i1 %t11 to i32
|
|
%t13 = icmp ne i32 %t12, 0
|
|
br i1 %t13, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t14 = load ptr, ptr %t0
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 5
|
|
%t16 = load ptr, ptr %t15
|
|
%t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 7
|
|
%t18 = load ptr, ptr %t17
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = load i32, ptr %t2
|
|
%t22 = getelementptr inbounds ptr, ptr %t20, i32 %t21
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 1
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = load ptr, ptr %t1
|
|
%t27 = call i32 @fn_str_eq(ptr %t25, ptr %t26)
|
|
%t28 = icmp ne i32 %t27, 0
|
|
br i1 %t28, label %then3, label %ifend5
|
|
then3:
|
|
%t29 = load ptr, ptr %t0
|
|
%t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 5
|
|
%t31 = load ptr, ptr %t30
|
|
%t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7
|
|
%t33 = load ptr, ptr %t32
|
|
%t34 = getelementptr inbounds %LSlice, ptr %t33, i32 0, i32 0
|
|
%t35 = load ptr, ptr %t34
|
|
%t36 = load i32, ptr %t2
|
|
%t37 = getelementptr inbounds ptr, ptr %t35, i32 %t36
|
|
%t38 = load ptr, ptr %t37
|
|
%t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 4
|
|
%t40 = load ptr, ptr %t39
|
|
store ptr %t40, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t41 = load i32, ptr %t2
|
|
%t42 = add i32 %t41, 1
|
|
store i32 %t42, ptr %t2
|
|
br label %wcond0
|
|
wend2:
|
|
store ptr null, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t43 = load ptr, ptr %retval
|
|
ret ptr %t43
|
|
}
|
|
|
|
define void @fn_ui_flatten(ptr %arg_w, i32 %arg_parent) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t5 = alloca i32
|
|
%t46 = alloca i32
|
|
store ptr %arg_w, ptr %t0
|
|
store i32 %arg_parent, ptr %t1
|
|
%t2 = load ptr, ptr @g_uiw
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
store i32 %t4, ptr %t5
|
|
%t6 = load ptr, ptr @g_uiw
|
|
%t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1
|
|
%t8 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 2
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 0
|
|
%t10 = load i32, ptr %t7
|
|
%t11 = load i32, ptr %t8
|
|
%t12 = icmp sge i32 %t10, %t11
|
|
br i1 %t12, label %grow0, label %put1
|
|
grow0:
|
|
%t13 = mul i32 %t11, 2
|
|
%t14 = icmp eq i32 %t11, 0
|
|
%t15 = select i1 %t14, i32 8, i32 %t13
|
|
%t16 = getelementptr ptr, ptr null, i32 1
|
|
%t17 = ptrtoint ptr %t16 to i64
|
|
%t18 = zext i32 %t15 to i64
|
|
%t19 = mul i64 %t18, %t17
|
|
%t20 = load ptr, ptr %t9
|
|
%t21 = call ptr @realloc(ptr %t20, i64 %t19)
|
|
store ptr %t21, ptr %t9
|
|
store i32 %t15, ptr %t8
|
|
br label %put1
|
|
put1:
|
|
%t22 = load ptr, ptr %t0
|
|
%t23 = load ptr, ptr %t9
|
|
%t24 = getelementptr inbounds ptr, ptr %t23, i32 %t10
|
|
store ptr %t22, ptr %t24
|
|
%t25 = add i32 %t10, 1
|
|
store i32 %t25, ptr %t7
|
|
%t26 = load ptr, ptr @g_uiw_parent
|
|
%t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1
|
|
%t28 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 2
|
|
%t29 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 0
|
|
%t30 = load i32, ptr %t27
|
|
%t31 = load i32, ptr %t28
|
|
%t32 = icmp sge i32 %t30, %t31
|
|
br i1 %t32, label %grow2, label %put3
|
|
grow2:
|
|
%t33 = mul i32 %t31, 2
|
|
%t34 = icmp eq i32 %t31, 0
|
|
%t35 = select i1 %t34, i32 8, i32 %t33
|
|
%t36 = getelementptr i32, ptr null, i32 1
|
|
%t37 = ptrtoint ptr %t36 to i64
|
|
%t38 = zext i32 %t35 to i64
|
|
%t39 = mul i64 %t38, %t37
|
|
%t40 = load ptr, ptr %t29
|
|
%t41 = call ptr @realloc(ptr %t40, i64 %t39)
|
|
store ptr %t41, ptr %t29
|
|
store i32 %t35, ptr %t28
|
|
br label %put3
|
|
put3:
|
|
%t42 = load i32, ptr %t1
|
|
%t43 = load ptr, ptr %t29
|
|
%t44 = getelementptr inbounds i32, ptr %t43, i32 %t30
|
|
store i32 %t42, ptr %t44
|
|
%t45 = add i32 %t30, 1
|
|
store i32 %t45, ptr %t27
|
|
store i32 0, ptr %t46
|
|
br label %wcond4
|
|
wcond4:
|
|
%t47 = load i32, ptr %t46
|
|
%t48 = load ptr, ptr %t0
|
|
%t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 7
|
|
%t50 = load ptr, ptr %t49
|
|
%t51 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1
|
|
%t52 = load i32, ptr %t51
|
|
%t53 = icmp slt i32 %t47, %t52
|
|
%t54 = zext i1 %t53 to i32
|
|
%t55 = icmp ne i32 %t54, 0
|
|
br i1 %t55, label %wbody5, label %wend6
|
|
wbody5:
|
|
%t56 = load ptr, ptr %t0
|
|
%t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 7
|
|
%t58 = load ptr, ptr %t57
|
|
%t59 = getelementptr inbounds %LSlice, ptr %t58, i32 0, i32 0
|
|
%t60 = load ptr, ptr %t59
|
|
%t61 = load i32, ptr %t46
|
|
%t62 = getelementptr inbounds ptr, ptr %t60, i32 %t61
|
|
%t63 = load ptr, ptr %t62
|
|
%t64 = load i32, ptr %t5
|
|
call void @fn_ui_flatten(ptr %t63, i32 %t64)
|
|
%t65 = load i32, ptr %t46
|
|
%t66 = add i32 %t65, 1
|
|
store i32 %t66, ptr %t46
|
|
br label %wcond4
|
|
wend6:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_ui_flatten_all() {
|
|
entry:
|
|
%t18 = alloca i32
|
|
%t26 = alloca i32
|
|
%t0 = getelementptr %LSlice, ptr null, i32 1
|
|
%t1 = ptrtoint ptr %t0 to i64
|
|
%t2 = call ptr @malloc(i64 %t1)
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 0
|
|
store ptr null, ptr %t3
|
|
%t4 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
store i32 0, ptr %t4
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 2
|
|
store i32 0, ptr %t5
|
|
store ptr %t2, ptr @g_uiw
|
|
%t6 = getelementptr %LSlice, ptr null, i32 1
|
|
%t7 = ptrtoint ptr %t6 to i64
|
|
%t8 = call ptr @malloc(i64 %t7)
|
|
%t9 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 0
|
|
store ptr null, ptr %t9
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 1
|
|
store i32 0, ptr %t10
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t8, i32 0, i32 2
|
|
store i32 0, ptr %t11
|
|
store ptr %t8, ptr @g_uiw_parent
|
|
%t12 = getelementptr %LSlice, ptr null, i32 1
|
|
%t13 = ptrtoint ptr %t12 to i64
|
|
%t14 = call ptr @malloc(i64 %t13)
|
|
%t15 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 0
|
|
store ptr null, ptr %t15
|
|
%t16 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 1
|
|
store i32 0, ptr %t16
|
|
%t17 = getelementptr inbounds %LSlice, ptr %t14, i32 0, i32 2
|
|
store i32 0, ptr %t17
|
|
store ptr %t14, ptr @g_ui_roots
|
|
store i32 0, ptr %t18
|
|
br label %wcond0
|
|
wcond0:
|
|
%t19 = load i32, ptr %t18
|
|
%t20 = load ptr, ptr @g_prog
|
|
%t21 = getelementptr inbounds %LSlice, ptr %t20, i32 0, i32 1
|
|
%t22 = load i32, ptr %t21
|
|
%t23 = icmp slt i32 %t19, %t22
|
|
%t24 = zext i1 %t23 to i32
|
|
%t25 = icmp ne i32 %t24, 0
|
|
br i1 %t25, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t27 = load ptr, ptr @g_prog
|
|
%t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0
|
|
%t29 = load ptr, ptr %t28
|
|
%t30 = load i32, ptr %t18
|
|
%t31 = getelementptr inbounds ptr, ptr %t29, i32 %t30
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 0
|
|
%t34 = load i32, ptr %t33
|
|
%t35 = icmp eq i32 %t34, 12
|
|
%t36 = zext i1 %t35 to i32
|
|
%t37 = icmp ne i32 %t36, 0
|
|
%t38 = zext i1 %t37 to i32
|
|
store i32 %t38, ptr %t26
|
|
br i1 %t37, label %sc3, label %scend4
|
|
sc3:
|
|
%t39 = load ptr, ptr @g_prog
|
|
%t40 = getelementptr inbounds %LSlice, ptr %t39, i32 0, i32 0
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = load i32, ptr %t18
|
|
%t43 = getelementptr inbounds ptr, ptr %t41, i32 %t42
|
|
%t44 = load ptr, ptr %t43
|
|
%t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 2
|
|
%t46 = load i32, ptr %t45
|
|
%t47 = icmp eq i32 %t46, 1
|
|
%t48 = zext i1 %t47 to i32
|
|
%t49 = icmp ne i32 %t48, 0
|
|
%t50 = zext i1 %t49 to i32
|
|
store i32 %t50, ptr %t26
|
|
br label %scend4
|
|
scend4:
|
|
%t51 = load i32, ptr %t26
|
|
%t52 = icmp ne i32 %t51, 0
|
|
br i1 %t52, label %then5, label %ifend7
|
|
then5:
|
|
%t53 = load ptr, ptr @g_ui_roots
|
|
%t54 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 1
|
|
%t55 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 2
|
|
%t56 = getelementptr inbounds %LSlice, ptr %t53, i32 0, i32 0
|
|
%t57 = load i32, ptr %t54
|
|
%t58 = load i32, ptr %t55
|
|
%t59 = icmp sge i32 %t57, %t58
|
|
br i1 %t59, label %grow8, label %put9
|
|
grow8:
|
|
%t60 = mul i32 %t58, 2
|
|
%t61 = icmp eq i32 %t58, 0
|
|
%t62 = select i1 %t61, i32 8, i32 %t60
|
|
%t63 = getelementptr i32, ptr null, i32 1
|
|
%t64 = ptrtoint ptr %t63 to i64
|
|
%t65 = zext i32 %t62 to i64
|
|
%t66 = mul i64 %t65, %t64
|
|
%t67 = load ptr, ptr %t56
|
|
%t68 = call ptr @realloc(ptr %t67, i64 %t66)
|
|
store ptr %t68, ptr %t56
|
|
store i32 %t62, ptr %t55
|
|
br label %put9
|
|
put9:
|
|
%t69 = load ptr, ptr @g_uiw
|
|
%t70 = getelementptr inbounds %LSlice, ptr %t69, i32 0, i32 1
|
|
%t71 = load i32, ptr %t70
|
|
%t72 = load ptr, ptr %t56
|
|
%t73 = getelementptr inbounds i32, ptr %t72, i32 %t57
|
|
store i32 %t71, ptr %t73
|
|
%t74 = add i32 %t57, 1
|
|
store i32 %t74, ptr %t54
|
|
%t75 = load ptr, ptr @g_prog
|
|
%t76 = getelementptr inbounds %LSlice, ptr %t75, i32 0, i32 0
|
|
%t77 = load ptr, ptr %t76
|
|
%t78 = load i32, ptr %t18
|
|
%t79 = getelementptr inbounds ptr, ptr %t77, i32 %t78
|
|
%t80 = load ptr, ptr %t79
|
|
%t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 4
|
|
%t82 = load ptr, ptr %t81
|
|
%t83 = sub i32 0, 1
|
|
call void @fn_ui_flatten(ptr %t82, i32 %t83)
|
|
br label %ifend7
|
|
ifend7:
|
|
%t84 = load i32, ptr %t18
|
|
%t85 = add i32 %t84, 1
|
|
store i32 %t85, ptr %t18
|
|
br label %wcond0
|
|
wend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_has_ui() {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca i32
|
|
%t8 = alloca i32
|
|
store i32 0, ptr %t0
|
|
br label %wcond0
|
|
wcond0:
|
|
%t1 = load i32, ptr %t0
|
|
%t2 = load ptr, ptr @g_prog
|
|
%t3 = getelementptr inbounds %LSlice, ptr %t2, i32 0, i32 1
|
|
%t4 = load i32, ptr %t3
|
|
%t5 = icmp slt i32 %t1, %t4
|
|
%t6 = zext i1 %t5 to i32
|
|
%t7 = icmp ne i32 %t6, 0
|
|
br i1 %t7, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t9 = load ptr, ptr @g_prog
|
|
%t10 = getelementptr inbounds %LSlice, ptr %t9, i32 0, i32 0
|
|
%t11 = load ptr, ptr %t10
|
|
%t12 = load i32, ptr %t0
|
|
%t13 = getelementptr inbounds ptr, ptr %t11, i32 %t12
|
|
%t14 = load ptr, ptr %t13
|
|
%t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 0
|
|
%t16 = load i32, ptr %t15
|
|
%t17 = icmp eq i32 %t16, 12
|
|
%t18 = zext i1 %t17 to i32
|
|
%t19 = icmp ne i32 %t18, 0
|
|
%t20 = zext i1 %t19 to i32
|
|
store i32 %t20, ptr %t8
|
|
br i1 %t19, label %sc3, label %scend4
|
|
sc3:
|
|
%t21 = load ptr, ptr @g_prog
|
|
%t22 = getelementptr inbounds %LSlice, ptr %t21, i32 0, i32 0
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = load i32, ptr %t0
|
|
%t25 = getelementptr inbounds ptr, ptr %t23, i32 %t24
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 2
|
|
%t28 = load i32, ptr %t27
|
|
%t29 = icmp eq i32 %t28, 1
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
%t32 = zext i1 %t31 to i32
|
|
store i32 %t32, ptr %t8
|
|
br label %scend4
|
|
scend4:
|
|
%t33 = load i32, ptr %t8
|
|
%t34 = icmp ne i32 %t33, 0
|
|
br i1 %t34, label %then5, label %ifend7
|
|
then5:
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend7:
|
|
%t35 = load i32, ptr %t0
|
|
%t36 = add i32 %t35, 1
|
|
store i32 %t36, ptr %t0
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t37 = load i32, ptr %retval
|
|
ret i32 %t37
|
|
}
|
|
|
|
define i32 @fn_ui_index_of(ptr %arg_nm) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t7 = alloca i32
|
|
%t8 = alloca i32
|
|
%t9 = alloca i32
|
|
%t17 = alloca i32
|
|
%t79 = alloca ptr
|
|
%t84 = alloca i32
|
|
store ptr %arg_nm, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call i64 @strlen(ptr %t2)
|
|
%t4 = trunc i64 %t3 to i32
|
|
%t5 = call ptr @fn_str_slice(ptr %t1, i32 3, i32 %t4)
|
|
store ptr %t5, ptr %t6
|
|
store i32 0, ptr %t7
|
|
store i32 0, ptr %t8
|
|
store i32 0, ptr %t9
|
|
br label %wcond0
|
|
wcond0:
|
|
%t10 = load i32, ptr %t9
|
|
%t11 = load ptr, ptr @g_prog
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t11, i32 0, i32 1
|
|
%t13 = load i32, ptr %t12
|
|
%t14 = icmp slt i32 %t10, %t13
|
|
%t15 = zext i1 %t14 to i32
|
|
%t16 = icmp ne i32 %t15, 0
|
|
br i1 %t16, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t18 = load ptr, ptr @g_prog
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = load i32, ptr %t9
|
|
%t22 = getelementptr inbounds ptr, ptr %t20, i32 %t21
|
|
%t23 = load ptr, ptr %t22
|
|
%t24 = getelementptr inbounds %Cmp_Node, ptr %t23, i32 0, i32 0
|
|
%t25 = load i32, ptr %t24
|
|
%t26 = icmp eq i32 %t25, 12
|
|
%t27 = zext i1 %t26 to i32
|
|
%t28 = icmp ne i32 %t27, 0
|
|
%t29 = zext i1 %t28 to i32
|
|
store i32 %t29, ptr %t17
|
|
br i1 %t28, label %sc3, label %scend4
|
|
sc3:
|
|
%t30 = load ptr, ptr @g_prog
|
|
%t31 = getelementptr inbounds %LSlice, ptr %t30, i32 0, i32 0
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = load i32, ptr %t9
|
|
%t34 = getelementptr inbounds ptr, ptr %t32, i32 %t33
|
|
%t35 = load ptr, ptr %t34
|
|
%t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 2
|
|
%t37 = load i32, ptr %t36
|
|
%t38 = icmp eq i32 %t37, 1
|
|
%t39 = zext i1 %t38 to i32
|
|
%t40 = icmp ne i32 %t39, 0
|
|
%t41 = zext i1 %t40 to i32
|
|
store i32 %t41, ptr %t17
|
|
br label %scend4
|
|
scend4:
|
|
%t42 = load i32, ptr %t17
|
|
%t43 = icmp ne i32 %t42, 0
|
|
br i1 %t43, label %then5, label %ifend7
|
|
then5:
|
|
%t44 = load ptr, ptr @g_prog
|
|
%t45 = getelementptr inbounds %LSlice, ptr %t44, i32 0, i32 0
|
|
%t46 = load ptr, ptr %t45
|
|
%t47 = load i32, ptr %t9
|
|
%t48 = getelementptr inbounds ptr, ptr %t46, i32 %t47
|
|
%t49 = load ptr, ptr %t48
|
|
%t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 1
|
|
%t51 = load ptr, ptr %t50
|
|
%t52 = load ptr, ptr %t6
|
|
%t53 = call i32 @fn_str_eq(ptr %t51, ptr %t52)
|
|
%t54 = icmp ne i32 %t53, 0
|
|
br i1 %t54, label %then8, label %ifend10
|
|
then8:
|
|
%t55 = load ptr, ptr @g_ui_roots
|
|
%t56 = getelementptr inbounds %LSlice, ptr %t55, i32 0, i32 0
|
|
%t57 = load ptr, ptr %t56
|
|
%t58 = load i32, ptr %t8
|
|
%t59 = getelementptr inbounds i32, ptr %t57, i32 %t58
|
|
%t60 = load i32, ptr %t59
|
|
store i32 %t60, ptr %retval
|
|
br label %ret
|
|
ifend10:
|
|
%t61 = load i32, ptr %t8
|
|
%t62 = add i32 %t61, 1
|
|
store i32 %t62, ptr %t8
|
|
br label %ifend7
|
|
ifend7:
|
|
%t63 = load i32, ptr %t9
|
|
%t64 = add i32 %t63, 1
|
|
store i32 %t64, ptr %t9
|
|
br label %wcond0
|
|
wend2:
|
|
store i32 0, ptr %t9
|
|
br label %wcond11
|
|
wcond11:
|
|
%t65 = load i32, ptr %t9
|
|
%t66 = load ptr, ptr @g_uiw
|
|
%t67 = getelementptr inbounds %LSlice, ptr %t66, i32 0, i32 1
|
|
%t68 = load i32, ptr %t67
|
|
%t69 = icmp slt i32 %t65, %t68
|
|
%t70 = zext i1 %t69 to i32
|
|
%t71 = icmp ne i32 %t70, 0
|
|
br i1 %t71, label %wbody12, label %wend13
|
|
wbody12:
|
|
%t72 = load ptr, ptr @g_uiw
|
|
%t73 = getelementptr inbounds %LSlice, ptr %t72, i32 0, i32 0
|
|
%t74 = load ptr, ptr %t73
|
|
%t75 = load i32, ptr %t9
|
|
%t76 = getelementptr inbounds ptr, ptr %t74, i32 %t75
|
|
%t77 = load ptr, ptr %t76
|
|
%t78 = call ptr @fn_ui_prop(ptr %t77, ptr @.str3019)
|
|
store ptr %t78, ptr %t79
|
|
%t80 = load ptr, ptr %t79
|
|
%t81 = icmp ne ptr %t80, null
|
|
%t82 = zext i1 %t81 to i32
|
|
%t83 = icmp ne i32 %t82, 0
|
|
br i1 %t83, label %then14, label %ifend16
|
|
then14:
|
|
%t85 = load ptr, ptr %t79
|
|
%t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 0
|
|
%t87 = load i32, ptr %t86
|
|
%t88 = icmp eq i32 %t87, 33
|
|
%t89 = zext i1 %t88 to i32
|
|
%t90 = icmp ne i32 %t89, 0
|
|
%t91 = zext i1 %t90 to i32
|
|
store i32 %t91, ptr %t84
|
|
br i1 %t90, label %sc17, label %scend18
|
|
sc17:
|
|
%t92 = load ptr, ptr %t79
|
|
%t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 1
|
|
%t94 = load ptr, ptr %t93
|
|
%t95 = load ptr, ptr %t6
|
|
%t96 = call i32 @fn_str_eq(ptr %t94, ptr %t95)
|
|
%t97 = icmp ne i32 %t96, 0
|
|
%t98 = zext i1 %t97 to i32
|
|
store i32 %t98, ptr %t84
|
|
br label %scend18
|
|
scend18:
|
|
%t99 = load i32, ptr %t84
|
|
%t100 = icmp ne i32 %t99, 0
|
|
br i1 %t100, label %then19, label %ifend21
|
|
then19:
|
|
%t101 = load i32, ptr %t9
|
|
store i32 %t101, ptr %retval
|
|
br label %ret
|
|
ifend21:
|
|
br label %ifend16
|
|
ifend16:
|
|
%t102 = load i32, ptr %t9
|
|
%t103 = add i32 %t102, 1
|
|
store i32 %t103, ptr %t9
|
|
br label %wcond11
|
|
wend13:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t104 = load i32, ptr %retval
|
|
ret i32 %t104
|
|
}
|
|
|
|
define i32 @fn_is_ui_ident(ptr %arg_nm) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
store ptr %arg_nm, ptr %t0
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = call i64 @strlen(ptr %t4)
|
|
%t6 = trunc i64 %t5 to i32
|
|
%t7 = icmp sgt i32 %t6, 3
|
|
%t8 = zext i1 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
%t10 = zext i1 %t9 to i32
|
|
store i32 %t10, ptr %t3
|
|
br i1 %t9, label %sc0, label %scend1
|
|
sc0:
|
|
%t11 = load ptr, ptr %t0
|
|
%t12 = getelementptr inbounds i8, ptr %t11, i32 0
|
|
%t13 = load i8, ptr %t12
|
|
%t14 = zext i8 %t13 to i32
|
|
%t15 = icmp eq i32 %t14, 85
|
|
%t16 = zext i1 %t15 to i32
|
|
%t17 = icmp ne i32 %t16, 0
|
|
%t18 = zext i1 %t17 to i32
|
|
store i32 %t18, ptr %t3
|
|
br label %scend1
|
|
scend1:
|
|
%t19 = load i32, ptr %t3
|
|
%t20 = icmp ne i32 %t19, 0
|
|
%t21 = zext i1 %t20 to i32
|
|
store i32 %t21, ptr %t2
|
|
br i1 %t20, label %sc2, label %scend3
|
|
sc2:
|
|
%t22 = load ptr, ptr %t0
|
|
%t23 = getelementptr inbounds i8, ptr %t22, i32 1
|
|
%t24 = load i8, ptr %t23
|
|
%t25 = zext i8 %t24 to i32
|
|
%t26 = icmp eq i32 %t25, 73
|
|
%t27 = zext i1 %t26 to i32
|
|
%t28 = icmp ne i32 %t27, 0
|
|
%t29 = zext i1 %t28 to i32
|
|
store i32 %t29, ptr %t2
|
|
br label %scend3
|
|
scend3:
|
|
%t30 = load i32, ptr %t2
|
|
%t31 = icmp ne i32 %t30, 0
|
|
%t32 = zext i1 %t31 to i32
|
|
store i32 %t32, ptr %t1
|
|
br i1 %t31, label %sc4, label %scend5
|
|
sc4:
|
|
%t33 = load ptr, ptr %t0
|
|
%t34 = getelementptr inbounds i8, ptr %t33, i32 2
|
|
%t35 = load i8, ptr %t34
|
|
%t36 = zext i8 %t35 to i32
|
|
%t37 = icmp eq i32 %t36, 95
|
|
%t38 = zext i1 %t37 to i32
|
|
%t39 = icmp ne i32 %t38, 0
|
|
%t40 = zext i1 %t39 to i32
|
|
store i32 %t40, ptr %t1
|
|
br label %scend5
|
|
scend5:
|
|
%t41 = load i32, ptr %t1
|
|
store i32 %t41, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t42 = load i32, ptr %retval
|
|
ret i32 %t42
|
|
}
|
|
|
|
define void @fn_ll_ui_set(i32 %arg_idx, i32 %arg_key, ptr %arg_val) {
|
|
entry:
|
|
%t0 = alloca i32
|
|
%t1 = alloca i32
|
|
%t2 = alloca ptr
|
|
store i32 %arg_idx, ptr %t0
|
|
store i32 %arg_key, ptr %t1
|
|
store ptr %arg_val, ptr %t2
|
|
call void @fn_emit(ptr @.str3020)
|
|
%t3 = load i32, ptr %t0
|
|
%t4 = call ptr @fn_itoa(i32 %t3)
|
|
call void @fn_emit(ptr %t4)
|
|
call void @fn_emit(ptr @.str3021)
|
|
%t5 = load i32, ptr %t1
|
|
%t6 = call ptr @fn_itoa(i32 %t5)
|
|
call void @fn_emit(ptr %t6)
|
|
call void @fn_emit(ptr @.str3022)
|
|
%t7 = load ptr, ptr %t2
|
|
call void @fn_emit(ptr %t7)
|
|
call void @fn_emit(ptr @.str3023)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_ui_prop_key(ptr %arg_k) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
store ptr %arg_k, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str3024)
|
|
%t3 = icmp ne i32 %t2, 0
|
|
br i1 %t3, label %then0, label %ifend2
|
|
then0:
|
|
store i32 2, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str3025)
|
|
%t6 = icmp ne i32 %t5, 0
|
|
br i1 %t6, label %then3, label %ifend5
|
|
then3:
|
|
store i32 3, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str3026)
|
|
%t9 = icmp ne i32 %t8, 0
|
|
br i1 %t9, label %then6, label %ifend8
|
|
then6:
|
|
store i32 4, ptr %retval
|
|
br label %ret
|
|
ifend8:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str3027)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then9, label %ifend11
|
|
then9:
|
|
store i32 5, ptr %retval
|
|
br label %ret
|
|
ifend11:
|
|
%t13 = load ptr, ptr %t0
|
|
%t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str3028)
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then12, label %ifend14
|
|
then12:
|
|
store i32 7, ptr %retval
|
|
br label %ret
|
|
ifend14:
|
|
%t16 = load ptr, ptr %t0
|
|
%t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str3029)
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then15, label %ifend17
|
|
then15:
|
|
store i32 8, ptr %retval
|
|
br label %ret
|
|
ifend17:
|
|
%t19 = load ptr, ptr %t0
|
|
%t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str3030)
|
|
%t21 = icmp ne i32 %t20, 0
|
|
br i1 %t21, label %then18, label %ifend20
|
|
then18:
|
|
store i32 9, ptr %retval
|
|
br label %ret
|
|
ifend20:
|
|
%t22 = load ptr, ptr %t0
|
|
%t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str3031)
|
|
%t24 = icmp ne i32 %t23, 0
|
|
br i1 %t24, label %then21, label %ifend23
|
|
then21:
|
|
store i32 10, ptr %retval
|
|
br label %ret
|
|
ifend23:
|
|
%t25 = load ptr, ptr %t0
|
|
%t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str3032)
|
|
%t27 = icmp ne i32 %t26, 0
|
|
br i1 %t27, label %then24, label %ifend26
|
|
then24:
|
|
store i32 11, ptr %retval
|
|
br label %ret
|
|
ifend26:
|
|
%t28 = load ptr, ptr %t0
|
|
%t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str3033)
|
|
%t30 = icmp ne i32 %t29, 0
|
|
br i1 %t30, label %then27, label %ifend29
|
|
then27:
|
|
store i32 13, ptr %retval
|
|
br label %ret
|
|
ifend29:
|
|
%t31 = load ptr, ptr %t0
|
|
%t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str3034)
|
|
%t33 = icmp ne i32 %t32, 0
|
|
br i1 %t33, label %then30, label %ifend32
|
|
then30:
|
|
store i32 14, ptr %retval
|
|
br label %ret
|
|
ifend32:
|
|
%t34 = load ptr, ptr %t0
|
|
%t35 = call i32 @fn_str_eq(ptr %t34, ptr @.str3035)
|
|
%t36 = icmp ne i32 %t35, 0
|
|
br i1 %t36, label %then33, label %ifend35
|
|
then33:
|
|
store i32 15, ptr %retval
|
|
br label %ret
|
|
ifend35:
|
|
%t37 = load ptr, ptr %t0
|
|
%t38 = call i32 @fn_str_eq(ptr %t37, ptr @.str3036)
|
|
%t39 = icmp ne i32 %t38, 0
|
|
br i1 %t39, label %then36, label %ifend38
|
|
then36:
|
|
store i32 16, ptr %retval
|
|
br label %ret
|
|
ifend38:
|
|
%t40 = load ptr, ptr %t0
|
|
%t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str3037)
|
|
%t42 = icmp ne i32 %t41, 0
|
|
br i1 %t42, label %then39, label %ifend41
|
|
then39:
|
|
store i32 17, ptr %retval
|
|
br label %ret
|
|
ifend41:
|
|
%t43 = sub i32 0, 1
|
|
store i32 %t43, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t44 = load i32, ptr %retval
|
|
ret i32 %t44
|
|
}
|
|
|
|
define void @fn_emit_ui_build() {
|
|
entry:
|
|
%t1 = alloca ptr
|
|
%t4 = alloca ptr
|
|
%t10 = alloca i32
|
|
%t24 = alloca ptr
|
|
%t27 = alloca i32
|
|
%t44 = alloca i32
|
|
%t66 = alloca ptr
|
|
%t70 = alloca ptr
|
|
%t74 = alloca ptr
|
|
%t85 = alloca ptr
|
|
%t91 = alloca i32
|
|
%t104 = alloca ptr
|
|
%t111 = alloca ptr
|
|
%t128 = alloca i32
|
|
%t144 = alloca ptr
|
|
%t151 = alloca i32
|
|
%t158 = alloca ptr
|
|
%t164 = alloca i32
|
|
call void @fn_ui_flatten_all()
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
store i32 0, ptr @g_g_term
|
|
call void @fn_loc_reset()
|
|
store i32 0, ptr @g_nloop
|
|
%t0 = call ptr @fn_buf_new()
|
|
store ptr %t0, ptr %t1
|
|
%t2 = call ptr @fn_buf_new()
|
|
store ptr %t2, ptr @g_falloc
|
|
%t3 = load ptr, ptr @g_code
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t1
|
|
store ptr %t5, ptr @g_code
|
|
call void @fn_emit(ptr @.str3038)
|
|
%t6 = load ptr, ptr @g_uiw
|
|
%t7 = getelementptr inbounds %LSlice, ptr %t6, i32 0, i32 1
|
|
%t8 = load i32, ptr %t7
|
|
%t9 = call ptr @fn_itoa(i32 %t8)
|
|
call void @fn_emit(ptr %t9)
|
|
call void @fn_emit(ptr @.str3039)
|
|
store i32 0, ptr %t10
|
|
br label %wcond0
|
|
wcond0:
|
|
%t11 = load i32, ptr %t10
|
|
%t12 = load ptr, ptr @g_uiw
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t12, i32 0, i32 1
|
|
%t14 = load i32, ptr %t13
|
|
%t15 = icmp slt i32 %t11, %t14
|
|
%t16 = zext i1 %t15 to i32
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t18 = load ptr, ptr @g_uiw
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t18, i32 0, i32 0
|
|
%t20 = load ptr, ptr %t19
|
|
%t21 = load i32, ptr %t10
|
|
%t22 = getelementptr inbounds ptr, ptr %t20, i32 %t21
|
|
%t23 = load ptr, ptr %t22
|
|
store ptr %t23, ptr %t24
|
|
%t25 = load ptr, ptr %t24
|
|
%t26 = call i32 @fn_ui_wtype(ptr %t25)
|
|
store i32 %t26, ptr %t27
|
|
%t28 = load i32, ptr %t10
|
|
%t29 = load i32, ptr %t27
|
|
%t30 = call ptr @fn_itoa(i32 %t29)
|
|
call void @fn_ll_ui_set(i32 %t28, i32 0, ptr %t30)
|
|
%t31 = load i32, ptr %t10
|
|
%t32 = load ptr, ptr @g_uiw_parent
|
|
%t33 = getelementptr inbounds %LSlice, ptr %t32, i32 0, i32 0
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = load i32, ptr %t10
|
|
%t36 = getelementptr inbounds i32, ptr %t34, i32 %t35
|
|
%t37 = load i32, ptr %t36
|
|
%t38 = call ptr @fn_itoa(i32 %t37)
|
|
call void @fn_ll_ui_set(i32 %t31, i32 1, ptr %t38)
|
|
%t39 = load i32, ptr %t27
|
|
%t40 = icmp eq i32 %t39, 4
|
|
%t41 = zext i1 %t40 to i32
|
|
%t42 = icmp ne i32 %t41, 0
|
|
br i1 %t42, label %then3, label %ifend5
|
|
then3:
|
|
%t43 = load i32, ptr %t10
|
|
call void @fn_ll_ui_set(i32 %t43, i32 17, ptr @.str3040)
|
|
br label %ifend5
|
|
ifend5:
|
|
store i32 0, ptr %t44
|
|
br label %wcond6
|
|
wcond6:
|
|
%t45 = load i32, ptr %t44
|
|
%t46 = load ptr, ptr %t24
|
|
%t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 5
|
|
%t48 = load ptr, ptr %t47
|
|
%t49 = getelementptr inbounds %Cmp_Node, ptr %t48, i32 0, i32 7
|
|
%t50 = load ptr, ptr %t49
|
|
%t51 = getelementptr inbounds %LSlice, ptr %t50, i32 0, i32 1
|
|
%t52 = load i32, ptr %t51
|
|
%t53 = icmp slt i32 %t45, %t52
|
|
%t54 = zext i1 %t53 to i32
|
|
%t55 = icmp ne i32 %t54, 0
|
|
br i1 %t55, label %wbody7, label %wend8
|
|
wbody7:
|
|
%t56 = load ptr, ptr %t24
|
|
%t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 5
|
|
%t58 = load ptr, ptr %t57
|
|
%t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 7
|
|
%t60 = load ptr, ptr %t59
|
|
%t61 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0
|
|
%t62 = load ptr, ptr %t61
|
|
%t63 = load i32, ptr %t44
|
|
%t64 = getelementptr inbounds ptr, ptr %t62, i32 %t63
|
|
%t65 = load ptr, ptr %t64
|
|
store ptr %t65, ptr %t66
|
|
%t67 = load ptr, ptr %t66
|
|
%t68 = getelementptr inbounds %Cmp_Node, ptr %t67, i32 0, i32 1
|
|
%t69 = load ptr, ptr %t68
|
|
store ptr %t69, ptr %t70
|
|
%t71 = load ptr, ptr %t66
|
|
%t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 4
|
|
%t73 = load ptr, ptr %t72
|
|
store ptr %t73, ptr %t74
|
|
%t75 = load ptr, ptr %t70
|
|
%t76 = call i32 @fn_str_eq(ptr %t75, ptr @.str3041)
|
|
%t77 = icmp ne i32 %t76, 0
|
|
br i1 %t77, label %then9, label %ifend11
|
|
then9:
|
|
%t78 = load i32, ptr %t44
|
|
%t79 = add i32 %t78, 1
|
|
store i32 %t79, ptr %t44
|
|
br label %wcond6
|
|
ifend11:
|
|
%t80 = load ptr, ptr %t70
|
|
%t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str3042)
|
|
%t82 = icmp ne i32 %t81, 0
|
|
br i1 %t82, label %then12, label %else13
|
|
then12:
|
|
%t83 = load ptr, ptr %t74
|
|
%t84 = call ptr @fn_emit_expr(ptr %t83)
|
|
store ptr %t84, ptr %t85
|
|
call void @fn_emit(ptr @.str3043)
|
|
%t86 = load i32, ptr %t10
|
|
%t87 = call ptr @fn_itoa(i32 %t86)
|
|
call void @fn_emit(ptr %t87)
|
|
call void @fn_emit(ptr @.str3044)
|
|
%t88 = load ptr, ptr %t85
|
|
%t89 = getelementptr inbounds %Cmp_Val, ptr %t88, i32 0, i32 0
|
|
%t90 = load ptr, ptr %t89
|
|
call void @fn_emit(ptr %t90)
|
|
call void @fn_emit(ptr @.str3045)
|
|
br label %ifend14
|
|
else13:
|
|
%t92 = load ptr, ptr %t70
|
|
%t93 = call i32 @fn_str_eq(ptr %t92, ptr @.str3046)
|
|
%t94 = icmp ne i32 %t93, 0
|
|
%t95 = zext i1 %t94 to i32
|
|
store i32 %t95, ptr %t91
|
|
br i1 %t94, label %scend16, label %sc15
|
|
sc15:
|
|
%t96 = load ptr, ptr %t70
|
|
%t97 = call i32 @fn_str_eq(ptr %t96, ptr @.str3047)
|
|
%t98 = icmp ne i32 %t97, 0
|
|
%t99 = zext i1 %t98 to i32
|
|
store i32 %t99, ptr %t91
|
|
br label %scend16
|
|
scend16:
|
|
%t100 = load i32, ptr %t91
|
|
%t101 = icmp ne i32 %t100, 0
|
|
br i1 %t101, label %then17, label %else18
|
|
then17:
|
|
%t102 = load ptr, ptr %t74
|
|
%t103 = call ptr @fn_emit_expr(ptr %t102)
|
|
store ptr %t103, ptr %t104
|
|
%t105 = load ptr, ptr %t104
|
|
%t106 = getelementptr inbounds %Cmp_Val, ptr %t105, i32 0, i32 0
|
|
%t107 = load ptr, ptr %t106
|
|
%t108 = call ptr @fn_str_concat(ptr @.str3048, ptr %t107)
|
|
%t109 = call ptr @fn_str_concat(ptr %t108, ptr @.str3049)
|
|
%t110 = call ptr @fn_emit_bind(ptr %t109)
|
|
store ptr %t110, ptr %t111
|
|
%t112 = load ptr, ptr %t70
|
|
%t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str3050)
|
|
%t114 = icmp ne i32 %t113, 0
|
|
br i1 %t114, label %then20, label %else21
|
|
then20:
|
|
%t115 = load i32, ptr %t10
|
|
%t116 = load ptr, ptr %t111
|
|
call void @fn_ll_ui_set(i32 %t115, i32 20, ptr %t116)
|
|
br label %ifend22
|
|
else21:
|
|
%t117 = load i32, ptr %t10
|
|
%t118 = load ptr, ptr %t111
|
|
call void @fn_ll_ui_set(i32 %t117, i32 19, ptr %t118)
|
|
br label %ifend22
|
|
ifend22:
|
|
br label %ifend19
|
|
else18:
|
|
%t119 = load ptr, ptr %t70
|
|
%t120 = call i32 @fn_str_eq(ptr %t119, ptr @.str3051)
|
|
%t121 = icmp ne i32 %t120, 0
|
|
br i1 %t121, label %then23, label %else24
|
|
then23:
|
|
%t122 = load ptr, ptr %t74
|
|
%t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 0
|
|
%t124 = load i32, ptr %t123
|
|
%t125 = icmp eq i32 %t124, 33
|
|
%t126 = zext i1 %t125 to i32
|
|
%t127 = icmp ne i32 %t126, 0
|
|
br i1 %t127, label %then26, label %else27
|
|
then26:
|
|
store i32 0, ptr %t128
|
|
%t129 = load ptr, ptr %t74
|
|
%t130 = getelementptr inbounds %Cmp_Node, ptr %t129, i32 0, i32 1
|
|
%t131 = load ptr, ptr %t130
|
|
%t132 = call i32 @fn_str_eq(ptr %t131, ptr @.str3052)
|
|
%t133 = icmp ne i32 %t132, 0
|
|
br i1 %t133, label %then29, label %ifend31
|
|
then29:
|
|
store i32 1, ptr %t128
|
|
br label %ifend31
|
|
ifend31:
|
|
%t134 = load ptr, ptr %t74
|
|
%t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 1
|
|
%t136 = load ptr, ptr %t135
|
|
%t137 = call i32 @fn_str_eq(ptr %t136, ptr @.str3053)
|
|
%t138 = icmp ne i32 %t137, 0
|
|
br i1 %t138, label %then32, label %ifend34
|
|
then32:
|
|
store i32 2, ptr %t128
|
|
br label %ifend34
|
|
ifend34:
|
|
%t139 = load i32, ptr %t10
|
|
%t140 = load i32, ptr %t128
|
|
%t141 = call ptr @fn_itoa(i32 %t140)
|
|
call void @fn_ll_ui_set(i32 %t139, i32 12, ptr %t141)
|
|
br label %ifend28
|
|
else27:
|
|
%t142 = load ptr, ptr %t74
|
|
%t143 = call ptr @fn_emit_expr(ptr %t142)
|
|
store ptr %t143, ptr %t144
|
|
%t145 = load i32, ptr %t10
|
|
%t146 = load ptr, ptr %t144
|
|
%t147 = getelementptr inbounds %Cmp_Val, ptr %t146, i32 0, i32 0
|
|
%t148 = load ptr, ptr %t147
|
|
call void @fn_ll_ui_set(i32 %t145, i32 12, ptr %t148)
|
|
br label %ifend28
|
|
ifend28:
|
|
br label %ifend25
|
|
else24:
|
|
%t149 = load ptr, ptr %t70
|
|
%t150 = call i32 @fn_ui_prop_key(ptr %t149)
|
|
store i32 %t150, ptr %t151
|
|
%t152 = load i32, ptr %t151
|
|
%t153 = icmp sge i32 %t152, 0
|
|
%t154 = zext i1 %t153 to i32
|
|
%t155 = icmp ne i32 %t154, 0
|
|
br i1 %t155, label %then35, label %ifend37
|
|
then35:
|
|
%t156 = load ptr, ptr %t74
|
|
%t157 = call ptr @fn_emit_expr(ptr %t156)
|
|
store ptr %t157, ptr %t158
|
|
%t159 = load i32, ptr %t10
|
|
%t160 = load i32, ptr %t151
|
|
%t161 = load ptr, ptr %t158
|
|
%t162 = getelementptr inbounds %Cmp_Val, ptr %t161, i32 0, i32 0
|
|
%t163 = load ptr, ptr %t162
|
|
call void @fn_ll_ui_set(i32 %t159, i32 %t160, ptr %t163)
|
|
%t165 = load i32, ptr %t151
|
|
%t166 = icmp eq i32 %t165, 4
|
|
%t167 = zext i1 %t166 to i32
|
|
%t168 = icmp ne i32 %t167, 0
|
|
%t169 = zext i1 %t168 to i32
|
|
store i32 %t169, ptr %t164
|
|
br i1 %t168, label %scend39, label %sc38
|
|
sc38:
|
|
%t170 = load i32, ptr %t151
|
|
%t171 = icmp eq i32 %t170, 5
|
|
%t172 = zext i1 %t171 to i32
|
|
%t173 = icmp ne i32 %t172, 0
|
|
%t174 = zext i1 %t173 to i32
|
|
store i32 %t174, ptr %t164
|
|
br label %scend39
|
|
scend39:
|
|
%t175 = load i32, ptr %t164
|
|
%t176 = icmp ne i32 %t175, 0
|
|
br i1 %t176, label %then40, label %ifend42
|
|
then40:
|
|
%t177 = load i32, ptr %t10
|
|
call void @fn_ll_ui_set(i32 %t177, i32 6, ptr @.str3054)
|
|
br label %ifend42
|
|
ifend42:
|
|
br label %ifend37
|
|
ifend37:
|
|
br label %ifend25
|
|
ifend25:
|
|
br label %ifend19
|
|
ifend19:
|
|
br label %ifend14
|
|
ifend14:
|
|
%t178 = load i32, ptr %t44
|
|
%t179 = add i32 %t178, 1
|
|
store i32 %t179, ptr %t44
|
|
br label %wcond6
|
|
wend8:
|
|
%t180 = load i32, ptr %t10
|
|
%t181 = add i32 %t180, 1
|
|
store i32 %t181, ptr %t10
|
|
br label %wcond0
|
|
wend2:
|
|
%t182 = load ptr, ptr %t4
|
|
store ptr %t182, ptr @g_code
|
|
call void @fn_emit(ptr @.str3055)
|
|
%t183 = load ptr, ptr @g_falloc
|
|
%t184 = call ptr @fn_buf_str(ptr %t183)
|
|
call void @fn_emit(ptr %t184)
|
|
%t185 = load ptr, ptr %t1
|
|
%t186 = call ptr @fn_buf_str(ptr %t185)
|
|
call void @fn_emit(ptr %t186)
|
|
call void @fn_emit(ptr @.str3056)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_params_sig(ptr %arg_d) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t1 = alloca i32
|
|
store ptr %arg_d, ptr %t0
|
|
store i32 0, ptr %t1
|
|
br label %wcond0
|
|
wcond0:
|
|
%t2 = load i32, ptr %t1
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 7
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t5, i32 0, i32 1
|
|
%t7 = load i32, ptr %t6
|
|
%t8 = icmp slt i32 %t2, %t7
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t11 = load i32, ptr %t1
|
|
%t12 = icmp sgt i32 %t11, 0
|
|
%t13 = zext i1 %t12 to i32
|
|
%t14 = icmp ne i32 %t13, 0
|
|
br i1 %t14, label %then3, label %ifend5
|
|
then3:
|
|
call void @fn_emit(ptr @.str3057)
|
|
br label %ifend5
|
|
ifend5:
|
|
%t15 = load ptr, ptr %t0
|
|
%t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 7
|
|
%t17 = load ptr, ptr %t16
|
|
%t18 = getelementptr inbounds %LSlice, ptr %t17, i32 0, i32 0
|
|
%t19 = load ptr, ptr %t18
|
|
%t20 = load i32, ptr %t1
|
|
%t21 = getelementptr inbounds ptr, ptr %t19, i32 %t20
|
|
%t22 = load ptr, ptr %t21
|
|
%t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 3
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = call ptr @fn_llty(ptr %t24)
|
|
call void @fn_emit(ptr %t25)
|
|
call void @fn_emit(ptr @.str3058)
|
|
%t26 = load ptr, ptr %t0
|
|
%t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 7
|
|
%t28 = load ptr, ptr %t27
|
|
%t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0
|
|
%t30 = load ptr, ptr %t29
|
|
%t31 = load i32, ptr %t1
|
|
%t32 = getelementptr inbounds ptr, ptr %t30, i32 %t31
|
|
%t33 = load ptr, ptr %t32
|
|
%t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1
|
|
%t35 = load ptr, ptr %t34
|
|
call void @fn_emit(ptr %t35)
|
|
%t36 = load i32, ptr %t1
|
|
%t37 = add i32 %t36, 1
|
|
store i32 %t37, ptr %t1
|
|
br label %wcond0
|
|
wend2:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_fn(ptr %arg_d) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t8 = alloca ptr
|
|
%t12 = alloca ptr
|
|
%t22 = alloca i32
|
|
%t40 = alloca ptr
|
|
%t46 = alloca ptr
|
|
%t78 = alloca ptr
|
|
store ptr %arg_d, ptr %t0
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
store i32 0, ptr @g_g_term
|
|
call void @fn_loc_reset()
|
|
store i32 0, ptr @g_nloop
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 3
|
|
%t3 = load ptr, ptr %t2
|
|
store ptr %t3, ptr @g_ret_ty
|
|
%t4 = call ptr @fn_buf_new()
|
|
store ptr %t4, ptr %t5
|
|
%t6 = call ptr @fn_buf_new()
|
|
store ptr %t6, ptr @g_falloc
|
|
%t7 = load ptr, ptr @g_code
|
|
store ptr %t7, ptr %t8
|
|
%t9 = load ptr, ptr %t5
|
|
store ptr %t9, ptr @g_code
|
|
%t10 = load ptr, ptr @g_ret_ty
|
|
%t11 = call ptr @fn_llty(ptr %t10)
|
|
store ptr %t11, ptr %t12
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str3059)
|
|
%t15 = icmp eq i32 %t14, 0
|
|
%t16 = zext i1 %t15 to i32
|
|
%t17 = icmp ne i32 %t16, 0
|
|
br i1 %t17, label %then0, label %ifend2
|
|
then0:
|
|
%t18 = load ptr, ptr @g_falloc
|
|
call void @fn_buf_puts(ptr %t18, ptr @.str3060)
|
|
%t19 = load ptr, ptr @g_falloc
|
|
%t20 = load ptr, ptr %t12
|
|
call void @fn_buf_puts(ptr %t19, ptr %t20)
|
|
%t21 = load ptr, ptr @g_falloc
|
|
call void @fn_buf_puts(ptr %t21, ptr @.str3061)
|
|
br label %ifend2
|
|
ifend2:
|
|
store i32 0, ptr %t22
|
|
br label %wcond3
|
|
wcond3:
|
|
%t23 = load i32, ptr %t22
|
|
%t24 = load ptr, ptr %t0
|
|
%t25 = getelementptr inbounds %Cmp_Node, ptr %t24, i32 0, i32 7
|
|
%t26 = load ptr, ptr %t25
|
|
%t27 = getelementptr inbounds %LSlice, ptr %t26, i32 0, i32 1
|
|
%t28 = load i32, ptr %t27
|
|
%t29 = icmp slt i32 %t23, %t28
|
|
%t30 = zext i1 %t29 to i32
|
|
%t31 = icmp ne i32 %t30, 0
|
|
br i1 %t31, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t32 = load ptr, ptr %t0
|
|
%t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 7
|
|
%t34 = load ptr, ptr %t33
|
|
%t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0
|
|
%t36 = load ptr, ptr %t35
|
|
%t37 = load i32, ptr %t22
|
|
%t38 = getelementptr inbounds ptr, ptr %t36, i32 %t37
|
|
%t39 = load ptr, ptr %t38
|
|
store ptr %t39, ptr %t40
|
|
%t41 = load ptr, ptr %t40
|
|
%t42 = getelementptr inbounds %Cmp_Node, ptr %t41, i32 0, i32 3
|
|
%t43 = load ptr, ptr %t42
|
|
%t44 = call ptr @fn_llty(ptr %t43)
|
|
%t45 = call ptr @fn_emit_alloca(ptr %t44)
|
|
store ptr %t45, ptr %t46
|
|
call void @fn_emit(ptr @.str3062)
|
|
%t47 = load ptr, ptr %t40
|
|
%t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 3
|
|
%t49 = load ptr, ptr %t48
|
|
%t50 = call ptr @fn_llty(ptr %t49)
|
|
call void @fn_emit(ptr %t50)
|
|
call void @fn_emit(ptr @.str3063)
|
|
%t51 = load ptr, ptr %t40
|
|
%t52 = getelementptr inbounds %Cmp_Node, ptr %t51, i32 0, i32 1
|
|
%t53 = load ptr, ptr %t52
|
|
call void @fn_emit(ptr %t53)
|
|
call void @fn_emit(ptr @.str3064)
|
|
%t54 = load ptr, ptr %t46
|
|
call void @fn_emit(ptr %t54)
|
|
call void @fn_emit(ptr @.str3065)
|
|
%t55 = load ptr, ptr %t40
|
|
%t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 1
|
|
%t57 = load ptr, ptr %t56
|
|
%t58 = load ptr, ptr %t46
|
|
%t59 = load ptr, ptr %t40
|
|
%t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 3
|
|
%t61 = load ptr, ptr %t60
|
|
call void @fn_loc_push(ptr %t57, ptr %t58, ptr %t61)
|
|
%t62 = load i32, ptr %t22
|
|
%t63 = add i32 %t62, 1
|
|
store i32 %t63, ptr %t22
|
|
br label %wcond3
|
|
wend5:
|
|
%t64 = load ptr, ptr %t0
|
|
%t65 = getelementptr inbounds %Cmp_Node, ptr %t64, i32 0, i32 4
|
|
%t66 = load ptr, ptr %t65
|
|
call void @fn_emit_block(ptr %t66)
|
|
%t67 = load i32, ptr @g_g_term
|
|
%t68 = icmp eq i32 %t67, 0
|
|
%t69 = zext i1 %t68 to i32
|
|
%t70 = icmp ne i32 %t69, 0
|
|
br i1 %t70, label %then6, label %ifend8
|
|
then6:
|
|
call void @fn_emit(ptr @.str3066)
|
|
br label %ifend8
|
|
ifend8:
|
|
call void @fn_emit(ptr @.str3067)
|
|
%t71 = load ptr, ptr %t12
|
|
%t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str3068)
|
|
%t73 = icmp ne i32 %t72, 0
|
|
br i1 %t73, label %then9, label %else10
|
|
then9:
|
|
call void @fn_emit(ptr @.str3069)
|
|
br label %ifend11
|
|
else10:
|
|
%t74 = load ptr, ptr %t12
|
|
%t75 = call ptr @fn_str_concat(ptr @.str3070, ptr %t74)
|
|
%t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str3071)
|
|
%t77 = call ptr @fn_emit_bind(ptr %t76)
|
|
store ptr %t77, ptr %t78
|
|
call void @fn_emit(ptr @.str3072)
|
|
%t79 = load ptr, ptr %t12
|
|
call void @fn_emit(ptr %t79)
|
|
call void @fn_emit(ptr @.str3073)
|
|
%t80 = load ptr, ptr %t78
|
|
call void @fn_emit(ptr %t80)
|
|
call void @fn_emit(ptr @.str3074)
|
|
br label %ifend11
|
|
ifend11:
|
|
%t81 = load ptr, ptr %t8
|
|
store ptr %t81, ptr @g_code
|
|
call void @fn_emit(ptr @.str3075)
|
|
%t82 = load ptr, ptr %t12
|
|
call void @fn_emit(ptr %t82)
|
|
call void @fn_emit(ptr @.str3076)
|
|
%t83 = load ptr, ptr %t0
|
|
%t84 = getelementptr inbounds %Cmp_Node, ptr %t83, i32 0, i32 1
|
|
%t85 = load ptr, ptr %t84
|
|
call void @fn_emit(ptr %t85)
|
|
call void @fn_emit(ptr @.str3077)
|
|
%t86 = load ptr, ptr %t0
|
|
call void @fn_emit_params_sig(ptr %t86)
|
|
call void @fn_emit(ptr @.str3078)
|
|
%t87 = load ptr, ptr @g_falloc
|
|
%t88 = call ptr @fn_buf_str(ptr %t87)
|
|
call void @fn_emit(ptr %t88)
|
|
%t89 = load ptr, ptr %t5
|
|
%t90 = call ptr @fn_buf_str(ptr %t89)
|
|
call void @fn_emit(ptr %t90)
|
|
call void @fn_emit(ptr @.str3079)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_main(ptr %arg_d) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
%t2 = alloca ptr
|
|
%t5 = alloca ptr
|
|
%t16 = alloca ptr
|
|
store ptr %arg_d, ptr %t0
|
|
store i32 0, ptr @g_ll_t
|
|
store i32 0, ptr @g_ll_lbl
|
|
store i32 0, ptr @g_g_term
|
|
call void @fn_loc_reset()
|
|
store i32 0, ptr @g_nloop
|
|
store ptr @.str3080, ptr @g_ret_ty
|
|
%t1 = call ptr @fn_buf_new()
|
|
store ptr %t1, ptr %t2
|
|
%t3 = call ptr @fn_buf_new()
|
|
store ptr %t3, ptr @g_falloc
|
|
%t4 = load ptr, ptr @g_code
|
|
store ptr %t4, ptr %t5
|
|
%t6 = load ptr, ptr %t2
|
|
store ptr %t6, ptr @g_code
|
|
%t7 = load ptr, ptr @g_falloc
|
|
call void @fn_buf_puts(ptr %t7, ptr @.str3081)
|
|
call void @fn_emit(ptr @.str3082)
|
|
call void @fn_emit(ptr @.str3083)
|
|
call void @fn_emit(ptr @.str3084)
|
|
%t8 = load ptr, ptr %t0
|
|
%t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4
|
|
%t10 = load ptr, ptr %t9
|
|
call void @fn_emit_block(ptr %t10)
|
|
%t11 = load i32, ptr @g_g_term
|
|
%t12 = icmp eq i32 %t11, 0
|
|
%t13 = zext i1 %t12 to i32
|
|
%t14 = icmp ne i32 %t13, 0
|
|
br i1 %t14, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_emit(ptr @.str3085)
|
|
br label %ifend2
|
|
ifend2:
|
|
call void @fn_emit(ptr @.str3086)
|
|
%t15 = call ptr @fn_emit_bind(ptr @.str3087)
|
|
store ptr %t15, ptr %t16
|
|
call void @fn_emit(ptr @.str3088)
|
|
%t17 = load ptr, ptr %t16
|
|
call void @fn_emit(ptr %t17)
|
|
call void @fn_emit(ptr @.str3089)
|
|
%t18 = load ptr, ptr %t5
|
|
store ptr %t18, ptr @g_code
|
|
call void @fn_emit(ptr @.str3090)
|
|
%t19 = load ptr, ptr @g_falloc
|
|
%t20 = call ptr @fn_buf_str(ptr %t19)
|
|
call void @fn_emit(ptr %t20)
|
|
%t21 = load ptr, ptr %t2
|
|
%t22 = call ptr @fn_buf_str(ptr %t21)
|
|
call void @fn_emit(ptr %t22)
|
|
call void @fn_emit(ptr @.str3091)
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define void @fn_emit_program() {
|
|
entry:
|
|
%t52 = alloca i32
|
|
%t85 = alloca i32
|
|
%t104 = alloca i32
|
|
%t0 = call ptr @fn_buf_new()
|
|
store ptr %t0, ptr @g_head
|
|
%t1 = call ptr @fn_buf_new()
|
|
store ptr %t1, ptr @g_code
|
|
store i32 0, ptr @g_g_uses_str
|
|
store i32 0, ptr @g_g_uses_intstr
|
|
store i32 0, ptr @g_g_uses_strslice
|
|
store i32 0, ptr @g_g_uses_loopback
|
|
%t2 = getelementptr %LSlice, ptr null, i32 1
|
|
%t3 = ptrtoint ptr %t2 to i64
|
|
%t4 = call ptr @malloc(i64 %t3)
|
|
%t5 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 0
|
|
store ptr null, ptr %t5
|
|
%t6 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 1
|
|
store i32 0, ptr %t6
|
|
%t7 = getelementptr inbounds %LSlice, ptr %t4, i32 0, i32 2
|
|
store i32 0, ptr %t7
|
|
store ptr %t4, ptr @g_loc_name
|
|
%t8 = getelementptr %LSlice, ptr null, i32 1
|
|
%t9 = ptrtoint ptr %t8 to i64
|
|
%t10 = call ptr @malloc(i64 %t9)
|
|
%t11 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 0
|
|
store ptr null, ptr %t11
|
|
%t12 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 1
|
|
store i32 0, ptr %t12
|
|
%t13 = getelementptr inbounds %LSlice, ptr %t10, i32 0, i32 2
|
|
store i32 0, ptr %t13
|
|
store ptr %t10, ptr @g_loc_reg
|
|
%t14 = getelementptr %LSlice, ptr null, i32 1
|
|
%t15 = ptrtoint ptr %t14 to i64
|
|
%t16 = call ptr @malloc(i64 %t15)
|
|
%t17 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 0
|
|
store ptr null, ptr %t17
|
|
%t18 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 1
|
|
store i32 0, ptr %t18
|
|
%t19 = getelementptr inbounds %LSlice, ptr %t16, i32 0, i32 2
|
|
store i32 0, ptr %t19
|
|
store ptr %t16, ptr @g_loc_ty
|
|
%t20 = getelementptr %LSlice, ptr null, i32 1
|
|
%t21 = ptrtoint ptr %t20 to i64
|
|
%t22 = call ptr @malloc(i64 %t21)
|
|
%t23 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 0
|
|
store ptr null, ptr %t23
|
|
%t24 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 1
|
|
store i32 0, ptr %t24
|
|
%t25 = getelementptr inbounds %LSlice, ptr %t22, i32 0, i32 2
|
|
store i32 0, ptr %t25
|
|
store ptr %t22, ptr @g_loc_mut
|
|
%t26 = getelementptr %LSlice, ptr null, i32 1
|
|
%t27 = ptrtoint ptr %t26 to i64
|
|
%t28 = call ptr @malloc(i64 %t27)
|
|
%t29 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 0
|
|
store ptr null, ptr %t29
|
|
%t30 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 1
|
|
store i32 0, ptr %t30
|
|
%t31 = getelementptr inbounds %LSlice, ptr %t28, i32 0, i32 2
|
|
store i32 0, ptr %t31
|
|
store ptr %t28, ptr @g_brk_lbl
|
|
%t32 = getelementptr %LSlice, ptr null, i32 1
|
|
%t33 = ptrtoint ptr %t32 to i64
|
|
%t34 = call ptr @malloc(i64 %t33)
|
|
%t35 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 0
|
|
store ptr null, ptr %t35
|
|
%t36 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 1
|
|
store i32 0, ptr %t36
|
|
%t37 = getelementptr inbounds %LSlice, ptr %t34, i32 0, i32 2
|
|
store i32 0, ptr %t37
|
|
store ptr %t34, ptr @g_cnt_lbl
|
|
%t38 = getelementptr %LSlice, ptr null, i32 1
|
|
%t39 = ptrtoint ptr %t38 to i64
|
|
%t40 = call ptr @malloc(i64 %t39)
|
|
%t41 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 0
|
|
store ptr null, ptr %t41
|
|
%t42 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 1
|
|
store i32 0, ptr %t42
|
|
%t43 = getelementptr inbounds %LSlice, ptr %t40, i32 0, i32 2
|
|
store i32 0, ptr %t43
|
|
store ptr %t40, ptr @g_self_stk
|
|
%t44 = getelementptr %LSlice, ptr null, i32 1
|
|
%t45 = ptrtoint ptr %t44 to i64
|
|
%t46 = call ptr @malloc(i64 %t45)
|
|
%t47 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 0
|
|
store ptr null, ptr %t47
|
|
%t48 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 1
|
|
store i32 0, ptr %t48
|
|
%t49 = getelementptr inbounds %LSlice, ptr %t46, i32 0, i32 2
|
|
store i32 0, ptr %t49
|
|
store ptr %t46, ptr @g_mach_stk
|
|
call void @fn_emit_header()
|
|
call void @fn_emit_extern_decls()
|
|
%t50 = call i32 @fn_has_ecs()
|
|
%t51 = icmp ne i32 %t50, 0
|
|
br i1 %t51, label %then0, label %ifend2
|
|
then0:
|
|
call void @fn_emit_ecs_storage()
|
|
br label %ifend2
|
|
ifend2:
|
|
store i32 0, ptr %t52
|
|
br label %wcond3
|
|
wcond3:
|
|
%t53 = load i32, ptr %t52
|
|
%t54 = load ptr, ptr @g_prog
|
|
%t55 = getelementptr inbounds %LSlice, ptr %t54, i32 0, i32 1
|
|
%t56 = load i32, ptr %t55
|
|
%t57 = icmp slt i32 %t53, %t56
|
|
%t58 = zext i1 %t57 to i32
|
|
%t59 = icmp ne i32 %t58, 0
|
|
br i1 %t59, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t60 = load ptr, ptr @g_prog
|
|
%t61 = getelementptr inbounds %LSlice, ptr %t60, i32 0, i32 0
|
|
%t62 = load ptr, ptr %t61
|
|
%t63 = load i32, ptr %t52
|
|
%t64 = getelementptr inbounds ptr, ptr %t62, i32 %t63
|
|
%t65 = load ptr, ptr %t64
|
|
%t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 0
|
|
%t67 = load i32, ptr %t66
|
|
%t68 = icmp eq i32 %t67, 4
|
|
%t69 = zext i1 %t68 to i32
|
|
%t70 = icmp ne i32 %t69, 0
|
|
br i1 %t70, label %then6, label %ifend8
|
|
then6:
|
|
%t71 = load ptr, ptr @g_prog
|
|
%t72 = getelementptr inbounds %LSlice, ptr %t71, i32 0, i32 0
|
|
%t73 = load ptr, ptr %t72
|
|
%t74 = load i32, ptr %t52
|
|
%t75 = getelementptr inbounds ptr, ptr %t73, i32 %t74
|
|
%t76 = load ptr, ptr %t75
|
|
call void @fn_emit_fn(ptr %t76)
|
|
br label %ifend8
|
|
ifend8:
|
|
%t77 = load i32, ptr %t52
|
|
%t78 = add i32 %t77, 1
|
|
store i32 %t78, ptr %t52
|
|
br label %wcond3
|
|
wend5:
|
|
%t79 = load ptr, ptr @g_g_events
|
|
%t80 = getelementptr inbounds %LSlice, ptr %t79, i32 0, i32 1
|
|
%t81 = load i32, ptr %t80
|
|
%t82 = icmp sgt i32 %t81, 0
|
|
%t83 = zext i1 %t82 to i32
|
|
%t84 = icmp ne i32 %t83, 0
|
|
br i1 %t84, label %then9, label %ifend11
|
|
then9:
|
|
call void @fn_emit_event_fns()
|
|
br label %ifend11
|
|
ifend11:
|
|
%t86 = call i32 @fn_has_ecs()
|
|
%t87 = icmp ne i32 %t86, 0
|
|
%t88 = zext i1 %t87 to i32
|
|
store i32 %t88, ptr %t85
|
|
br i1 %t87, label %sc12, label %scend13
|
|
sc12:
|
|
%t89 = load ptr, ptr @g_g_events
|
|
%t90 = getelementptr inbounds %LSlice, ptr %t89, i32 0, i32 1
|
|
%t91 = load i32, ptr %t90
|
|
%t92 = icmp sgt i32 %t91, 0
|
|
%t93 = zext i1 %t92 to i32
|
|
%t94 = icmp ne i32 %t93, 0
|
|
%t95 = zext i1 %t94 to i32
|
|
store i32 %t95, ptr %t85
|
|
br label %scend13
|
|
scend13:
|
|
%t96 = load i32, ptr %t85
|
|
%t97 = icmp ne i32 %t96, 0
|
|
br i1 %t97, label %then14, label %ifend16
|
|
then14:
|
|
call void @fn_emit_world_table()
|
|
br label %ifend16
|
|
ifend16:
|
|
%t98 = call i32 @fn_has_ecs()
|
|
%t99 = icmp ne i32 %t98, 0
|
|
br i1 %t99, label %then17, label %ifend19
|
|
then17:
|
|
call void @fn_emit_ecs_allocator()
|
|
call void @fn_emit_snapshot()
|
|
br label %ifend19
|
|
ifend19:
|
|
%t100 = call i32 @fn_has_ecs()
|
|
%t101 = icmp ne i32 %t100, 0
|
|
br i1 %t101, label %then20, label %ifend22
|
|
then20:
|
|
call void @fn_emit_net()
|
|
br label %ifend22
|
|
ifend22:
|
|
%t102 = call i32 @fn_has_ui()
|
|
%t103 = icmp ne i32 %t102, 0
|
|
br i1 %t103, label %then23, label %ifend25
|
|
then23:
|
|
call void @fn_emit_ui_build()
|
|
br label %ifend25
|
|
ifend25:
|
|
%t105 = call i32 @fn_has_systems()
|
|
%t106 = icmp ne i32 %t105, 0
|
|
%t107 = zext i1 %t106 to i32
|
|
store i32 %t107, ptr %t104
|
|
br i1 %t106, label %sc26, label %scend27
|
|
sc26:
|
|
%t108 = call i32 @fn_has_entry()
|
|
%t109 = icmp ne i32 %t108, 0
|
|
%t110 = zext i1 %t109 to i32
|
|
store i32 %t110, ptr %t104
|
|
br label %scend27
|
|
scend27:
|
|
%t111 = load i32, ptr %t104
|
|
%t112 = icmp ne i32 %t111, 0
|
|
br i1 %t112, label %then28, label %else29
|
|
then28:
|
|
call void @fn_emit_game_defs()
|
|
store i32 0, ptr %t52
|
|
br label %wcond31
|
|
wcond31:
|
|
%t113 = load i32, ptr %t52
|
|
%t114 = load ptr, ptr @g_prog
|
|
%t115 = getelementptr inbounds %LSlice, ptr %t114, i32 0, i32 1
|
|
%t116 = load i32, ptr %t115
|
|
%t117 = icmp slt i32 %t113, %t116
|
|
%t118 = zext i1 %t117 to i32
|
|
%t119 = icmp ne i32 %t118, 0
|
|
br i1 %t119, label %wbody32, label %wend33
|
|
wbody32:
|
|
%t120 = load ptr, ptr @g_prog
|
|
%t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0
|
|
%t122 = load ptr, ptr %t121
|
|
%t123 = load i32, ptr %t52
|
|
%t124 = getelementptr inbounds ptr, ptr %t122, i32 %t123
|
|
%t125 = load ptr, ptr %t124
|
|
%t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 0
|
|
%t127 = load i32, ptr %t126
|
|
%t128 = icmp eq i32 %t127, 6
|
|
%t129 = zext i1 %t128 to i32
|
|
%t130 = icmp ne i32 %t129, 0
|
|
br i1 %t130, label %then34, label %ifend36
|
|
then34:
|
|
%t131 = load ptr, ptr @g_prog
|
|
%t132 = getelementptr inbounds %LSlice, ptr %t131, i32 0, i32 0
|
|
%t133 = load ptr, ptr %t132
|
|
%t134 = load i32, ptr %t52
|
|
%t135 = getelementptr inbounds ptr, ptr %t133, i32 %t134
|
|
%t136 = load ptr, ptr %t135
|
|
call void @fn_emit_main(ptr %t136)
|
|
br label %ifend36
|
|
ifend36:
|
|
%t137 = load i32, ptr %t52
|
|
%t138 = add i32 %t137, 1
|
|
store i32 %t138, ptr %t52
|
|
br label %wcond31
|
|
wend33:
|
|
br label %ifend30
|
|
else29:
|
|
%t139 = call i32 @fn_has_systems()
|
|
%t140 = icmp ne i32 %t139, 0
|
|
br i1 %t140, label %then37, label %else38
|
|
then37:
|
|
call void @fn_emit_game_main()
|
|
br label %ifend39
|
|
else38:
|
|
store i32 0, ptr %t52
|
|
br label %wcond40
|
|
wcond40:
|
|
%t141 = load i32, ptr %t52
|
|
%t142 = load ptr, ptr @g_prog
|
|
%t143 = getelementptr inbounds %LSlice, ptr %t142, i32 0, i32 1
|
|
%t144 = load i32, ptr %t143
|
|
%t145 = icmp slt i32 %t141, %t144
|
|
%t146 = zext i1 %t145 to i32
|
|
%t147 = icmp ne i32 %t146, 0
|
|
br i1 %t147, label %wbody41, label %wend42
|
|
wbody41:
|
|
%t148 = load ptr, ptr @g_prog
|
|
%t149 = getelementptr inbounds %LSlice, ptr %t148, i32 0, i32 0
|
|
%t150 = load ptr, ptr %t149
|
|
%t151 = load i32, ptr %t52
|
|
%t152 = getelementptr inbounds ptr, ptr %t150, i32 %t151
|
|
%t153 = load ptr, ptr %t152
|
|
%t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 0
|
|
%t155 = load i32, ptr %t154
|
|
%t156 = icmp eq i32 %t155, 6
|
|
%t157 = zext i1 %t156 to i32
|
|
%t158 = icmp ne i32 %t157, 0
|
|
br i1 %t158, label %then43, label %ifend45
|
|
then43:
|
|
%t159 = load ptr, ptr @g_prog
|
|
%t160 = getelementptr inbounds %LSlice, ptr %t159, i32 0, i32 0
|
|
%t161 = load ptr, ptr %t160
|
|
%t162 = load i32, ptr %t52
|
|
%t163 = getelementptr inbounds ptr, ptr %t161, i32 %t162
|
|
%t164 = load ptr, ptr %t163
|
|
call void @fn_emit_main(ptr %t164)
|
|
br label %ifend45
|
|
ifend45:
|
|
%t165 = load i32, ptr %t52
|
|
%t166 = add i32 %t165, 1
|
|
store i32 %t166, ptr %t52
|
|
br label %wcond40
|
|
wend42:
|
|
br label %ifend39
|
|
ifend39:
|
|
br label %ifend30
|
|
ifend30:
|
|
%t167 = load i32, ptr @g_g_uses_loopback
|
|
%t168 = icmp ne i32 %t167, 0
|
|
br i1 %t168, label %then46, label %ifend48
|
|
then46:
|
|
call void @fn_emit_loopback()
|
|
br label %ifend48
|
|
ifend48:
|
|
%t169 = load i32, ptr @g_g_uses_str
|
|
%t170 = icmp ne i32 %t169, 0
|
|
br i1 %t170, label %then49, label %ifend51
|
|
then49:
|
|
call void @fn_emit_str_prelude()
|
|
br label %ifend51
|
|
ifend51:
|
|
%t171 = load i32, ptr @g_g_uses_intstr
|
|
%t172 = icmp ne i32 %t171, 0
|
|
br i1 %t172, label %then52, label %ifend54
|
|
then52:
|
|
call void @fn_emit_int_str()
|
|
br label %ifend54
|
|
ifend54:
|
|
%t173 = load i32, ptr @g_g_uses_strslice
|
|
%t174 = icmp ne i32 %t173, 0
|
|
br i1 %t174, label %then55, label %ifend57
|
|
then55:
|
|
call void @fn_emit_str_slice()
|
|
br label %ifend57
|
|
ifend57:
|
|
br label %ret
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @fn_ir_flush(ptr %arg_path) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t3 = alloca ptr
|
|
%t6 = alloca ptr
|
|
%t12 = alloca ptr
|
|
%t31 = alloca ptr
|
|
store ptr %arg_path, ptr %t0
|
|
%t1 = load ptr, ptr @g_head
|
|
%t2 = call ptr @fn_buf_str(ptr %t1)
|
|
store ptr %t2, ptr %t3
|
|
%t4 = load ptr, ptr @g_code
|
|
%t5 = call ptr @fn_buf_str(ptr %t4)
|
|
store ptr %t5, ptr %t6
|
|
%t7 = load ptr, ptr %t0
|
|
%t8 = icmp eq ptr %t7, null
|
|
%t9 = zext i1 %t8 to i32
|
|
%t10 = icmp ne i32 %t9, 0
|
|
br i1 %t10, label %then0, label %ifend2
|
|
then0:
|
|
%t11 = load ptr, ptr @__stdoutp
|
|
store ptr %t11, ptr %t12
|
|
%t13 = load ptr, ptr %t12
|
|
%t14 = load ptr, ptr %t3
|
|
%t15 = load ptr, ptr %t3
|
|
%t16 = call i64 @strlen(ptr %t15)
|
|
%t17 = trunc i64 %t16 to i32
|
|
%t18 = zext i32 %t17 to i64
|
|
%t19 = call i64 @fwrite(ptr %t14, i64 1, i64 %t18, ptr %t13)
|
|
%t20 = trunc i64 %t19 to i32
|
|
%t21 = load ptr, ptr %t12
|
|
%t22 = load ptr, ptr %t6
|
|
%t23 = load ptr, ptr %t6
|
|
%t24 = call i64 @strlen(ptr %t23)
|
|
%t25 = trunc i64 %t24 to i32
|
|
%t26 = zext i32 %t25 to i64
|
|
%t27 = call i64 @fwrite(ptr %t22, i64 1, i64 %t26, ptr %t21)
|
|
%t28 = trunc i64 %t27 to i32
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t29 = load ptr, ptr %t0
|
|
%t30 = call ptr @fopen(ptr %t29, ptr @.str3092)
|
|
store ptr %t30, ptr %t31
|
|
%t32 = load ptr, ptr %t31
|
|
%t33 = icmp eq ptr %t32, null
|
|
%t34 = zext i1 %t33 to i32
|
|
%t35 = icmp ne i32 %t34, 0
|
|
br i1 %t35, label %then3, label %ifend5
|
|
then3:
|
|
store i32 0, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t36 = load ptr, ptr %t31
|
|
%t37 = load ptr, ptr %t3
|
|
%t38 = load ptr, ptr %t3
|
|
%t39 = call i64 @strlen(ptr %t38)
|
|
%t40 = trunc i64 %t39 to i32
|
|
%t41 = zext i32 %t40 to i64
|
|
%t42 = call i64 @fwrite(ptr %t37, i64 1, i64 %t41, ptr %t36)
|
|
%t43 = trunc i64 %t42 to i32
|
|
%t44 = load ptr, ptr %t31
|
|
%t45 = load ptr, ptr %t6
|
|
%t46 = load ptr, ptr %t6
|
|
%t47 = call i64 @strlen(ptr %t46)
|
|
%t48 = trunc i64 %t47 to i32
|
|
%t49 = zext i32 %t48 to i64
|
|
%t50 = call i64 @fwrite(ptr %t45, i64 1, i64 %t49, ptr %t44)
|
|
%t51 = trunc i64 %t50 to i32
|
|
%t52 = load ptr, ptr %t31
|
|
call i32 @fclose(ptr %t52)
|
|
store i32 1, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t53 = load i32, ptr %retval
|
|
ret i32 %t53
|
|
}
|
|
|
|
define ptr @fn_base_name(ptr %arg_path) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
store ptr %arg_path, ptr %t0
|
|
%t1 = sub i32 0, 1
|
|
store i32 %t1, ptr %t2
|
|
store i32 0, ptr %t3
|
|
br label %wcond0
|
|
wcond0:
|
|
%t4 = load ptr, ptr %t0
|
|
%t5 = load i32, ptr %t3
|
|
%t6 = getelementptr inbounds i8, ptr %t4, i32 %t5
|
|
%t7 = load i8, ptr %t6
|
|
%t8 = zext i8 %t7 to i32
|
|
%t9 = icmp ne i32 %t8, 0
|
|
%t10 = zext i1 %t9 to i32
|
|
%t11 = icmp ne i32 %t10, 0
|
|
br i1 %t11, label %wbody1, label %wend2
|
|
wbody1:
|
|
%t12 = load ptr, ptr %t0
|
|
%t13 = load i32, ptr %t3
|
|
%t14 = getelementptr inbounds i8, ptr %t12, i32 %t13
|
|
%t15 = load i8, ptr %t14
|
|
%t16 = zext i8 %t15 to i32
|
|
%t17 = icmp eq i32 %t16, 47
|
|
%t18 = zext i1 %t17 to i32
|
|
%t19 = icmp ne i32 %t18, 0
|
|
br i1 %t19, label %then3, label %ifend5
|
|
then3:
|
|
%t20 = load i32, ptr %t3
|
|
store i32 %t20, ptr %t2
|
|
br label %ifend5
|
|
ifend5:
|
|
%t21 = load i32, ptr %t3
|
|
%t22 = add i32 %t21, 1
|
|
store i32 %t22, ptr %t3
|
|
br label %wcond0
|
|
wend2:
|
|
%t23 = load ptr, ptr %t0
|
|
%t24 = load i32, ptr %t2
|
|
%t25 = add i32 %t24, 1
|
|
%t26 = load i32, ptr %t3
|
|
%t27 = call ptr @fn_str_slice(ptr %t23, i32 %t25, i32 %t26)
|
|
store ptr %t27, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t28 = load ptr, ptr %retval
|
|
ret ptr %t28
|
|
}
|
|
|
|
define ptr @fn_strip_ludic(ptr %arg_name) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t4 = alloca i32
|
|
store ptr %arg_name, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i64 @strlen(ptr %t1)
|
|
%t3 = trunc i64 %t2 to i32
|
|
store i32 %t3, ptr %t4
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp sgt i32 %t5, 6
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %then0, label %ifend2
|
|
then0:
|
|
%t9 = load ptr, ptr %t0
|
|
%t10 = load i32, ptr %t4
|
|
%t11 = sub i32 %t10, 6
|
|
%t12 = load i32, ptr %t4
|
|
%t13 = call ptr @fn_str_slice(ptr %t9, i32 %t11, i32 %t12)
|
|
%t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str3093)
|
|
%t15 = icmp ne i32 %t14, 0
|
|
br i1 %t15, label %then3, label %ifend5
|
|
then3:
|
|
%t16 = load ptr, ptr %t0
|
|
%t17 = load i32, ptr %t4
|
|
%t18 = sub i32 %t17, 6
|
|
%t19 = call ptr @fn_str_slice(ptr %t16, i32 0, i32 %t18)
|
|
store ptr %t19, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
br label %ifend2
|
|
ifend2:
|
|
%t20 = load ptr, ptr %t0
|
|
store ptr %t20, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t21 = load ptr, ptr %retval
|
|
ret ptr %t21
|
|
}
|
|
|
|
define ptr @fn_getenv_or(ptr %arg_name, ptr %arg_dflt) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t4 = alloca ptr
|
|
store ptr %arg_name, ptr %t0
|
|
store ptr %arg_dflt, ptr %t1
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = call ptr @getenv(ptr %t2)
|
|
store ptr %t3, ptr %t4
|
|
%t5 = load ptr, ptr %t4
|
|
%t6 = icmp eq ptr %t5, null
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %then0, label %ifend2
|
|
then0:
|
|
%t9 = load ptr, ptr %t1
|
|
store ptr %t9, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t10 = load ptr, ptr %t4
|
|
store ptr %t10, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t11 = load ptr, ptr %retval
|
|
ret ptr %t11
|
|
}
|
|
|
|
define ptr @fn_ensure_slash(ptr %arg_d) {
|
|
entry:
|
|
%retval = alloca ptr
|
|
%t0 = alloca ptr
|
|
%t4 = alloca i32
|
|
store ptr %arg_d, ptr %t0
|
|
%t1 = load ptr, ptr %t0
|
|
%t2 = call i64 @strlen(ptr %t1)
|
|
%t3 = trunc i64 %t2 to i32
|
|
store i32 %t3, ptr %t4
|
|
%t5 = load i32, ptr %t4
|
|
%t6 = icmp eq i32 %t5, 0
|
|
%t7 = zext i1 %t6 to i32
|
|
%t8 = icmp ne i32 %t7, 0
|
|
br i1 %t8, label %then0, label %ifend2
|
|
then0:
|
|
%t9 = load ptr, ptr %t0
|
|
store ptr %t9, ptr %retval
|
|
br label %ret
|
|
ifend2:
|
|
%t10 = load ptr, ptr %t0
|
|
%t11 = load i32, ptr %t4
|
|
%t12 = sub i32 %t11, 1
|
|
%t13 = getelementptr inbounds i8, ptr %t10, i32 %t12
|
|
%t14 = load i8, ptr %t13
|
|
%t15 = zext i8 %t14 to i32
|
|
%t16 = icmp eq i32 %t15, 47
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %then3, label %ifend5
|
|
then3:
|
|
%t19 = load ptr, ptr %t0
|
|
store ptr %t19, ptr %retval
|
|
br label %ret
|
|
ifend5:
|
|
%t20 = load ptr, ptr %t0
|
|
%t21 = call ptr @fn_str_concat(ptr %t20, ptr @.str3094)
|
|
store ptr %t21, ptr %retval
|
|
br label %ret
|
|
ret:
|
|
%t22 = load ptr, ptr %retval
|
|
ret ptr %t22
|
|
}
|
|
|
|
define void @fn_die(ptr %arg_msg) {
|
|
entry:
|
|
%t0 = alloca ptr
|
|
store ptr %arg_msg, ptr %t0
|
|
%t1 = load ptr, ptr @__stderrp
|
|
%t2 = load ptr, ptr %t0
|
|
%t3 = load ptr, ptr %t0
|
|
%t4 = call i64 @strlen(ptr %t3)
|
|
%t5 = trunc i64 %t4 to i32
|
|
%t6 = zext i32 %t5 to i64
|
|
%t7 = call i64 @fwrite(ptr %t2, i64 1, i64 %t6, ptr %t1)
|
|
%t8 = trunc i64 %t7 to i32
|
|
call void @exit(i32 1)
|
|
unreachable
|
|
ret:
|
|
ret void
|
|
}
|
|
|
|
define i32 @main(i32 %argc, ptr %argv) {
|
|
entry:
|
|
%retval = alloca i32
|
|
%t0 = alloca ptr
|
|
%t1 = alloca ptr
|
|
%t2 = alloca i32
|
|
%t3 = alloca i32
|
|
%t4 = alloca i32
|
|
%t5 = alloca i32
|
|
%t6 = alloca i32
|
|
%t13 = alloca i32
|
|
%t23 = alloca ptr
|
|
%t66 = alloca ptr
|
|
%t84 = alloca ptr
|
|
%t94 = alloca i32
|
|
%t104 = alloca i32
|
|
%t113 = alloca i32
|
|
%t130 = alloca i32
|
|
%t147 = alloca ptr
|
|
%t159 = alloca ptr
|
|
%t166 = alloca ptr
|
|
%t173 = alloca ptr
|
|
%t178 = alloca ptr
|
|
%t183 = alloca ptr
|
|
%t195 = alloca i32
|
|
%t211 = alloca i32
|
|
store i32 %argc, ptr @L_argc
|
|
store ptr %argv, ptr @L_argv
|
|
store i32 0, ptr %retval
|
|
store ptr null, ptr %t0
|
|
store ptr null, ptr %t1
|
|
store i32 0, ptr %t2
|
|
store i32 0, ptr %t3
|
|
store i32 0, ptr %t4
|
|
store i32 0, ptr %t5
|
|
store i32 0, ptr %t6
|
|
%t7 = load ptr, ptr @L_argv
|
|
%t8 = getelementptr ptr, ptr %t7, i32 0
|
|
%t9 = load ptr, ptr %t8
|
|
%t10 = call ptr @fn_base_name(ptr %t9)
|
|
%t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str3095)
|
|
%t12 = icmp ne i32 %t11, 0
|
|
br i1 %t12, label %then0, label %ifend2
|
|
then0:
|
|
store i32 1, ptr %t6
|
|
br label %ifend2
|
|
ifend2:
|
|
store i32 1, ptr %t13
|
|
br label %wcond3
|
|
wcond3:
|
|
%t14 = load i32, ptr %t13
|
|
%t15 = load i32, ptr @L_argc
|
|
%t16 = icmp slt i32 %t14, %t15
|
|
%t17 = zext i1 %t16 to i32
|
|
%t18 = icmp ne i32 %t17, 0
|
|
br i1 %t18, label %wbody4, label %wend5
|
|
wbody4:
|
|
%t19 = load i32, ptr %t13
|
|
%t20 = load ptr, ptr @L_argv
|
|
%t21 = getelementptr ptr, ptr %t20, i32 %t19
|
|
%t22 = load ptr, ptr %t21
|
|
store ptr %t22, ptr %t23
|
|
%t24 = load ptr, ptr %t23
|
|
%t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str3096)
|
|
%t26 = icmp ne i32 %t25, 0
|
|
br i1 %t26, label %then6, label %else7
|
|
then6:
|
|
store i32 1, ptr %t2
|
|
br label %ifend8
|
|
else7:
|
|
%t27 = load ptr, ptr %t23
|
|
%t28 = call i32 @fn_str_eq(ptr %t27, ptr @.str3097)
|
|
%t29 = icmp ne i32 %t28, 0
|
|
br i1 %t29, label %then9, label %else10
|
|
then9:
|
|
store i32 2, ptr %t2
|
|
br label %ifend11
|
|
else10:
|
|
%t30 = load ptr, ptr %t23
|
|
%t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str3098)
|
|
%t32 = icmp ne i32 %t31, 0
|
|
br i1 %t32, label %then12, label %else13
|
|
then12:
|
|
store i32 1, ptr %t3
|
|
br label %ifend14
|
|
else13:
|
|
%t33 = load ptr, ptr %t23
|
|
%t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str3099)
|
|
%t35 = icmp ne i32 %t34, 0
|
|
br i1 %t35, label %then15, label %else16
|
|
then15:
|
|
store i32 1, ptr %t4
|
|
br label %ifend17
|
|
else16:
|
|
%t36 = load ptr, ptr %t23
|
|
%t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str3100)
|
|
%t38 = icmp ne i32 %t37, 0
|
|
br i1 %t38, label %then18, label %else19
|
|
then18:
|
|
store i32 1, ptr %t5
|
|
br label %ifend20
|
|
else19:
|
|
%t39 = load ptr, ptr %t23
|
|
%t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str3101)
|
|
%t41 = icmp ne i32 %t40, 0
|
|
br i1 %t41, label %then21, label %else22
|
|
then21:
|
|
store i32 1, ptr %t6
|
|
br label %ifend23
|
|
else22:
|
|
%t42 = load ptr, ptr %t23
|
|
%t43 = call i32 @fn_str_eq(ptr %t42, ptr @.str3102)
|
|
%t44 = icmp ne i32 %t43, 0
|
|
br i1 %t44, label %then24, label %else25
|
|
then24:
|
|
%t45 = load i32, ptr %t13
|
|
%t46 = add i32 %t45, 1
|
|
store i32 %t46, ptr %t13
|
|
%t47 = load i32, ptr %t13
|
|
%t48 = load i32, ptr @L_argc
|
|
%t49 = icmp slt i32 %t47, %t48
|
|
%t50 = zext i1 %t49 to i32
|
|
%t51 = icmp ne i32 %t50, 0
|
|
br i1 %t51, label %then27, label %ifend29
|
|
then27:
|
|
%t52 = load i32, ptr %t13
|
|
%t53 = load ptr, ptr @L_argv
|
|
%t54 = getelementptr ptr, ptr %t53, i32 %t52
|
|
%t55 = load ptr, ptr %t54
|
|
store ptr %t55, ptr %t1
|
|
br label %ifend29
|
|
ifend29:
|
|
br label %ifend26
|
|
else25:
|
|
%t56 = load ptr, ptr %t23
|
|
%t57 = getelementptr inbounds i8, ptr %t56, i32 0
|
|
%t58 = load i8, ptr %t57
|
|
%t59 = zext i8 %t58 to i32
|
|
%t60 = icmp eq i32 %t59, 45
|
|
%t61 = zext i1 %t60 to i32
|
|
%t62 = icmp ne i32 %t61, 0
|
|
br i1 %t62, label %then30, label %else31
|
|
then30:
|
|
%t63 = load ptr, ptr %t23
|
|
%t64 = call ptr @fn_str_concat(ptr @.str3103, ptr %t63)
|
|
%t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str3104)
|
|
store ptr %t65, ptr %t66
|
|
%t67 = load ptr, ptr @__stderrp
|
|
%t68 = load ptr, ptr %t66
|
|
%t69 = load ptr, ptr %t66
|
|
%t70 = call i64 @strlen(ptr %t69)
|
|
%t71 = trunc i64 %t70 to i32
|
|
%t72 = zext i32 %t71 to i64
|
|
%t73 = call i64 @fwrite(ptr %t68, i64 1, i64 %t72, ptr %t67)
|
|
%t74 = trunc i64 %t73 to i32
|
|
br label %ifend32
|
|
else31:
|
|
%t75 = load ptr, ptr %t23
|
|
store ptr %t75, ptr %t0
|
|
br label %ifend32
|
|
ifend32:
|
|
br label %ifend26
|
|
ifend26:
|
|
br label %ifend23
|
|
ifend23:
|
|
br label %ifend20
|
|
ifend20:
|
|
br label %ifend17
|
|
ifend17:
|
|
br label %ifend14
|
|
ifend14:
|
|
br label %ifend11
|
|
ifend11:
|
|
br label %ifend8
|
|
ifend8:
|
|
%t76 = load i32, ptr %t13
|
|
%t77 = add i32 %t76, 1
|
|
store i32 %t77, ptr %t13
|
|
br label %wcond3
|
|
wend5:
|
|
%t78 = load ptr, ptr %t0
|
|
%t79 = icmp eq ptr %t78, null
|
|
%t80 = zext i1 %t79 to i32
|
|
%t81 = icmp ne i32 %t80, 0
|
|
br i1 %t81, label %then33, label %ifend35
|
|
then33:
|
|
call void @fn_die(ptr @.str3105)
|
|
br label %ifend35
|
|
ifend35:
|
|
%t82 = load ptr, ptr %t0
|
|
%t83 = call ptr @fn_read_file(ptr %t82)
|
|
store ptr %t83, ptr %t84
|
|
%t85 = load ptr, ptr %t84
|
|
%t86 = icmp eq ptr %t85, null
|
|
%t87 = zext i1 %t86 to i32
|
|
%t88 = icmp ne i32 %t87, 0
|
|
br i1 %t88, label %then36, label %ifend38
|
|
then36:
|
|
call void @fn_die(ptr @.str3106)
|
|
br label %ifend38
|
|
ifend38:
|
|
%t89 = load ptr, ptr %t0
|
|
%t90 = call ptr @fn_dir_of(ptr %t89)
|
|
store ptr %t90, ptr @g_cur_dir
|
|
%t91 = load ptr, ptr %t84
|
|
call void @fn_lex(ptr %t91)
|
|
call void @fn_parse_program()
|
|
%t92 = load i32, ptr %t4
|
|
%t93 = icmp ne i32 %t92, 0
|
|
br i1 %t93, label %then39, label %ifend41
|
|
then39:
|
|
call void @exit(i32 0)
|
|
unreachable
|
|
ifend41:
|
|
call void @fn_maybe_splice_runtime()
|
|
%t95 = load i32, ptr %t6
|
|
%t96 = icmp ne i32 %t95, 0
|
|
%t97 = zext i1 %t96 to i32
|
|
store i32 %t97, ptr %t94
|
|
br i1 %t96, label %scend43, label %sc42
|
|
sc42:
|
|
%t98 = load ptr, ptr %t1
|
|
%t99 = icmp ne ptr %t98, null
|
|
%t100 = zext i1 %t99 to i32
|
|
%t101 = icmp ne i32 %t100, 0
|
|
%t102 = zext i1 %t101 to i32
|
|
store i32 %t102, ptr %t94
|
|
br label %scend43
|
|
scend43:
|
|
%t103 = load i32, ptr %t94
|
|
store i32 %t103, ptr %t104
|
|
%t105 = load i32, ptr %t2
|
|
%t106 = icmp eq i32 %t105, 1
|
|
%t107 = zext i1 %t106 to i32
|
|
%t108 = icmp ne i32 %t107, 0
|
|
br i1 %t108, label %then44, label %else45
|
|
then44:
|
|
store i32 1, ptr @g_g_windowed
|
|
br label %ifend46
|
|
else45:
|
|
%t109 = load i32, ptr %t2
|
|
%t110 = icmp eq i32 %t109, 2
|
|
%t111 = zext i1 %t110 to i32
|
|
%t112 = icmp ne i32 %t111, 0
|
|
br i1 %t112, label %then47, label %else48
|
|
then47:
|
|
store i32 0, ptr @g_g_windowed
|
|
br label %ifend49
|
|
else48:
|
|
%t114 = load i32, ptr %t104
|
|
%t115 = icmp ne i32 %t114, 0
|
|
%t116 = zext i1 %t115 to i32
|
|
store i32 %t116, ptr %t113
|
|
br i1 %t115, label %sc50, label %scend51
|
|
sc50:
|
|
%t117 = call i32 @fn_has_systems()
|
|
%t118 = icmp ne i32 %t117, 0
|
|
%t119 = zext i1 %t118 to i32
|
|
store i32 %t119, ptr %t113
|
|
br label %scend51
|
|
scend51:
|
|
%t120 = load i32, ptr %t113
|
|
store i32 %t120, ptr @g_g_windowed
|
|
br label %ifend49
|
|
ifend49:
|
|
br label %ifend46
|
|
ifend46:
|
|
call void @fn_emit_program()
|
|
%t121 = load i32, ptr %t3
|
|
%t122 = icmp ne i32 %t121, 0
|
|
br i1 %t122, label %then52, label %ifend54
|
|
then52:
|
|
%t123 = load ptr, ptr %t1
|
|
%t124 = call i32 @fn_ir_flush(ptr %t123)
|
|
br label %ret
|
|
ifend54:
|
|
%t125 = load i32, ptr %t104
|
|
%t126 = icmp eq i32 %t125, 0
|
|
%t127 = zext i1 %t126 to i32
|
|
%t128 = icmp ne i32 %t127, 0
|
|
br i1 %t128, label %then55, label %ifend57
|
|
then55:
|
|
%t129 = call i32 @fn_ir_flush(ptr null)
|
|
br label %ret
|
|
ifend57:
|
|
%t131 = load i32, ptr %t6
|
|
%t132 = icmp ne i32 %t131, 0
|
|
%t133 = zext i1 %t132 to i32
|
|
store i32 %t133, ptr %t130
|
|
br i1 %t132, label %sc58, label %scend59
|
|
sc58:
|
|
%t134 = load ptr, ptr %t1
|
|
%t135 = icmp eq ptr %t134, null
|
|
%t136 = zext i1 %t135 to i32
|
|
%t137 = icmp ne i32 %t136, 0
|
|
%t138 = zext i1 %t137 to i32
|
|
store i32 %t138, ptr %t130
|
|
br label %scend59
|
|
scend59:
|
|
%t139 = load i32, ptr %t130
|
|
%t140 = icmp ne i32 %t139, 0
|
|
br i1 %t140, label %then60, label %ifend62
|
|
then60:
|
|
%t141 = load ptr, ptr %t0
|
|
%t142 = call ptr @fn_base_name(ptr %t141)
|
|
%t143 = call ptr @fn_strip_ludic(ptr %t142)
|
|
%t144 = call ptr @fn_str_concat(ptr @.str3107, ptr %t143)
|
|
store ptr %t144, ptr %t1
|
|
br label %ifend62
|
|
ifend62:
|
|
%t145 = load ptr, ptr %t1
|
|
%t146 = call ptr @fn_dir_of(ptr %t145)
|
|
store ptr %t146, ptr %t147
|
|
%t148 = load ptr, ptr %t147
|
|
%t149 = call i64 @strlen(ptr %t148)
|
|
%t150 = trunc i64 %t149 to i32
|
|
%t151 = icmp sgt i32 %t150, 0
|
|
%t152 = zext i1 %t151 to i32
|
|
%t153 = icmp ne i32 %t152, 0
|
|
br i1 %t153, label %then63, label %ifend65
|
|
then63:
|
|
%t154 = load ptr, ptr %t147
|
|
%t155 = call ptr @fn_str_concat(ptr @.str3108, ptr %t154)
|
|
%t156 = call i32 @system(ptr %t155)
|
|
br label %ifend65
|
|
ifend65:
|
|
%t157 = load ptr, ptr %t1
|
|
%t158 = call ptr @fn_str_concat(ptr %t157, ptr @.str3109)
|
|
store ptr %t158, ptr %t159
|
|
%t160 = load ptr, ptr %t159
|
|
%t161 = call i32 @fn_ir_flush(ptr %t160)
|
|
%t162 = icmp eq i32 %t161, 0
|
|
%t163 = zext i1 %t162 to i32
|
|
%t164 = icmp ne i32 %t163, 0
|
|
br i1 %t164, label %then66, label %ifend68
|
|
then66:
|
|
call void @fn_die(ptr @.str3110)
|
|
br label %ifend68
|
|
ifend68:
|
|
%t165 = call ptr @fn_getenv_or(ptr @.str3111, ptr @.str3112)
|
|
store ptr %t165, ptr %t166
|
|
%t167 = load ptr, ptr @L_argv
|
|
%t168 = getelementptr ptr, ptr %t167, i32 0
|
|
%t169 = load ptr, ptr %t168
|
|
%t170 = call ptr @fn_dir_of(ptr %t169)
|
|
%t171 = call ptr @fn_getenv_or(ptr @.str3113, ptr %t170)
|
|
%t172 = call ptr @fn_ensure_slash(ptr %t171)
|
|
store ptr %t172, ptr %t173
|
|
%t174 = load ptr, ptr %t166
|
|
%t175 = call ptr @fn_str_concat(ptr %t174, ptr @.str3114)
|
|
%t176 = load ptr, ptr %t159
|
|
%t177 = call ptr @fn_str_concat(ptr %t175, ptr %t176)
|
|
store ptr %t177, ptr %t178
|
|
%t179 = load i32, ptr @g_g_windowed
|
|
%t180 = icmp ne i32 %t179, 0
|
|
br i1 %t180, label %then69, label %ifend71
|
|
then69:
|
|
%t181 = load ptr, ptr %t173
|
|
%t182 = call ptr @fn_path_join(ptr %t181, ptr @.str3115)
|
|
store ptr %t182, ptr %t183
|
|
%t184 = load ptr, ptr %t178
|
|
%t185 = call ptr @fn_str_concat(ptr %t184, ptr @.str3116)
|
|
%t186 = load ptr, ptr %t183
|
|
%t187 = call ptr @fn_str_concat(ptr %t185, ptr %t186)
|
|
%t188 = call ptr @fn_str_concat(ptr %t187, ptr @.str3117)
|
|
store ptr %t188, ptr %t178
|
|
br label %ifend71
|
|
ifend71:
|
|
%t189 = load ptr, ptr %t178
|
|
%t190 = call ptr @fn_str_concat(ptr %t189, ptr @.str3118)
|
|
%t191 = load ptr, ptr %t1
|
|
%t192 = call ptr @fn_str_concat(ptr %t190, ptr %t191)
|
|
store ptr %t192, ptr %t178
|
|
%t193 = load ptr, ptr %t178
|
|
%t194 = call i32 @system(ptr %t193)
|
|
store i32 %t194, ptr %t195
|
|
%t196 = load i32, ptr %t5
|
|
%t197 = icmp eq i32 %t196, 0
|
|
%t198 = zext i1 %t197 to i32
|
|
%t199 = icmp ne i32 %t198, 0
|
|
br i1 %t199, label %then72, label %ifend74
|
|
then72:
|
|
%t200 = load ptr, ptr %t159
|
|
%t201 = call ptr @fn_str_concat(ptr @.str3119, ptr %t200)
|
|
%t202 = call i32 @system(ptr %t201)
|
|
br label %ifend74
|
|
ifend74:
|
|
%t203 = load i32, ptr %t195
|
|
%t204 = icmp ne i32 %t203, 0
|
|
%t205 = zext i1 %t204 to i32
|
|
%t206 = icmp ne i32 %t205, 0
|
|
br i1 %t206, label %then75, label %ifend77
|
|
then75:
|
|
call void @fn_die(ptr @.str3120)
|
|
br label %ifend77
|
|
ifend77:
|
|
%t207 = load i32, ptr %t6
|
|
%t208 = icmp ne i32 %t207, 0
|
|
br i1 %t208, label %then78, label %ifend80
|
|
then78:
|
|
%t209 = load ptr, ptr %t1
|
|
%t210 = call i32 @system(ptr %t209)
|
|
store i32 %t210, ptr %t211
|
|
%t212 = load i32, ptr %t211
|
|
%t213 = lshr i32 %t212, 8
|
|
%t214 = and i32 %t213, 255
|
|
call void @exit(i32 %t214)
|
|
unreachable
|
|
ifend80:
|
|
br label %ret
|
|
ret:
|
|
%t215 = load i32, ptr %retval
|
|
ret i32 %t215
|
|
}
|