diff --git a/LANGUAGE.md b/LANGUAGE.md index 948cf0c3..2fbfd1b3 100644 --- a/LANGUAGE.md +++ b/LANGUAGE.md @@ -581,7 +581,9 @@ Operators are built-in only (no overloading). The boolean operators are spelled rejected with a diagnostic naming the fix (`!=` is unaffected). Bitwise operators are **`& | ^ << >> ~`** (`>>` is a logical/unsigned shift). `expr with { field: … }` is not implemented; records appear only in `spawn`. Char literals (`'w'`) are -`int` code points; colors are hex ints (`0xff8800`). +`int` code points; colors are hex ints (`0xff8800`). `null` is the null-pointer +literal; test any pointer/record/slice with `x == null` / `x != null` (an unset +`Node`/`ptr` field reads back as `null`). ## Builtins (the standard library / runtime surface) diff --git a/runtime/native/core.ludic b/runtime/native/core.ludic index 75d3604f..6fac29d1 100644 --- a/runtime/native/core.ludic +++ b/runtime/native/core.ludic @@ -20,10 +20,10 @@ # ============================================================================ # ---- state ---------------------------------------------------------------- -var rt_fb: ptr = ptr_null() # framebuffer, one i32 (0x00RRGGBB) per pixel +var rt_fb: ptr = null # framebuffer, one i32 (0x00RRGGBB) per pixel var rt_fbw: int = 320 var rt_fbh: int = 240 -var rt_regs: ptr = ptr_null() # the 64 general-purpose game registers +var rt_regs: ptr = null # the 64 general-purpose game registers var rt_rng: int = 305419896 # xorshift32 state var rt_alive: int = 1 # platform still running? @@ -277,7 +277,7 @@ fn rt_put_int(buf: ptr, at: int, v: int) -> int { fn rt_dump_ppm(path: str) -> void { let f = file_open(path, "wb") - if ptr_is_null(f) { return } + if (f == null) { return } let hdr = mem_alloc(64) var n = rt_put_str(hdr, 0, "P6\n") @@ -310,7 +310,7 @@ import "ui.ludic" # A character grid the game paints with map_row() and reads with tile(). Stored # as one byte per cell in a flat buffer; out-of-bounds reads answer '#' so a # caller can treat the edge of the world as wall without special-casing it. -var rt_map: ptr = ptr_null() +var rt_map: ptr = null var rt_mapw: int = 0 var rt_maph: int = 0 @@ -344,7 +344,7 @@ fn rt_tile(x: int, y: int) -> int { # ---- status line ---------------------------------------------------------- # One persistent string of feedback/dialogue, copied into runtime-owned memory # so it survives whatever the caller does with the original. -var rt_statusbuf: ptr = ptr_null() +var rt_statusbuf: ptr = null fn rt_status(s: str) -> void { var i = 0 diff --git a/runtime/native/image.ludic b/runtime/native/image.ludic index 383dffc7..9870944b 100644 --- a/runtime/native/image.ludic +++ b/runtime/native/image.ludic @@ -13,12 +13,12 @@ const IMG_MAX: int = 32 const SPR_MAX: int = 160 const SPR_SZ: int = 16 -var img_px: ptr = ptr_null() # IMG_MAX pointers to RGBA buffers -var img_w: ptr = ptr_null() -var img_h: ptr = ptr_null() +var img_px: ptr = null # IMG_MAX pointers to RGBA buffers +var img_w: ptr = null +var img_h: ptr = null var img_n: int = 0 -var spr_px: ptr = ptr_null() # SPR_MAX * 16 * 16 RGBA pixels, one block +var spr_px: ptr = null # SPR_MAX * 16 * 16 RGBA pixels, one block var spr_n: int = 0 fn rt_image_init() -> void { @@ -44,11 +44,11 @@ fn png_tag(b: ptr, at: int, a: int, c: int, d: int, e: int) -> bool { fn rt_read_file(path: str) -> ptr { let f = file_open(path, "rb") - if ptr_is_null(f) { return ptr_null() } + if (f == null) { return null } file_seek(f, 0, 2) let n = file_tell(f) file_seek(f, 0, 0) - if n <= 0 { file_close(f); return ptr_null() } + if n <= 0 { file_close(f); return null } let buf = mem_alloc(n + 8) file_read(f, buf, n) file_close(f) @@ -60,14 +60,14 @@ var rt_file_len: int = 0 # decoded image is left in these; -1 width means failure var png_w: int = 0 var png_h: int = 0 -var png_px: ptr = ptr_null() +var png_px: ptr = null fn rt_decode_png(path: str) -> bool { png_w = 0 png_h = 0 - png_px = ptr_null() + png_px = null let d = rt_read_file(path) - if ptr_is_null(d) { return false } + if (d == null) { return false } let size = rt_file_len if size < 8 { mem_free(d); return false } if peek8(d, 0) != 137 { mem_free(d); return false } @@ -334,7 +334,7 @@ fn rt_png_load(path: str) -> int { } } mem_free(png_px) - png_px = ptr_null() + png_px = null return id } @@ -377,7 +377,7 @@ fn rt_hexval(c: int) -> int { fn rt_sprites_load(path: str) -> void { let d = rt_read_file(path) - if ptr_is_null(d) { spr_n = 0; return } + if (d == null) { spr_n = 0; return } let size = rt_file_len let pal = mem_alloc(128 * 4) mem_set(pal, 0, 128 * 4) diff --git a/runtime/native/inflate.ludic b/runtime/native/inflate.ludic index 2a057fa8..e6b30291 100644 --- a/runtime/native/inflate.ludic +++ b/runtime/native/inflate.ludic @@ -13,7 +13,7 @@ # ============================================================================ # ---- bit reader (DEFLATE packs bits least-significant-first) --------------- -var z_src: ptr = ptr_null() +var z_src: ptr = null var z_len: int = 0 var z_pos: int = 0 var z_bitbuf: int = 0 diff --git a/runtime/native/truetype.ludic b/runtime/native/truetype.ludic index a89d9be2..98d406af 100644 --- a/runtime/native/truetype.ludic +++ b/runtime/native/truetype.ludic @@ -18,50 +18,50 @@ const TT_EDGES: int = 16384 # line segments in one glyph const TT_GC: int = 512 # glyph cache entries # ---- per-font tables (parallel arrays; index = font id) ------------------- -var tt_data: ptr = ptr_null() -var tt_size: ptr = ptr_null() -var tt_upem: ptr = ptr_null() -var tt_nglyf: ptr = ptr_null() -var tt_locfm: ptr = ptr_null() -var tt_nhm: ptr = ptr_null() -var tt_asc: ptr = ptr_null() -var tt_desc: ptr = ptr_null() -var tt_gap: ptr = ptr_null() -var tt_glyf: ptr = ptr_null() -var tt_loca: ptr = ptr_null() -var tt_hmtx: ptr = ptr_null() -var tt_cmap: ptr = ptr_null() -var tt_cfmt: ptr = ptr_null() +var tt_data: ptr = null +var tt_size: ptr = null +var tt_upem: ptr = null +var tt_nglyf: ptr = null +var tt_locfm: ptr = null +var tt_nhm: ptr = null +var tt_asc: ptr = null +var tt_desc: ptr = null +var tt_gap: ptr = null +var tt_glyf: ptr = null +var tt_loca: ptr = null +var tt_hmtx: ptr = null +var tt_cmap: ptr = null +var tt_cfmt: ptr = null var tt_n: int = 0 # ---- outline + edge scratch (reused for every glyph) ---------------------- -var ol_x: ptr = ptr_null() -var ol_y: ptr = ptr_null() -var ol_on: ptr = ptr_null() -var ol_ends: ptr = ptr_null() +var ol_x: ptr = null +var ol_y: ptr = null +var ol_on: ptr = null +var ol_ends: ptr = null var ol_n: int = 0 var ol_ne: int = 0 -var ed_x0: ptr = ptr_null() -var ed_y0: ptr = ptr_null() -var ed_x1: ptr = ptr_null() -var ed_y1: ptr = ptr_null() +var ed_x0: ptr = null +var ed_y0: ptr = null +var ed_x1: ptr = null +var ed_y1: ptr = null var ed_n: int = 0 -var sc_x: ptr = ptr_null() # scanline crossings -var sc_d: ptr = ptr_null() +var sc_x: ptr = null # scanline crossings +var sc_d: ptr = null # ---- glyph cache ---------------------------------------------------------- -var gc_used: ptr = ptr_null() -var gc_font: ptr = ptr_null() -var gc_cp: ptr = ptr_null() -var gc_px: ptr = ptr_null() -var gc_w: ptr = ptr_null() -var gc_h: ptr = ptr_null() -var gc_ox: ptr = ptr_null() -var gc_oy: ptr = ptr_null() -var gc_adv: ptr = ptr_null() -var gc_bmp: ptr = ptr_null() +var gc_used: ptr = null +var gc_font: ptr = null +var gc_cp: ptr = null +var gc_px: ptr = null +var gc_w: ptr = null +var gc_h: ptr = null +var gc_ox: ptr = null +var gc_oy: ptr = null +var gc_adv: ptr = null +var gc_bmp: ptr = null fn rt_tt_init() -> void { tt_data = mem_alloc(TT_MAX * 8) @@ -169,7 +169,7 @@ fn tt_pick_cmap(id: int, d: ptr, co: int) -> void { fn rt_font_load(path: str) -> int { if tt_n >= TT_MAX { return 0 - 1 } let d = rt_read_file(path) - if ptr_is_null(d) { return 0 - 1 } + if (d == null) { return 0 - 1 } let size = rt_file_len var base = 0 # a .ttc collection points at its first font diff --git a/runtime/native/truetype_raster.ludic b/runtime/native/truetype_raster.ludic index db704eba..a37a7cc7 100644 --- a/runtime/native/truetype_raster.ludic +++ b/runtime/native/truetype_raster.ludic @@ -61,7 +61,7 @@ fn tt_raster(id: int, gid: int, px: int) -> ptr { ol_ne = 0 ed_n = 0 tt_load_outline(id, gid, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0) - if ol_n == 0 { return ptr_null() } + if ol_n == 0 { return null } var minx = 999999.0 var miny = 999999.0 @@ -83,10 +83,10 @@ fn tt_raster(id: int, gid: int, px: int) -> ptr { if maxy == fx(flr(maxy)) { y1 = flr(maxy) } let W = x1 - x0 let H = y1 - y0 - if W <= 0 { return ptr_null() } - if H <= 0 { return ptr_null() } - if W > 1024 { return ptr_null() } - if H > 1024 { return ptr_null() } + if W <= 0 { return null } + if H <= 0 { return null } + if W > 1024 { return null } + if H > 1024 { return null } gr_w = W gr_h = H gr_ox = x0 @@ -250,7 +250,7 @@ fn tt_glyph_get(font: int, cp: int, px: int) -> int { let s = h if peek32(gc_used, s) == 1 { let old = peekp(gc_bmp, s) - if ptr_is_null(old) == false { mem_free(old) } + if (old == null) == false { mem_free(old) } } let bmp = tt_raster(font, tt_glyph_index(font, cp), px) pokep(gc_bmp, s, bmp) @@ -299,7 +299,7 @@ fn tt_utf8(s: str, at: int) -> int { # ---- drawing -------------------------------------------------------------- fn tt_blit(bmp: ptr, w: int, h: int, dx: int, dy: int, colour: int) -> void { - if ptr_is_null(bmp) { return } + if (bmp == null) { return } let cr = ((colour >> 16) & 255) let cg = ((colour >> 8) & 255) let cb = (colour & 255) diff --git a/runtime/native/ui.ludic b/runtime/native/ui.ludic index 9750b7e6..7864615d 100644 --- a/runtime/native/ui.ludic +++ b/runtime/native/ui.ludic @@ -45,35 +45,35 @@ const K_VISIBLE: int = 18 const K_IMG: int = 19 const K_SKIN: int = 20 -var ui_type: ptr = ptr_null() -var ui_parent: ptr = ptr_null() -var ui_w: ptr = ptr_null() -var ui_h: ptr = ptr_null() -var ui_x: ptr = ptr_null() -var ui_y: ptr = ptr_null() -var ui_haspos: ptr = ptr_null() -var ui_pad: ptr = ptr_null() -var ui_gap: ptr = ptr_null() -var ui_bg: ptr = ptr_null() -var ui_fg: ptr = ptr_null() -var ui_border: ptr = ptr_null() -var ui_align: ptr = ptr_null() -var ui_grow: ptr = ptr_null() -var ui_font: ptr = ptr_null() -var ui_size: ptr = ptr_null() -var ui_skin: ptr = ptr_null() -var ui_inset: ptr = ptr_null() -var ui_img: ptr = ptr_null() -var ui_focusable: ptr = ptr_null() -var ui_rx: ptr = ptr_null() -var ui_ry: ptr = ptr_null() -var ui_rw: ptr = ptr_null() -var ui_rh: ptr = ptr_null() -var ui_visible: ptr = ptr_null() -var ui_fired: ptr = ptr_null() -var ui_hasdyn: ptr = ptr_null() -var ui_dyn: ptr = ptr_null() # UI_MAX * 96 bytes -var ui_text: ptr = ptr_null() # UI_MAX static string pointers +var ui_type: ptr = null +var ui_parent: ptr = null +var ui_w: ptr = null +var ui_h: ptr = null +var ui_x: ptr = null +var ui_y: ptr = null +var ui_haspos: ptr = null +var ui_pad: ptr = null +var ui_gap: ptr = null +var ui_bg: ptr = null +var ui_fg: ptr = null +var ui_border: ptr = null +var ui_align: ptr = null +var ui_grow: ptr = null +var ui_font: ptr = null +var ui_size: ptr = null +var ui_skin: ptr = null +var ui_inset: ptr = null +var ui_img: ptr = null +var ui_focusable: ptr = null +var ui_rx: ptr = null +var ui_ry: ptr = null +var ui_rw: ptr = null +var ui_rh: ptr = null +var ui_visible: ptr = null +var ui_fired: ptr = null +var ui_hasdyn: ptr = null +var ui_dyn: ptr = null # UI_MAX * 96 bytes +var ui_text: ptr = null # UI_MAX static string pointers var ui_n: int = 0 var ui_active: int = -1 @@ -138,7 +138,7 @@ fn rt_ui_reset(n: int) -> void { poke32(ui_visible, i, 1) poke32(ui_fired, i, 0) poke32(ui_hasdyn, i, 0) - pokep(ui_text, i, ptr_null()) + pokep(ui_text, i, null) } } @@ -178,7 +178,7 @@ fn rt_ui_static_text(i: int, s: str) -> void { fn ui_str(i: int) -> ptr { if peek32(ui_hasdyn, i) == 1 { return ptr_add(ui_dyn, i * 96) } let t = peekp(ui_text, i) - if ptr_is_null(t) { return ptr_add(ui_dyn, i * 96) } + if (t == null) { return ptr_add(ui_dyn, i * 96) } return t } diff --git a/runtime/native/ui_draw.ludic b/runtime/native/ui_draw.ludic index b3a9868d..029d6ac4 100644 --- a/runtime/native/ui_draw.ludic +++ b/runtime/native/ui_draw.ludic @@ -146,10 +146,10 @@ fn ui_draw_node(i: int) -> void { } # ---- focus and activation ------------------------------------------------- -var ui_fl: ptr = ptr_null() +var ui_fl: ptr = null fn ui_focusables() -> int { - if ptr_is_null(ui_fl) { ui_fl = mem_alloc(UI_MAX * 4) } + if (ui_fl == null) { ui_fl = mem_alloc(UI_MAX * 4) } var n = 0 for i in 0 .. ui_n { if peek32(ui_focusable, i) == 1 { diff --git a/selfhost/ast.ludic b/selfhost/ast.ludic index 90c7e899..c1a8c030 100644 --- a/selfhost/ast.ludic +++ b/selfhost/ast.ludic @@ -49,12 +49,13 @@ const E_NEW: int = 39 const E_FLOAT: int = 40 const E_REC: int = 41 const E_FINIT: int = 42 +const E_NULL: int = 43 # the `null` pointer literal property Node { kind: int = 0 - s: ptr = ptr_null() # name / operator / string / type-of-new + s: ptr = null # name / operator / string / type-of-new ival: int = 0 # int literal, bool, flags - ty: ptr = ptr_null() # declared type (let/param/field/fn/var/const) + ty: ptr = null # declared type (let/param/field/fn/var/const) a: Node # fixed children (meaning per kind) b: Node c: Node diff --git a/selfhost/buf.ludic b/selfhost/buf.ludic index 336f0ff3..153ef759 100644 --- a/selfhost/buf.ludic +++ b/selfhost/buf.ludic @@ -2,7 +2,7 @@ # module-level material (types, globals, string constants) into one buffer and # function bodies into another, then prints them in order. -property Buf { data: ptr = ptr_null(), len: int = 0, cap: int = 0 } +property Buf { data: ptr = null, len: int = 0, cap: int = 0 } fn buf_new() -> Buf { let b = new Buf diff --git a/selfhost/emit_addr.ludic b/selfhost/emit_addr.ludic index ff3471ff..a9116146 100644 --- a/selfhost/emit_addr.ludic +++ b/selfhost/emit_addr.ludic @@ -8,7 +8,7 @@ var g_addr_ty: ptr # out-param: the type at the computed address fn emit_member_addr(e: Node) -> ptr { let base = emit_expr(e.a) let s = layout_node(base.ty) - if ptr_is_null(s) { perr(sconcat("member access on non-aggregate ", base.ty)) } + if (s == null) { perr(sconcat("member access on non-aggregate ", base.ty)) } let fidx = field_index(s, e.s) if fidx < 0 { perr(sconcat("no such field ", e.s)) } g_addr_ty = field_type(s, e.s) diff --git a/selfhost/emit_core.ludic b/selfhost/emit_core.ludic index d5bc3a66..3229569e 100644 --- a/selfhost/emit_core.ludic +++ b/selfhost/emit_core.ludic @@ -2,7 +2,7 @@ # module header. Mirrors the pieces of compiler/back/ that this subset needs. # structs and slices are references, so every non-scalar type lowers to `ptr`. -property Val { code: ptr = ptr_null(), ty: ptr = ptr_null() } +property Val { code: ptr = null, ty: ptr = null } fn val(code: ptr, ty: ptr) -> Val { let v = new Val; v.code = code; v.ty = ty; return v } var head: Buf # module-level: types, globals, string constants @@ -70,12 +70,12 @@ fn slice_elem(t: ptr) -> ptr { return substr(t, 2, slen(t) - 2) } fn find_arch(name: ptr) -> Node { var i = 0 while i < len(prog) { let d = prog[i]; if d.kind == N_ARCH and streq(d.s, name) { return d }; i = i + 1 } - return ptr_null() + return null } fn find_comp(name: ptr) -> Node { var i = 0 while i < len(prog) { let d = prog[i]; if d.kind == N_COMP and streq(d.s, name) { return d }; i = i + 1 } - return ptr_null() + return null } # every record is a `property` with a %Cmp_ layout of named fields — whether it # is stored per-entity by the ECS or heap-allocated by `new` is a matter of use. @@ -102,7 +102,7 @@ fn find_global(name: ptr) -> Node { if d.kind == N_CONST and streq(d.s, name) { return d } i = i + 1 } - return ptr_null() + return null } # `Enum.Variant` -> the variant's ordinal (its index), or -1 if `ename` names no @@ -122,7 +122,7 @@ fn enum_ordinal(ename: ptr, vname: ptr) -> int { fn find_fn(name: ptr) -> Node { var i = 0 while i < len(prog) { let d = prog[i]; if d.kind == N_FN and streq(d.s, name) { return d }; i = i + 1 } - return ptr_null() + return null } # @Computed derived fields: a per-property (Prop.field -> expression) registry. @@ -135,16 +135,16 @@ fn register_computed(prop: ptr, field: ptr, ty: ptr, e: Node) -> void { push(g_computed, cf) } fn computed_expr(prop: ptr, field: ptr) -> Node { - if ptr_is_null(prop) { return ptr_null() } + if (prop == null) { return null } let key = sconcat(prop, sconcat(".", field)) var i = 0 while i < len(g_computed) { if streq(g_computed[i].s, key) { return g_computed[i].a }; i = i + 1 } - return ptr_null() + return null } # best-effort static type of an expression (for computed-field lookup; emits nothing) fn static_type(e: Node) -> ptr { if e.kind == E_ID { let li = loc_find(e.s); if li >= 0 { return loc_ty[li] } } - return ptr_null() + return null } # @OnSpawn(Model) hooks: a Model -> hook-body registry. Populated at parse time; @@ -158,7 +158,7 @@ fn register_onspawn(model: ptr, body: Node) -> void { fn onspawn_body(model: ptr) -> Node { var i = 0 while i < len(g_onspawn) { if streq(g_onspawn[i].s, model) { return g_onspawn[i].a }; i = i + 1 } - return ptr_null() + return null } # @OnDespawn(Model): a Model -> hook-body registry. Despawn does not statically @@ -173,7 +173,7 @@ fn register_ondespawn(model: ptr, body: Node) -> void { fn ondespawn_body(model: ptr) -> Node { var i = 0 while i < len(g_ondespawn) { if streq(g_ondespawn[i].s, model) { return g_ondespawn[i].a }; i = i + 1 } - return ptr_null() + return null } fn register_onattach(prop: ptr, body: Node) -> void { let n = node(N_BLOCK); n.s = prop; n.a = body; push(g_onattach, n) @@ -181,7 +181,7 @@ fn register_onattach(prop: ptr, body: Node) -> void { fn onattach_body(prop: ptr) -> Node { var i = 0 while i < len(g_onattach) { if streq(g_onattach[i].s, prop) { return g_onattach[i].a }; i = i + 1 } - return ptr_null() + return null } # @OnEnable(Property) / @OnDisable(Property): run when a property is toggled on an @@ -193,12 +193,12 @@ fn register_ondisable(prop: ptr, body: Node) -> void { let n = node(N_BLOCK); n. fn onenable_body(prop: ptr) -> Node { var i = 0 while i < len(g_onenable) { if streq(g_onenable[i].s, prop) { return g_onenable[i].a }; i = i + 1 } - return ptr_null() + return null } fn ondisable_body(prop: ptr) -> Node { var i = 0 while i < len(g_ondisable) { if streq(g_ondisable[i].s, prop) { return g_ondisable[i].a }; i = i + 1 } - return ptr_null() + return null } # is `name` a model (archetype)? — chooses model-vs-handler for a bare enable/disable diff --git a/selfhost/emit_decl.ludic b/selfhost/emit_decl.ludic index 68286553..799bbd5e 100644 --- a/selfhost/emit_decl.ludic +++ b/selfhost/emit_decl.ludic @@ -90,13 +90,13 @@ fn emit_program() -> void { fn ir_flush(path: ptr) -> bool { let h = buf_str(head) let c = buf_str(code) - if ptr_is_null(path) { + if (path == null) { print_str(h) print_str(c) return true } let f = file_open(path, "wb") - if ptr_is_null(f) { return false } + if (f == null) { return false } file_write(f, h, slen(h)) file_write(f, c, slen(c)) file_close(f) diff --git a/selfhost/emit_expr.ludic b/selfhost/emit_expr.ludic index 2e2b99a7..d91dcc94 100644 --- a/selfhost/emit_expr.ludic +++ b/selfhost/emit_expr.ludic @@ -63,8 +63,10 @@ fn emit_bin(e: Node) -> Val { let fx = streq(a.ty, "fixed") or streq(b.ty, "fixed") if is_cmp(e.s) { var ac = a.code; var bc = b.code + var ct = "i32" if fx { ac = to_fixed(a); bc = to_fixed(b) } - let c = emit_bind(sconcat("icmp ", sconcat(cmp_code(e.s), sconcat(" i32 ", sconcat(ac, sconcat(", ", bc)))))) + else { if streq(llty(a.ty), "ptr") or streq(llty(b.ty), "ptr") { ct = "ptr" } } # `p == null`, str/record identity + let c = emit_bind(sconcat("icmp ", sconcat(cmp_code(e.s), sconcat(sconcat(" ", sconcat(ct, " ")), sconcat(ac, sconcat(", ", bc)))))) return val(emit_bind(sconcat("zext i1 ", sconcat(c, " to i32"))), "bool") } if fx { @@ -107,11 +109,11 @@ fn emit_call(e: Node) -> Val { if is_math_builtin(name) { return emit_math_builtin(name, e) } var fn2 = find_fn(name) var cname = name - if ptr_is_null(fn2) { + if (fn2 == null) { # a builtin like clear()/reg() is satisfied by its rt_ function let rtname = sconcat("rt_", name) fn2 = find_fn(rtname) - if ptr_is_null(fn2) { perr(sconcat("unknown function ", name)) } + if (fn2 == null) { perr(sconcat("unknown function ", name)) } cname = rtname } # evaluate args first (their IR is emitted before the call instruction) @@ -135,10 +137,11 @@ fn emit_call(e: Node) -> Val { } fn emit_expr(e: Node) -> Val { - if ptr_is_null(e) { return val("0", "int") } + if (e == null) { return val("0", "int") } if e.kind == E_INT { return val(itoa(e.ival), "int") } if e.kind == E_FLOAT { return val(itoa(e.ival), "fixed") } if e.kind == E_BOOL { return val(itoa(e.ival), "bool") } + if e.kind == E_NULL { return val("null", "ptr") } if e.kind == E_STR { return val(emit_str_const(e.s), "str") } if e.kind == E_NEW { if is_slice_ty(e.s) { return emit_new_slice(e.s) } @@ -148,7 +151,7 @@ fn emit_expr(e: Node) -> Val { let li = loc_find(e.s) if li >= 0 { return emit_load_at(loc_reg[li], loc_ty[li]) } let g = find_global(e.s) - if not ptr_is_null(g) { + if (g != null) { if g.kind == N_CONST { return val(itoa(g.a.ival), "int") } let r = emit_bind(sconcat("load ", sconcat(llty(g.ty), sconcat(", ptr @g_", e.s)))) return val(r, g.ty) @@ -163,9 +166,9 @@ fn emit_expr(e: Node) -> Val { if ord >= 0 { return val(itoa(ord), "int") } } let bt = static_type(e.a) # `x.field` where field is @Computed -> inline it - if not ptr_is_null(bt) { + if (bt != null) { let cx = computed_expr(bt, e.s) - if not ptr_is_null(cx) { return emit_expr(qualify_fields(cx, e.a)) } + if (cx != null) { return emit_expr(qualify_fields(cx, e.a)) } } let a = emit_member_addr(e); return emit_load_at(a, g_addr_ty) } diff --git a/selfhost/emit_game.ludic b/selfhost/emit_game.ludic index 7b75388b..126180a8 100644 --- a/selfhost/emit_game.ludic +++ b/selfhost/emit_game.ludic @@ -71,13 +71,13 @@ fn emit_game_main() -> void { emit("define i32 @main(i32 %argc, ptr %argv) {\nentry:\n") emit(" store i32 %argc, ptr @L_argc\n") emit(" store ptr %argv, ptr @L_argv\n") - if not ptr_is_null(find_fn("rt_init")) { emit(" call void @fn_rt_init()\n") } + if (find_fn("rt_init") != null) { emit(" call void @fn_rt_init()\n") } emit_calls_for_phase("Start") emit(" br label %loop\n") emit("loop:\n") let r = emit_bind("load i32, ptr @L_running") let rc = emit_bind(sconcat("icmp ne i32 ", sconcat(r, ", 0"))) - if not ptr_is_null(find_fn("rt_running")) { + if (find_fn("rt_running") != null) { let pr = emit_bind("call i32 @fn_rt_running()") let pc = emit_bind(sconcat("icmp ne i32 ", sconcat(pr, ", 0"))) let go = emit_bind(sconcat("and i1 ", sconcat(rc, sconcat(", ", pc)))) @@ -86,7 +86,7 @@ fn emit_game_main() -> void { emit(" br i1 "); emit(rc); emit(", label %body, label %done\n") } emit("body:\n") - if not ptr_is_null(find_fn("rt_poll")) { + if (find_fn("rt_poll") != null) { let k = emit_bind("call i32 @fn_rt_poll()") emit(" store i32 "); emit(k); emit(", ptr @L_key\n") } @@ -98,6 +98,6 @@ fn emit_game_main() -> void { emit(" br label %loop\n") emit("done:\n") emit_calls_for_phase("OnQuit") # @OnQuit shutdown hooks run once, before teardown - if not ptr_is_null(find_fn("rt_shutdown")) { emit(" call void @fn_rt_shutdown()\n") } + if (find_fn("rt_shutdown") != null) { emit(" call void @fn_rt_shutdown()\n") } emit(" ret i32 0\n}\n") } diff --git a/selfhost/emit_head.ludic b/selfhost/emit_head.ludic index 30aabade..58fe958b 100644 --- a/selfhost/emit_head.ludic +++ b/selfhost/emit_head.ludic @@ -34,7 +34,7 @@ fn emit_gep_i8(base: ptr, idx: ptr) -> ptr { # the constant initializer for a global var: a literal, or 0/null fn global_init(d: Node) -> ptr { - if ptr_is_null(d.a) { if streq(llty(d.ty), "ptr") { return "null" }; return "0" } + if (d.a == null) { if streq(llty(d.ty), "ptr") { return "null" }; return "0" } let e = d.a if e.kind == E_INT or e.kind == E_FLOAT or e.kind == E_BOOL { return itoa(e.ival) } if e.kind == E_UN and streq(e.s, "-") and e.a.kind == E_INT { return sconcat("-", itoa(e.a.ival)) } diff --git a/selfhost/emit_intrin.ludic b/selfhost/emit_intrin.ludic index 1cf204dd..10032082 100644 --- a/selfhost/emit_intrin.ludic +++ b/selfhost/emit_intrin.ludic @@ -7,8 +7,8 @@ var g_intrin_ok: bool = false # is `name` a low-level intrinsic? A pure name check, so it can gate dispatch # without evaluating arguments (which could clobber shared state). fn is_intrinsic(name: ptr) -> bool { - if streq(name,"ptr_null") or streq(name,"mem_alloc") or streq(name,"mem_realloc") { return true } - if streq(name,"peek8") or streq(name,"poke8") or streq(name,"ptr_is_null") { return true } + if streq(name,"mem_alloc") or streq(name,"mem_realloc") { return true } + if streq(name,"peek8") or streq(name,"poke8") { return true } if streq(name,"file_open") or streq(name,"file_read") or streq(name,"file_write") { return true } if streq(name,"file_seek") or streq(name,"file_tell") or streq(name,"file_close") { return true } if streq(name,"print_str") or streq(name,"print_int") { return true } @@ -24,7 +24,7 @@ fn arg_code(e: Node, i: int) -> ptr { let v = emit_expr(e.kids[i]); return v.co fn emit_intrinsic(name: ptr, e: Node) -> Val { g_intrin_ok = true - if streq(name, "ptr_null") { return val("null", "ptr") } + # ptr_null / ptr_is_null are the `null` literal and `x == null` now. if streq(name, "mem_alloc") { let n = arg_code(e, 0) let w = emit_bind(sconcat("zext i32 ", sconcat(n, " to i64"))) @@ -48,11 +48,6 @@ fn emit_intrinsic(name: ptr, e: Node) -> Val { emit(" store i8 "); emit(t); emit(", ptr "); emit(a); emit("\n") return val("0", "void") } - if streq(name, "ptr_is_null") { - let p = arg_code(e, 0) - let c = emit_bind(sconcat("icmp eq ptr ", sconcat(p, ", null"))) - return val(emit_bind(sconcat("zext i1 ", sconcat(c, " to i32"))), "bool") - } if streq(name, "file_open") { let p = arg_code(e, 0); let m = arg_code(e, 1) return val(emit_bind(sconcat("call ptr @fopen(ptr ", sconcat(p, sconcat(", ptr ", sconcat(m, ")"))))), "ptr") diff --git a/selfhost/emit_machine.ludic b/selfhost/emit_machine.ludic index fc24b082..14646766 100644 --- a/selfhost/emit_machine.ludic +++ b/selfhost/emit_machine.ludic @@ -29,10 +29,10 @@ fn emit_machine(st: Node) -> void { fn emit_become(st: Node) -> void { if nmach == 0 { perr("'become' outside a machine") } let m = mach_stk[nmach - 1] - var target: Node = ptr_null() + var target: Node = null var i = 0 while i < len(m.kids) { if streq(m.kids[i].s, st.s) { target = m.kids[i] }; i = i + 1 } - if ptr_is_null(target) { perr(sconcat("become: no state ", st.s)) } + if (target == null) { perr(sconcat("become: no state ", st.s)) } let regv = emit_expr(m.a) let sv = emit_expr(target.b) emit(" call void @fn_rt_set_reg(i32 "); emit(regv.code); emit(", i32 "); emit(sv.code); emit(")\n") diff --git a/selfhost/emit_new.ludic b/selfhost/emit_new.ludic index 67853c5a..6ae1b8f5 100644 --- a/selfhost/emit_new.ludic +++ b/selfhost/emit_new.ludic @@ -9,7 +9,7 @@ fn emit_sizeof(llt: ptr) -> ptr { fn emit_new_struct(name: ptr) -> Val { let s = layout_node(name) # a struct or a property — same shape - if ptr_is_null(s) { perr("unknown record type in new") } + if (s == null) { perr("unknown record type in new") } let lty = layout_ty(name) let sz = emit_sizeof(lty) let obj = emit_bind(sconcat("call ptr @malloc(i64 ", sconcat(sz, ")"))) @@ -22,7 +22,7 @@ fn emit_new_struct(name: ptr) -> Val { let lt = llty(fd.ty) var v = "0" if streq(lt, "ptr") { v = "null" } - if not ptr_is_null(fd.a) { let dv = emit_expr(fd.a); v = dv.code } + if (fd.a != null) { let dv = emit_expr(fd.a); v = dv.code } emit(" store "); emit(lt); emit(" "); emit(v); emit(", ptr "); emit(addr); emit("\n") f = f + 1 } diff --git a/selfhost/emit_query.ludic b/selfhost/emit_query.ludic index 073ef28d..d78c4f86 100644 --- a/selfhost/emit_query.ludic +++ b/selfhost/emit_query.ludic @@ -77,7 +77,7 @@ fn emit_query(st: Node) -> void { } # optional where-clause - if not ptr_is_null(st.b) { + if (st.b != null) { let w = emit_expr(st.b) let wc = emit_bind(sconcat("icmp ne i32 ", sconcat(w.code, ", 0"))) let kw = lbl("qw") diff --git a/selfhost/emit_save.ludic b/selfhost/emit_save.ludic index bfcb4f50..ba8b4bf6 100644 --- a/selfhost/emit_save.ludic +++ b/selfhost/emit_save.ludic @@ -40,8 +40,8 @@ fn emit_snapshot() -> void { emith("@.sav_path = private unnamed_addr constant [10 x i8] c\"ludic.sav\\00\"\n") emith("@.sav_wb = private unnamed_addr constant [3 x i8] c\"wb\\00\"\n") emith("@.sav_rb = private unnamed_addr constant [3 x i8] c\"rb\\00\"\n") - let has_save = not ptr_is_null(find_fn("rt_save_state")) - let has_load = not ptr_is_null(find_fn("rt_load_state")) + let has_save = (find_fn("rt_save_state") != null) + let has_load = (find_fn("rt_load_state") != null) emit("define void @L_save() {\nentry:\n") emit(" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_wb)\n") diff --git a/selfhost/emit_spawn.ludic b/selfhost/emit_spawn.ludic index 4b87d637..e72ab222 100644 --- a/selfhost/emit_spawn.ludic +++ b/selfhost/emit_spawn.ludic @@ -4,7 +4,7 @@ fn emit_init_component(e: ptr, comp: ptr, rec: Node) -> void { let me = itoa(MAX_ENT) let c = find_comp(comp) - if ptr_is_null(c) { perr(sconcat("spawn: unknown property ", comp)) } + if (c == null) { perr(sconcat("spawn: unknown property ", comp)) } let hp = nreg(); emit(" "); emit(hp); emit(" = getelementptr inbounds ["); emit(me); emit(" x i8], ptr @H_"); emit(comp); emit(", i32 0, i32 "); emit(e); emit("\n") emit(" store i8 1, ptr "); emit(hp); emit("\n") let slot = nreg() @@ -18,12 +18,12 @@ fn emit_init_component(e: ptr, comp: ptr, rec: Node) -> void { let lt = llty(fd.ty) var v = "0" if streq(lt, "ptr") { v = "null" } - if not ptr_is_null(fd.a) { let dv = emit_expr(fd.a); v = dv.code } + if (fd.a != null) { let dv = emit_expr(fd.a); v = dv.code } emit(" store "); emit(lt); emit(" "); emit(v); emit(", ptr "); emit(addr); emit("\n") f = f + 1 } # per-spawn overrides - if not ptr_is_null(rec) { + if (rec != null) { var j = 0 while j < len(rec.kids) { let fi = rec.kids[j] @@ -39,7 +39,7 @@ fn emit_init_component(e: ptr, comp: ptr, rec: Node) -> void { } # @OnAttach(Property) runs once the property is attached and seeded let ab = onattach_body(comp) - if not ptr_is_null(ab) { + if (ab != null) { let save = nloc let vslot = emit_alloca("ptr") emit(" store ptr "); emit(slot); emit(", ptr "); emit(vslot); emit("\n") @@ -76,14 +76,14 @@ fn emit_spawn(st: Node) -> void { var c = 0 while c < len(arch.kids) { let cn = arch.kids[c].s - var rec = ptr_null() + var rec = null var i = 0 while i < len(st.kids) { if streq(st.kids[i].s, cn) { rec = st.kids[i].a }; i = i + 1 } emit_init_component(e, cn, rec) c = c + 1 } let ob = onspawn_body(st.s) # @OnSpawn(Model) hook runs after init - if not ptr_is_null(ob) { + if (ob != null) { let save = nloc emit_bind_props(arch, e) emit_block(ob) @@ -121,14 +121,14 @@ fn emit_despawn(st: Node) -> void { # flag). A bare `` / `` flips a global enabled flag. fn emit_toggle(st: Node) -> void { var val = "0"; if st.ival == 1 { val = "1" } - if not ptr_is_null(st.a) { + if (st.a != null) { let ev = emit_expr(st.a) let me = itoa(MAX_ENT) let hp = nreg(); emit(" "); emit(hp); emit(" = getelementptr inbounds ["); emit(me); emit(" x i8], ptr @H_"); emit(st.s); emit(", i32 0, i32 "); emit(ev.code); emit("\n") emit(" store i8 "); emit(val); emit(", ptr "); emit(hp); emit("\n") - var hb: Node = ptr_null() + var hb: Node = null if st.ival == 1 { hb = onenable_body(st.s) } else { hb = ondisable_body(st.s) } - if not ptr_is_null(hb) { + if (hb != null) { let save = nloc let slot = nreg(); emit(" "); emit(slot); emit(" = getelementptr inbounds ["); emit(me); emit(" x %Cmp_"); emit(st.s); emit("], ptr @S_"); emit(st.s); emit(", i32 0, i32 "); emit(ev.code); emit("\n") let vslot = emit_alloca("ptr") diff --git a/selfhost/emit_stmt.ludic b/selfhost/emit_stmt.ludic index cb22d0ad..6e57fb9c 100644 --- a/selfhost/emit_stmt.ludic +++ b/selfhost/emit_stmt.ludic @@ -30,7 +30,7 @@ fn emit_assign(st: Node) -> void { } else { let g = find_global(t.s) - if ptr_is_null(g) { perr(sconcat("assign to unknown ", t.s)) } + if (g == null) { perr(sconcat("assign to unknown ", t.s)) } addr = sconcat("@g_", t.s); ty = g.ty } } else { @@ -55,7 +55,7 @@ fn emit_assign(st: Node) -> void { fn emit_if(st: Node) -> void { let c = emit_expr(st.a) let cc = emit_bind(sconcat("icmp ne i32 ", sconcat(c.code, ", 0"))) - let has_else = not ptr_is_null(st.c) + let has_else = (st.c != null) let tl = lbl("then"); let el = lbl("else"); let en = lbl("ifend") if has_else { emit(" br i1 "); emit(cc); emit(", label %"); emit(tl); emit(", label %"); emit(el); emit("\n") } else { emit(" br i1 "); emit(cc); emit(", label %"); emit(tl); emit(", label %"); emit(en); emit("\n") } @@ -112,7 +112,7 @@ fn emit_for(st: Node) -> void { } fn emit_return(st: Node) -> void { - if not ptr_is_null(st.a) { + if (st.a != null) { let v = emit_expr(st.a) store_at(llty(ret_ty), v.code, "%retval") } @@ -129,7 +129,7 @@ fn arm_is_default(arm: Node) -> bool { fn emit_match(st: Node) -> void { let sv = emit_expr(st.a) let endl = lbl("mend") - var deflt: Node = ptr_null() + var deflt: Node = null var i = 0 while i < len(st.kids) { let arm = st.kids[i] @@ -154,7 +154,7 @@ fn emit_match(st: Node) -> void { } i = i + 1 } - if not ptr_is_null(deflt) { emit_block(deflt.a) } + if (deflt != null) { emit_block(deflt.a) } if not g_term { emit(" br label %"); emit(endl); emit("\n") } emit(endl); emit(":\n"); g_term = false } @@ -162,10 +162,10 @@ fn emit_match(st: Node) -> void { fn emit_stmt(st: Node) -> void { if st.kind == S_LET { var ty = st.ty - if ptr_is_null(ty) { let v0 = emit_expr(st.a); ty = v0.ty + if (ty == null) { let v0 = emit_expr(st.a); ty = v0.ty let slot = emit_alloca(llty(ty)); store_at(llty(ty), v0.code, slot); loc_push(st.s, slot, ty); loc_set_mut(st.ival); return } let slot = emit_alloca(llty(ty)) - if ptr_is_null(st.a) { + if (st.a == null) { var z = "0" if streq(llty(ty), "ptr") { z = "null" } store_at(llty(ty), z, slot) diff --git a/selfhost/emit_ui.ludic b/selfhost/emit_ui.ludic index 5830ff7c..74587db6 100644 --- a/selfhost/emit_ui.ludic +++ b/selfhost/emit_ui.ludic @@ -17,7 +17,7 @@ fn ui_wtype(w: Node) -> int { fn ui_prop(w: Node, key: ptr) -> Node { var i = 0 while i < len(w.b.kids) { if streq(w.b.kids[i].s, key) { return w.b.kids[i].a }; i = i + 1 } - return ptr_null() + return null } fn ui_flatten(w: Node, parent: int) -> void { let idx = len(uiw) @@ -51,7 +51,7 @@ fn ui_index_of(nm: ptr) -> int { i = 0 while i < len(uiw) { let idp = ui_prop(uiw[i], "id") - if not ptr_is_null(idp) { if idp.kind == E_ID and streq(idp.s, s) { return i } } + if (idp != null) { if idp.kind == E_ID and streq(idp.s, s) { return i } } i = i + 1 } return 0 diff --git a/selfhost/io.ludic b/selfhost/io.ludic index 483d0acb..08f7d32c 100644 --- a/selfhost/io.ludic +++ b/selfhost/io.ludic @@ -3,7 +3,7 @@ fn read_file(path: str) -> ptr { let f = file_open(path, "rb") - if ptr_is_null(f) { return ptr_null() } + if (f == null) { return null } file_seek(f, 0, 2) let n = file_tell(f) file_seek(f, 0, 0) diff --git a/selfhost/lex.ludic b/selfhost/lex.ludic index 52e7aaf8..367a92d9 100644 --- a/selfhost/lex.ludic +++ b/selfhost/lex.ludic @@ -10,7 +10,7 @@ const TK_NL: int = 4 const TK_EOF: int = 5 const TK_FLOAT: int = 6 -property Tok { kind: int = 0, text: ptr = ptr_null(), ival: int = 0, line: int = 0 } +property Tok { kind: int = 0, text: ptr = null, ival: int = 0, line: int = 0 } var toks: []Tok @@ -43,7 +43,7 @@ fn lex(src: ptr) -> void { let n = slen(src) while i < n { let c = peek8(src, i) - if c == 10 { tok_push(TK_NL, ptr_null(), 0, line); line = line + 1; i = i + 1; continue } + if c == 10 { tok_push(TK_NL, null, 0, line); line = line + 1; i = i + 1; continue } if c == 32 or c == 9 or c == 13 { i = i + 1; continue } if c == 35 { # '#' comment to end of line while i < n and peek8(src, i) != 10 { i = i + 1 } @@ -80,7 +80,7 @@ fn lex(src: ptr) -> void { i = i + 2 } else { v = peek8(src, i); i = i + 1 } if peek8(src, i) == 39 { i = i + 1 } - tok_push(TK_INT, ptr_null(), v, line) + tok_push(TK_INT, null, v, line) continue } if char_is_digit(c) { @@ -96,7 +96,7 @@ fn lex(src: ptr) -> void { v = v * 16 + d i = i + 1 } - tok_push(TK_INT, ptr_null(), v, line) + tok_push(TK_INT, null, v, line) continue } var v = 0 @@ -107,10 +107,10 @@ fn lex(src: ptr) -> void { var fnum = 0; var fden = 1 while i < n and char_is_digit(peek8(src, i)) { fnum = fnum * 10 + (peek8(src, i) - 48); fden = fden * 10; i = i + 1 } let bits = (v << 16) + (fnum << 16) / fden - tok_push(TK_FLOAT, ptr_null(), bits, line) + tok_push(TK_FLOAT, null, bits, line) continue } - tok_push(TK_INT, ptr_null(), v, line) + tok_push(TK_INT, null, v, line) continue } if char_is_alpha(c) { @@ -119,7 +119,7 @@ fn lex(src: ptr) -> void { tok_push(TK_ID, substr(src, start, i - start), 0, line) continue } - if c == 59 { tok_push(TK_NL, ptr_null(), 0, line); i = i + 1; continue } # ';' + if c == 59 { tok_push(TK_NL, null, 0, line); i = i + 1; continue } # ';' # two-character operators if two_at(src, i, 45, 62) { tok_push(TK_OP, substr(src, i, 2), 0, line); i = i + 2; continue } # -> if two_at(src, i, 61, 62) { tok_push(TK_OP, substr(src, i, 2), 0, line); i = i + 2; continue } # => @@ -137,5 +137,5 @@ fn lex(src: ptr) -> void { if is_op1(c) { tok_push(TK_OP, substr(src, i, 1), 0, line); i = i + 1; continue } i = i + 1 # skip anything unrecognised } - tok_push(TK_EOF, ptr_null(), 0, line) + tok_push(TK_EOF, null, 0, line) } diff --git a/selfhost/ludicc.seed.ll b/selfhost/ludicc.seed.ll index 014544c5..99ae1958 100644 --- a/selfhost/ludicc.seed.ll +++ b/selfhost/ludicc.seed.ll @@ -85,1541 +85,1538 @@ declare void @win_close() @.str9 = private unnamed_addr constant [2 x i8] c")\00" @.str10 = private unnamed_addr constant [5 x i8] c"true\00" @.str11 = private unnamed_addr constant [6 x i8] c"false\00" -@.str12 = private unnamed_addr constant [4 x i8] c"new\00" -@.str13 = private unnamed_addr constant [2 x i8] c"(\00" -@.str14 = private unnamed_addr constant [2 x i8] c")\00" -@.str15 = private unnamed_addr constant [20 x i8] c"expected expression\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 [2 x i8] c"(\00" -@.str20 = private unnamed_addr constant [2 x i8] c"-\00" +@.str12 = private unnamed_addr constant [5 x i8] c"null\00" +@.str13 = private unnamed_addr constant [4 x i8] c"new\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 [20 x i8] c"expected expression\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 [2 x i8] c"]\00" +@.str20 = private unnamed_addr constant [2 x i8] c"(\00" @.str21 = private unnamed_addr constant [2 x i8] c"-\00" -@.str22 = private unnamed_addr constant [2 x i8] c"~\00" +@.str22 = private unnamed_addr constant [2 x i8] c"-\00" @.str23 = private unnamed_addr constant [2 x i8] c"~\00" -@.str24 = private unnamed_addr constant [4 x i8] c"not\00" +@.str24 = private unnamed_addr constant [2 x i8] c"~\00" @.str25 = private unnamed_addr constant [4 x i8] c"not\00" -@.str26 = private unnamed_addr constant [2 x i8] c"*\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 [3 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 [3 x i8] c"<=\00" -@.str38 = private unnamed_addr constant [2 x i8] c">\00" -@.str39 = private unnamed_addr constant [3 x i8] c">=\00" -@.str40 = private unnamed_addr constant [3 x i8] c"==\00" -@.str41 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str42 = private unnamed_addr constant [4 x i8] c"and\00" +@.str26 = private unnamed_addr constant [4 x i8] c"not\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 [2 x i8] c"%\00" +@.str30 = private unnamed_addr constant [3 x i8] c"<<\00" +@.str31 = private unnamed_addr constant [3 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 [2 x i8] c"<\00" +@.str38 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str39 = private unnamed_addr constant [2 x i8] c">\00" +@.str40 = private unnamed_addr constant [3 x i8] c">=\00" +@.str41 = private unnamed_addr constant [3 x i8] c"==\00" +@.str42 = private unnamed_addr constant [3 x i8] c"!=\00" @.str43 = private unnamed_addr constant [4 x i8] c"and\00" -@.str44 = private unnamed_addr constant [3 x i8] c"or\00" +@.str44 = private unnamed_addr constant [4 x i8] c"and\00" @.str45 = private unnamed_addr constant [3 x i8] c"or\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 [2 x i8] c"}\00" -@.str51 = private unnamed_addr constant [2 x i8] c"{\00" -@.str52 = private unnamed_addr constant [2 x i8] c"}\00" +@.str46 = private unnamed_addr constant [3 x i8] c"or\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 [2 x i8] c",\00" +@.str51 = private unnamed_addr constant [2 x i8] c"}\00" +@.str52 = private unnamed_addr constant [2 x i8] c"{\00" @.str53 = private unnamed_addr constant [2 x i8] c"}\00" -@.str54 = private unnamed_addr constant [43 x i8] c"expected newline or ';' between statements\00" -@.str55 = private unnamed_addr constant [2 x i8] c"}\00" -@.str56 = private unnamed_addr constant [4 x i8] c"let\00" -@.str57 = private unnamed_addr constant [4 x i8] c"var\00" +@.str54 = private unnamed_addr constant [2 x i8] c"}\00" +@.str55 = private unnamed_addr constant [43 x i8] c"expected newline or ';' between statements\00" +@.str56 = private unnamed_addr constant [2 x i8] c"}\00" +@.str57 = private unnamed_addr constant [4 x i8] c"let\00" @.str58 = private unnamed_addr constant [4 x i8] c"var\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 [7 x i8] c"return\00" -@.str62 = private unnamed_addr constant [2 x i8] c"}\00" -@.str63 = private unnamed_addr constant [3 x i8] c"if\00" -@.str64 = private unnamed_addr constant [5 x i8] c"else\00" -@.str65 = private unnamed_addr constant [3 x i8] c"if\00" -@.str66 = private unnamed_addr constant [6 x i8] c"while\00" -@.str67 = private unnamed_addr constant [4 x i8] c"for\00" -@.str68 = private unnamed_addr constant [2 x i8] c"(\00" -@.str69 = private unnamed_addr constant [3 x i8] c"..\00" -@.str70 = private unnamed_addr constant [6 x i8] c"spawn\00" -@.str71 = private unnamed_addr constant [8 x i8] c"machine\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 [2 x i8] c"=\00" -@.str75 = private unnamed_addr constant [2 x i8] c"}\00" -@.str76 = private unnamed_addr constant [7 x i8] c"become\00" -@.str77 = private unnamed_addr constant [8 x i8] c"despawn\00" -@.str78 = private unnamed_addr constant [7 x i8] c"enable\00" -@.str79 = private unnamed_addr constant [8 x i8] c"disable\00" -@.str80 = private unnamed_addr constant [7 x i8] c"enable\00" -@.str81 = private unnamed_addr constant [3 x i8] c"on\00" -@.str82 = private unnamed_addr constant [6 x i8] c"break\00" -@.str83 = private unnamed_addr constant [9 x i8] c"continue\00" -@.str84 = private unnamed_addr constant [6 x i8] c"match\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 [3 x i8] c"=>\00" -@.str89 = private unnamed_addr constant [2 x i8] c"{\00" -@.str90 = private unnamed_addr constant [2 x i8] c"}\00" -@.str91 = private unnamed_addr constant [2 x i8] c"=\00" -@.str92 = private unnamed_addr constant [3 x i8] c"+=\00" -@.str93 = private unnamed_addr constant [3 x i8] c"-=\00" -@.str94 = private unnamed_addr constant [3 x i8] c"*=\00" -@.str95 = private unnamed_addr constant [3 x i8] c"/=\00" -@.str96 = private unnamed_addr constant [2 x i8] c":\00" -@.str97 = private unnamed_addr constant [2 x i8] c"=\00" -@.str98 = private unnamed_addr constant [2 x i8] c":\00" -@.str99 = private unnamed_addr constant [2 x i8] c"=\00" -@.str100 = private unnamed_addr constant [2 x i8] c"(\00" -@.str101 = private unnamed_addr constant [2 x i8] c")\00" -@.str102 = private unnamed_addr constant [2 x i8] c":\00" -@.str103 = private unnamed_addr constant [2 x i8] c",\00" -@.str104 = private unnamed_addr constant [2 x i8] c")\00" -@.str105 = private unnamed_addr constant [5 x i8] c"void\00" -@.str106 = private unnamed_addr constant [3 x i8] c"->\00" -@.str107 = private unnamed_addr constant [1 x i8] c"\00" -@.str108 = private unnamed_addr constant [2 x i8] c"@\00" -@.str109 = private unnamed_addr constant [7 x i8] c"export\00" -@.str110 = private unnamed_addr constant [8 x i8] c"Queries\00" -@.str111 = private unnamed_addr constant [8 x i8] c"OnSpawn\00" -@.str112 = private unnamed_addr constant [2 x i8] c"(\00" -@.str113 = private unnamed_addr constant [2 x i8] c")\00" -@.str114 = private unnamed_addr constant [10 x i8] c"OnDespawn\00" -@.str115 = private unnamed_addr constant [2 x i8] c"(\00" -@.str116 = private unnamed_addr constant [2 x i8] c")\00" -@.str117 = private unnamed_addr constant [9 x i8] c"OnAttach\00" -@.str118 = private unnamed_addr constant [2 x i8] c"(\00" -@.str119 = private unnamed_addr constant [2 x i8] c")\00" -@.str120 = private unnamed_addr constant [9 x i8] c"OnEnable\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 [10 x i8] c"OnDisable\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 [8 x i8] c"OnStart\00" -@.str127 = private unnamed_addr constant [6 x i8] c"Start\00" -@.str128 = private unnamed_addr constant [7 x i8] c"OnQuit\00" +@.str59 = private unnamed_addr constant [4 x i8] c"var\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 [7 x i8] c"return\00" +@.str63 = private unnamed_addr constant [2 x i8] c"}\00" +@.str64 = private unnamed_addr constant [3 x i8] c"if\00" +@.str65 = private unnamed_addr constant [5 x i8] c"else\00" +@.str66 = private unnamed_addr constant [3 x i8] c"if\00" +@.str67 = private unnamed_addr constant [6 x i8] c"while\00" +@.str68 = private unnamed_addr constant [4 x i8] c"for\00" +@.str69 = private unnamed_addr constant [2 x i8] c"(\00" +@.str70 = private unnamed_addr constant [3 x i8] c"..\00" +@.str71 = private unnamed_addr constant [6 x i8] c"spawn\00" +@.str72 = private unnamed_addr constant [8 x i8] c"machine\00" +@.str73 = private unnamed_addr constant [2 x i8] c"{\00" +@.str74 = private unnamed_addr constant [2 x i8] c"}\00" +@.str75 = private unnamed_addr constant [2 x i8] c"=\00" +@.str76 = private unnamed_addr constant [2 x i8] c"}\00" +@.str77 = private unnamed_addr constant [7 x i8] c"become\00" +@.str78 = private unnamed_addr constant [8 x i8] c"despawn\00" +@.str79 = private unnamed_addr constant [7 x i8] c"enable\00" +@.str80 = private unnamed_addr constant [8 x i8] c"disable\00" +@.str81 = private unnamed_addr constant [7 x i8] c"enable\00" +@.str82 = private unnamed_addr constant [3 x i8] c"on\00" +@.str83 = private unnamed_addr constant [6 x i8] c"break\00" +@.str84 = private unnamed_addr constant [9 x i8] c"continue\00" +@.str85 = private unnamed_addr constant [6 x i8] c"match\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 [3 x i8] c"=>\00" +@.str90 = private unnamed_addr constant [2 x i8] c"{\00" +@.str91 = private unnamed_addr constant [2 x i8] c"}\00" +@.str92 = private unnamed_addr constant [2 x i8] c"=\00" +@.str93 = private unnamed_addr constant [3 x i8] c"+=\00" +@.str94 = private unnamed_addr constant [3 x i8] c"-=\00" +@.str95 = private unnamed_addr constant [3 x i8] c"*=\00" +@.str96 = private unnamed_addr constant [3 x i8] c"/=\00" +@.str97 = private unnamed_addr constant [2 x i8] c":\00" +@.str98 = private unnamed_addr constant [2 x i8] c"=\00" +@.str99 = private unnamed_addr constant [2 x i8] c":\00" +@.str100 = private unnamed_addr constant [2 x i8] c"=\00" +@.str101 = private unnamed_addr constant [2 x i8] c"(\00" +@.str102 = private unnamed_addr constant [2 x i8] c")\00" +@.str103 = private unnamed_addr constant [2 x i8] c":\00" +@.str104 = private unnamed_addr constant [2 x i8] c",\00" +@.str105 = private unnamed_addr constant [2 x i8] c")\00" +@.str106 = private unnamed_addr constant [5 x i8] c"void\00" +@.str107 = private unnamed_addr constant [3 x i8] c"->\00" +@.str108 = private unnamed_addr constant [1 x i8] c"\00" +@.str109 = private unnamed_addr constant [2 x i8] c"@\00" +@.str110 = private unnamed_addr constant [7 x i8] c"export\00" +@.str111 = private unnamed_addr constant [8 x i8] c"Queries\00" +@.str112 = private unnamed_addr constant [8 x i8] c"OnSpawn\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 [10 x i8] c"OnDespawn\00" +@.str116 = private unnamed_addr constant [2 x i8] c"(\00" +@.str117 = private unnamed_addr constant [2 x i8] c")\00" +@.str118 = private unnamed_addr constant [9 x i8] c"OnAttach\00" +@.str119 = private unnamed_addr constant [2 x i8] c"(\00" +@.str120 = private unnamed_addr constant [2 x i8] c")\00" +@.str121 = private unnamed_addr constant [9 x i8] c"OnEnable\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 [10 x i8] c"OnDisable\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 [8 x i8] c"OnStart\00" +@.str128 = private unnamed_addr constant [6 x i8] c"Start\00" @.str129 = private unnamed_addr constant [7 x i8] c"OnQuit\00" -@.str130 = private unnamed_addr constant [2 x i8] c"(\00" +@.str130 = private unnamed_addr constant [7 x i8] c"OnQuit\00" @.str131 = private unnamed_addr constant [2 x i8] c"(\00" -@.str132 = private unnamed_addr constant [2 x i8] c")\00" -@.str133 = private unnamed_addr constant [7 x i8] c"import\00" -@.str134 = private unnamed_addr constant [29 x i8] c"expected \22path\22 after import\00" -@.str135 = private unnamed_addr constant [5 x i8] c"enum\00" -@.str136 = private unnamed_addr constant [9 x i8] c"property\00" -@.str137 = private unnamed_addr constant [6 x i8] c"model\00" -@.str138 = private unnamed_addr constant [8 x i8] c"handler\00" -@.str139 = private unnamed_addr constant [3 x i8] c"ui\00" -@.str140 = private unnamed_addr constant [4 x i8] c"var\00" -@.str141 = private unnamed_addr constant [6 x i8] c"const\00" -@.str142 = private unnamed_addr constant [3 x i8] c"fn\00" -@.str143 = private unnamed_addr constant [7 x i8] c"extern\00" -@.str144 = private unnamed_addr constant [6 x i8] c"entry\00" -@.str145 = private unnamed_addr constant [21 x i8] c"expected declaration\00" -@.str146 = private unnamed_addr constant [20 x i8] c"cannot open import \00" -@.str147 = private unnamed_addr constant [1 x i8] c"\00" -@.str148 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" -@.str149 = private unnamed_addr constant [6 x i8] c"Ludic\00" -@.str150 = private unnamed_addr constant [7 x i8] c"import\00" -@.str151 = private unnamed_addr constant [2 x i8] c"@\00" -@.str152 = private unnamed_addr constant [2 x i8] c"(\00" +@.str132 = private unnamed_addr constant [2 x i8] c"(\00" +@.str133 = private unnamed_addr constant [2 x i8] c")\00" +@.str134 = private unnamed_addr constant [7 x i8] c"import\00" +@.str135 = private unnamed_addr constant [29 x i8] c"expected \22path\22 after import\00" +@.str136 = private unnamed_addr constant [5 x i8] c"enum\00" +@.str137 = private unnamed_addr constant [9 x i8] c"property\00" +@.str138 = private unnamed_addr constant [6 x i8] c"model\00" +@.str139 = private unnamed_addr constant [8 x i8] c"handler\00" +@.str140 = private unnamed_addr constant [3 x i8] c"ui\00" +@.str141 = private unnamed_addr constant [4 x i8] c"var\00" +@.str142 = private unnamed_addr constant [6 x i8] c"const\00" +@.str143 = private unnamed_addr constant [3 x i8] c"fn\00" +@.str144 = private unnamed_addr constant [7 x i8] c"extern\00" +@.str145 = private unnamed_addr constant [6 x i8] c"entry\00" +@.str146 = private unnamed_addr constant [21 x i8] c"expected declaration\00" +@.str147 = private unnamed_addr constant [20 x i8] c"cannot open import \00" +@.str148 = private unnamed_addr constant [1 x i8] c"\00" +@.str149 = private unnamed_addr constant [26 x i8] c"runtime/native/core.ludic\00" +@.str150 = private unnamed_addr constant [6 x i8] c"Ludic\00" +@.str151 = private unnamed_addr constant [7 x i8] c"import\00" +@.str152 = private unnamed_addr constant [2 x i8] c"@\00" @.str153 = private unnamed_addr constant [2 x i8] c"(\00" -@.str154 = private unnamed_addr constant [2 x i8] c")\00" -@.str155 = private unnamed_addr constant [8 x i8] c"program\00" -@.str156 = private unnamed_addr constant [2 x i8] c"{\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 [2 x i8] c"}\00" -@.str160 = private unnamed_addr constant [2 x i8] c"@\00" -@.str161 = private unnamed_addr constant [9 x i8] c"Computed\00" -@.str162 = private unnamed_addr constant [2 x i8] c":\00" -@.str163 = private unnamed_addr constant [2 x i8] c"=\00" -@.str164 = private unnamed_addr constant [2 x i8] c",\00" -@.str165 = private unnamed_addr constant [2 x i8] c"}\00" -@.str166 = private unnamed_addr constant [7 x i8] c"Update\00" -@.str167 = private unnamed_addr constant [2 x i8] c"@\00" -@.str168 = private unnamed_addr constant [2 x i8] c"(\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 [8 x i8] c"program\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 [2 x i8] c"{\00" +@.str160 = private unnamed_addr constant [2 x i8] c"}\00" +@.str161 = private unnamed_addr constant [2 x i8] c"@\00" +@.str162 = private unnamed_addr constant [9 x i8] c"Computed\00" +@.str163 = private unnamed_addr constant [2 x i8] c":\00" +@.str164 = private unnamed_addr constant [2 x i8] c"=\00" +@.str165 = private unnamed_addr constant [2 x i8] c",\00" +@.str166 = private unnamed_addr constant [2 x i8] c"}\00" +@.str167 = private unnamed_addr constant [7 x i8] c"Update\00" +@.str168 = private unnamed_addr constant [2 x i8] c"@\00" @.str169 = private unnamed_addr constant [2 x i8] c"(\00" -@.str170 = private unnamed_addr constant [2 x i8] c")\00" -@.str171 = private unnamed_addr constant [6 x i8] c"phase\00" -@.str172 = private unnamed_addr constant [2 x i8] c"[\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 [2 x i8] c",\00" -@.str177 = private unnamed_addr constant [2 x i8] c"]\00" -@.str178 = private unnamed_addr constant [6 x i8] c"where\00" -@.str179 = private unnamed_addr constant [2 x i8] c"(\00" -@.str180 = private unnamed_addr constant [2 x i8] c")\00" -@.str181 = private unnamed_addr constant [2 x i8] c",\00" -@.str182 = private unnamed_addr constant [2 x i8] c")\00" -@.str183 = private unnamed_addr constant [6 x i8] c"query\00" -@.str184 = private unnamed_addr constant [29 x i8] c"expected 'query' in for-loop\00" -@.str185 = private unnamed_addr constant [4 x i8] c"and\00" -@.str186 = private unnamed_addr constant [2 x i8] c"(\00" -@.str187 = private unnamed_addr constant [2 x i8] c")\00" +@.str170 = private unnamed_addr constant [2 x i8] c"(\00" +@.str171 = private unnamed_addr constant [2 x i8] c")\00" +@.str172 = private unnamed_addr constant [6 x i8] c"phase\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 [2 x i8] c"}\00" +@.str177 = private unnamed_addr constant [2 x i8] c",\00" +@.str178 = private unnamed_addr constant [2 x i8] c"]\00" +@.str179 = private unnamed_addr constant [6 x i8] c"where\00" +@.str180 = private unnamed_addr constant [2 x i8] c"(\00" +@.str181 = private unnamed_addr constant [2 x i8] c")\00" +@.str182 = private unnamed_addr constant [2 x i8] c",\00" +@.str183 = private unnamed_addr constant [2 x i8] c")\00" +@.str184 = private unnamed_addr constant [6 x i8] c"query\00" +@.str185 = private unnamed_addr constant [29 x i8] c"expected 'query' in for-loop\00" +@.str186 = private unnamed_addr constant [4 x i8] c"and\00" +@.str187 = private unnamed_addr constant [2 x i8] c"(\00" @.str188 = private unnamed_addr constant [2 x i8] c")\00" -@.str189 = private unnamed_addr constant [2 x i8] c":\00" -@.str190 = private unnamed_addr constant [6 x i8] c"these\00" -@.str191 = private unnamed_addr constant [2 x i8] c"[\00" -@.str192 = private unnamed_addr constant [2 x i8] c"]\00" -@.str193 = private unnamed_addr constant [2 x i8] c"{\00" -@.str194 = private unnamed_addr constant [2 x i8] c"}\00" -@.str195 = private unnamed_addr constant [2 x i8] c",\00" -@.str196 = private unnamed_addr constant [2 x i8] c"]\00" -@.str197 = private unnamed_addr constant [3 x i8] c"on\00" -@.str198 = private unnamed_addr constant [2 x i8] c",\00" -@.str199 = private unnamed_addr constant [2 x i8] c")\00" -@.str200 = private unnamed_addr constant [2 x i8] c"{\00" -@.str201 = private unnamed_addr constant [2 x i8] c"}\00" -@.str202 = private unnamed_addr constant [2 x i8] c",\00" -@.str203 = private unnamed_addr constant [2 x i8] c"}\00" -@.str204 = private unnamed_addr constant [2 x i8] c"{\00" -@.str205 = private unnamed_addr constant [2 x i8] c"}\00" -@.str206 = private unnamed_addr constant [2 x i8] c",\00" -@.str207 = private unnamed_addr constant [2 x i8] c"}\00" -@.str208 = private unnamed_addr constant [2 x i8] c"{\00" -@.str209 = private unnamed_addr constant [2 x i8] c"}\00" -@.str210 = private unnamed_addr constant [2 x i8] c",\00" -@.str211 = private unnamed_addr constant [2 x i8] c"}\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 [2 x i8] c")\00" -@.str217 = private unnamed_addr constant [5 x i8] c"void\00" -@.str218 = private unnamed_addr constant [3 x i8] c"->\00" -@.str219 = private unnamed_addr constant [2 x i8] c"=\00" -@.str220 = private unnamed_addr constant [2 x i8] c":\00" +@.str189 = private unnamed_addr constant [2 x i8] c")\00" +@.str190 = private unnamed_addr constant [2 x i8] c":\00" +@.str191 = private unnamed_addr constant [6 x i8] c"these\00" +@.str192 = private unnamed_addr constant [2 x i8] c"[\00" +@.str193 = private unnamed_addr constant [2 x i8] c"]\00" +@.str194 = private unnamed_addr constant [2 x i8] c"{\00" +@.str195 = private unnamed_addr constant [2 x i8] c"}\00" +@.str196 = private unnamed_addr constant [2 x i8] c",\00" +@.str197 = private unnamed_addr constant [2 x i8] c"]\00" +@.str198 = private unnamed_addr constant [3 x i8] c"on\00" +@.str199 = private unnamed_addr constant [2 x i8] c",\00" +@.str200 = private unnamed_addr constant [2 x i8] c")\00" +@.str201 = private unnamed_addr constant [2 x i8] c"{\00" +@.str202 = private unnamed_addr constant [2 x i8] c"}\00" +@.str203 = private unnamed_addr constant [2 x i8] c",\00" +@.str204 = private unnamed_addr constant [2 x i8] c"}\00" +@.str205 = private unnamed_addr constant [2 x i8] c"{\00" +@.str206 = private unnamed_addr constant [2 x i8] c"}\00" +@.str207 = private unnamed_addr constant [2 x i8] c",\00" +@.str208 = private unnamed_addr constant [2 x i8] c"}\00" +@.str209 = private unnamed_addr constant [2 x i8] c"{\00" +@.str210 = private unnamed_addr constant [2 x i8] c"}\00" +@.str211 = private unnamed_addr constant [2 x i8] c",\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 [2 x i8] c",\00" +@.str217 = private unnamed_addr constant [2 x i8] c")\00" +@.str218 = private unnamed_addr constant [5 x i8] c"void\00" +@.str219 = private unnamed_addr constant [3 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 [2 x i8] c"{\00" -@.str223 = private unnamed_addr constant [2 x i8] c"}\00" +@.str222 = private unnamed_addr constant [2 x i8] c":\00" +@.str223 = private unnamed_addr constant [2 x i8] c"{\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 [3 x i8] c"%t\00" -@.str228 = private unnamed_addr constant [3 x i8] c" \00" -@.str229 = private unnamed_addr constant [11 x i8] c" = alloca \00" -@.str230 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str231 = private unnamed_addr constant [3 x i8] c"%t\00" -@.str232 = private unnamed_addr constant [4 x i8] c"int\00" -@.str233 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str234 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str235 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str236 = private unnamed_addr constant [5 x i8] c"void\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 [3 x i8] c"%t\00" +@.str229 = private unnamed_addr constant [3 x i8] c" \00" +@.str230 = private unnamed_addr constant [11 x i8] c" = alloca \00" +@.str231 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str232 = private unnamed_addr constant [3 x i8] c"%t\00" +@.str233 = private unnamed_addr constant [4 x i8] c"int\00" +@.str234 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str235 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str236 = private unnamed_addr constant [4 x i8] c"i32\00" @.str237 = private unnamed_addr constant [5 x i8] c"void\00" -@.str238 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str239 = private unnamed_addr constant [6 x i8] c"%Cmp_\00" -@.str240 = private unnamed_addr constant [4 x i8] c"int\00" -@.str241 = private unnamed_addr constant [2 x i8] c".\00" +@.str238 = private unnamed_addr constant [5 x i8] c"void\00" +@.str239 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str240 = private unnamed_addr constant [6 x i8] c"%Cmp_\00" +@.str241 = private unnamed_addr constant [4 x i8] c"int\00" @.str242 = private unnamed_addr constant [2 x i8] c".\00" -@.str243 = private unnamed_addr constant [6 x i8] c"@.str\00" -@.str244 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" -@.str245 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" -@.str246 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" -@.str247 = private unnamed_addr constant [3 x i8] c" \00" -@.str248 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00" -@.str249 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str250 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str251 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str252 = private unnamed_addr constant [5 x i8] c"null\00" -@.str253 = private unnamed_addr constant [2 x i8] c"0\00" -@.str254 = private unnamed_addr constant [2 x i8] c"-\00" +@.str243 = private unnamed_addr constant [2 x i8] c".\00" +@.str244 = private unnamed_addr constant [6 x i8] c"@.str\00" +@.str245 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" +@.str246 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" +@.str247 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" +@.str248 = private unnamed_addr constant [3 x i8] c" \00" +@.str249 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00" +@.str250 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str251 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str252 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str253 = private unnamed_addr constant [5 x i8] c"null\00" +@.str254 = private unnamed_addr constant [2 x i8] c"0\00" @.str255 = private unnamed_addr constant [2 x i8] c"-\00" -@.str256 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str257 = private unnamed_addr constant [5 x i8] c"null\00" -@.str258 = private unnamed_addr constant [2 x i8] c"0\00" -@.str259 = private unnamed_addr constant [34 x i8] c"; Ludic (self-hosted) -> LLVM IR\0A\00" -@.str260 = private unnamed_addr constant [31 x i8] c"declare i32 @printf(ptr, ...)\0A\00" -@.str261 = private unnamed_addr constant [26 x i8] c"declare ptr @malloc(i64)\0A\00" -@.str262 = private unnamed_addr constant [32 x i8] c"declare ptr @realloc(ptr, i64)\0A\00" -@.str263 = private unnamed_addr constant [25 x i8] c"declare void @free(ptr)\0A\00" -@.str264 = private unnamed_addr constant [30 x i8] c"declare ptr @fopen(ptr, ptr)\0A\00" -@.str265 = private unnamed_addr constant [40 x i8] c"declare i64 @fread(ptr, i64, i64, ptr)\0A\00" -@.str266 = private unnamed_addr constant [41 x i8] c"declare i64 @fwrite(ptr, i64, i64, ptr)\0A\00" -@.str267 = private unnamed_addr constant [35 x i8] c"declare i32 @fseek(ptr, i64, i32)\0A\00" -@.str268 = private unnamed_addr constant [25 x i8] c"declare i64 @ftell(ptr)\0A\00" -@.str269 = private unnamed_addr constant [26 x i8] c"declare i32 @fclose(ptr)\0A\00" -@.str270 = private unnamed_addr constant [25 x i8] c"declare void @exit(i32)\0A\00" -@.str271 = private unnamed_addr constant [26 x i8] c"declare i32 @system(ptr)\0A\00" -@.str272 = private unnamed_addr constant [26 x i8] c"declare ptr @getenv(ptr)\0A\00" -@.str273 = private unnamed_addr constant [36 x i8] c"declare ptr @memcpy(ptr, ptr, i64)\0A\00" -@.str274 = private unnamed_addr constant [36 x i8] c"declare ptr @memset(ptr, i32, i64)\0A\00" -@.str275 = private unnamed_addr constant [26 x i8] c"declare i64 @strlen(ptr)\0A\00" -@.str276 = private unnamed_addr constant [24 x i8] c"declare i32 @getchar()\0A\00" -@.str277 = private unnamed_addr constant [27 x i8] c"declare i32 @putchar(i32)\0A\00" -@.str278 = private unnamed_addr constant [24 x i8] c"declare i64 @time(ptr)\0A\00" -@.str279 = private unnamed_addr constant [44 x i8] c"declare void @win_open(i32, i32, i32, ptr)\0A\00" -@.str280 = private unnamed_addr constant [25 x i8] c"declare i32 @win_poll()\0A\00" -@.str281 = private unnamed_addr constant [42 x i8] c"declare void @win_present(ptr, i32, i32)\0A\00" -@.str282 = private unnamed_addr constant [28 x i8] c"declare i32 @win_running()\0A\00" -@.str283 = private unnamed_addr constant [27 x i8] c"declare void @win_close()\0A\00" -@.str284 = private unnamed_addr constant [34 x i8] c"@__stderrp = external global ptr\0A\00" -@.str285 = private unnamed_addr constant [61 x i8] c"@.fmt_str = private unnamed_addr constant [3 x i8] c\22%s\5C00\22\0A\00" -@.str286 = 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" -@.str287 = private unnamed_addr constant [33 x i8] c"@L_argc = internal global i32 0\0A\00" -@.str288 = private unnamed_addr constant [36 x i8] c"@L_argv = internal global ptr null\0A\00" -@.str289 = private unnamed_addr constant [46 x i8] c"@.gametitle = private unnamed_addr constant [\00" -@.str290 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" -@.str291 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" -@.str292 = private unnamed_addr constant [34 x i8] c"%LSlice = type { ptr, i32, i32 }\0A\00" -@.str293 = private unnamed_addr constant [11 x i8] c" = type { \00" -@.str294 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str295 = private unnamed_addr constant [3 x i8] c", \00" -@.str296 = private unnamed_addr constant [4 x i8] c" }\0A\00" -@.str297 = private unnamed_addr constant [4 x i8] c"@g_\00" -@.str298 = private unnamed_addr constant [20 x i8] c" = internal global \00" -@.str299 = private unnamed_addr constant [2 x i8] c" \00" -@.str300 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str301 = private unnamed_addr constant [32 x i8] c"member access on non-aggregate \00" -@.str302 = private unnamed_addr constant [15 x i8] c"no such field \00" -@.str303 = private unnamed_addr constant [3 x i8] c" \00" -@.str304 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" -@.str305 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str306 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str307 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str308 = private unnamed_addr constant [21 x i8] c"indexing a non-slice\00" -@.str309 = private unnamed_addr constant [3 x i8] c" \00" -@.str310 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str311 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" -@.str312 = private unnamed_addr constant [3 x i8] c" \00" -@.str313 = private unnamed_addr constant [18 x i8] c" = load ptr, ptr \00" -@.str314 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str315 = private unnamed_addr constant [3 x i8] c" \00" -@.str316 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" -@.str317 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str318 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str319 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str320 = private unnamed_addr constant [9 x i8] c"ptr_null\00" +@.str256 = private unnamed_addr constant [2 x i8] c"-\00" +@.str257 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str258 = private unnamed_addr constant [5 x i8] c"null\00" +@.str259 = private unnamed_addr constant [2 x i8] c"0\00" +@.str260 = private unnamed_addr constant [34 x i8] c"; Ludic (self-hosted) -> LLVM IR\0A\00" +@.str261 = private unnamed_addr constant [31 x i8] c"declare i32 @printf(ptr, ...)\0A\00" +@.str262 = private unnamed_addr constant [26 x i8] c"declare ptr @malloc(i64)\0A\00" +@.str263 = private unnamed_addr constant [32 x i8] c"declare ptr @realloc(ptr, i64)\0A\00" +@.str264 = private unnamed_addr constant [25 x i8] c"declare void @free(ptr)\0A\00" +@.str265 = private unnamed_addr constant [30 x i8] c"declare ptr @fopen(ptr, ptr)\0A\00" +@.str266 = private unnamed_addr constant [40 x i8] c"declare i64 @fread(ptr, i64, i64, ptr)\0A\00" +@.str267 = private unnamed_addr constant [41 x i8] c"declare i64 @fwrite(ptr, i64, i64, ptr)\0A\00" +@.str268 = private unnamed_addr constant [35 x i8] c"declare i32 @fseek(ptr, i64, i32)\0A\00" +@.str269 = private unnamed_addr constant [25 x i8] c"declare i64 @ftell(ptr)\0A\00" +@.str270 = private unnamed_addr constant [26 x i8] c"declare i32 @fclose(ptr)\0A\00" +@.str271 = private unnamed_addr constant [25 x i8] c"declare void @exit(i32)\0A\00" +@.str272 = private unnamed_addr constant [26 x i8] c"declare i32 @system(ptr)\0A\00" +@.str273 = private unnamed_addr constant [26 x i8] c"declare ptr @getenv(ptr)\0A\00" +@.str274 = private unnamed_addr constant [36 x i8] c"declare ptr @memcpy(ptr, ptr, i64)\0A\00" +@.str275 = private unnamed_addr constant [36 x i8] c"declare ptr @memset(ptr, i32, i64)\0A\00" +@.str276 = private unnamed_addr constant [26 x i8] c"declare i64 @strlen(ptr)\0A\00" +@.str277 = private unnamed_addr constant [24 x i8] c"declare i32 @getchar()\0A\00" +@.str278 = private unnamed_addr constant [27 x i8] c"declare i32 @putchar(i32)\0A\00" +@.str279 = private unnamed_addr constant [24 x i8] c"declare i64 @time(ptr)\0A\00" +@.str280 = private unnamed_addr constant [44 x i8] c"declare void @win_open(i32, i32, i32, ptr)\0A\00" +@.str281 = private unnamed_addr constant [25 x i8] c"declare i32 @win_poll()\0A\00" +@.str282 = private unnamed_addr constant [42 x i8] c"declare void @win_present(ptr, i32, i32)\0A\00" +@.str283 = private unnamed_addr constant [28 x i8] c"declare i32 @win_running()\0A\00" +@.str284 = private unnamed_addr constant [27 x i8] c"declare void @win_close()\0A\00" +@.str285 = private unnamed_addr constant [34 x i8] c"@__stderrp = external global ptr\0A\00" +@.str286 = private unnamed_addr constant [61 x i8] c"@.fmt_str = private unnamed_addr constant [3 x i8] c\22%s\5C00\22\0A\00" +@.str287 = 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" +@.str288 = private unnamed_addr constant [33 x i8] c"@L_argc = internal global i32 0\0A\00" +@.str289 = private unnamed_addr constant [36 x i8] c"@L_argv = internal global ptr null\0A\00" +@.str290 = private unnamed_addr constant [46 x i8] c"@.gametitle = private unnamed_addr constant [\00" +@.str291 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" +@.str292 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" +@.str293 = private unnamed_addr constant [34 x i8] c"%LSlice = type { ptr, i32, i32 }\0A\00" +@.str294 = private unnamed_addr constant [11 x i8] c" = type { \00" +@.str295 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str296 = private unnamed_addr constant [3 x i8] c", \00" +@.str297 = private unnamed_addr constant [4 x i8] c" }\0A\00" +@.str298 = private unnamed_addr constant [4 x i8] c"@g_\00" +@.str299 = private unnamed_addr constant [20 x i8] c" = internal global \00" +@.str300 = private unnamed_addr constant [2 x i8] c" \00" +@.str301 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str302 = private unnamed_addr constant [32 x i8] c"member access on non-aggregate \00" +@.str303 = private unnamed_addr constant [15 x i8] c"no such field \00" +@.str304 = private unnamed_addr constant [3 x i8] c" \00" +@.str305 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" +@.str306 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str307 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str308 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str309 = private unnamed_addr constant [21 x i8] c"indexing a non-slice\00" +@.str310 = private unnamed_addr constant [3 x i8] c" \00" +@.str311 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" +@.str312 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" +@.str313 = private unnamed_addr constant [3 x i8] c" \00" +@.str314 = private unnamed_addr constant [18 x i8] c" = load ptr, ptr \00" +@.str315 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str316 = private unnamed_addr constant [3 x i8] c" \00" +@.str317 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" +@.str318 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str319 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str320 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str321 = private unnamed_addr constant [10 x i8] c"mem_alloc\00" @.str322 = private unnamed_addr constant [12 x i8] c"mem_realloc\00" @.str323 = private unnamed_addr constant [6 x i8] c"peek8\00" @.str324 = private unnamed_addr constant [6 x i8] c"poke8\00" -@.str325 = private unnamed_addr constant [12 x i8] c"ptr_is_null\00" -@.str326 = private unnamed_addr constant [10 x i8] c"file_open\00" -@.str327 = private unnamed_addr constant [10 x i8] c"file_read\00" -@.str328 = private unnamed_addr constant [11 x i8] c"file_write\00" -@.str329 = private unnamed_addr constant [10 x i8] c"file_seek\00" -@.str330 = private unnamed_addr constant [10 x i8] c"file_tell\00" -@.str331 = private unnamed_addr constant [11 x i8] c"file_close\00" -@.str332 = private unnamed_addr constant [10 x i8] c"print_str\00" -@.str333 = private unnamed_addr constant [10 x i8] c"print_int\00" -@.str334 = private unnamed_addr constant [8 x i8] c"os_argc\00" -@.str335 = private unnamed_addr constant [7 x i8] c"os_arg\00" -@.str336 = private unnamed_addr constant [8 x i8] c"os_exit\00" -@.str337 = private unnamed_addr constant [12 x i8] c"file_stderr\00" -@.str338 = private unnamed_addr constant [10 x i8] c"os_system\00" -@.str339 = private unnamed_addr constant [10 x i8] c"os_getenv\00" -@.str340 = private unnamed_addr constant [7 x i8] c"peek32\00" -@.str341 = private unnamed_addr constant [7 x i8] c"poke32\00" -@.str342 = private unnamed_addr constant [3 x i8] c" \00" -@.str343 = private unnamed_addr constant [4 x i8] c" = \00" -@.str344 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str345 = private unnamed_addr constant [9 x i8] c"ptr_null\00" -@.str346 = private unnamed_addr constant [5 x i8] c"null\00" -@.str347 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str348 = private unnamed_addr constant [10 x i8] c"mem_alloc\00" -@.str349 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str350 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str351 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" -@.str352 = private unnamed_addr constant [2 x i8] c")\00" -@.str353 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str354 = private unnamed_addr constant [12 x i8] c"mem_realloc\00" -@.str355 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str356 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str357 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" -@.str358 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str359 = private unnamed_addr constant [2 x i8] c")\00" -@.str360 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str361 = private unnamed_addr constant [6 x i8] c"peek8\00" -@.str362 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" -@.str363 = private unnamed_addr constant [9 x i8] c"zext i8 \00" -@.str364 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str365 = private unnamed_addr constant [4 x i8] c"int\00" -@.str366 = private unnamed_addr constant [6 x i8] c"poke8\00" -@.str367 = private unnamed_addr constant [11 x i8] c"trunc i32 \00" -@.str368 = private unnamed_addr constant [7 x i8] c" to i8\00" -@.str369 = private unnamed_addr constant [12 x i8] c" store i8 \00" -@.str370 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str371 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str372 = private unnamed_addr constant [2 x i8] c"0\00" -@.str373 = private unnamed_addr constant [5 x i8] c"void\00" -@.str374 = private unnamed_addr constant [12 x i8] c"ptr_is_null\00" -@.str375 = private unnamed_addr constant [13 x i8] c"icmp eq ptr \00" -@.str376 = private unnamed_addr constant [7 x i8] c", null\00" -@.str377 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str378 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str379 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str380 = private unnamed_addr constant [10 x i8] c"file_open\00" -@.str381 = private unnamed_addr constant [21 x i8] c"call ptr @fopen(ptr \00" -@.str382 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str383 = private unnamed_addr constant [2 x i8] c")\00" -@.str384 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str385 = private unnamed_addr constant [10 x i8] c"file_read\00" -@.str386 = private unnamed_addr constant [11 x i8] c"file_write\00" -@.str387 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str388 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str389 = private unnamed_addr constant [7 x i8] c"@fread\00" -@.str390 = private unnamed_addr constant [11 x i8] c"file_write\00" -@.str391 = private unnamed_addr constant [8 x i8] c"@fwrite\00" -@.str392 = private unnamed_addr constant [10 x i8] c"call i64 \00" -@.str393 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str394 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" -@.str395 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str325 = private unnamed_addr constant [10 x i8] c"file_open\00" +@.str326 = private unnamed_addr constant [10 x i8] c"file_read\00" +@.str327 = private unnamed_addr constant [11 x i8] c"file_write\00" +@.str328 = private unnamed_addr constant [10 x i8] c"file_seek\00" +@.str329 = private unnamed_addr constant [10 x i8] c"file_tell\00" +@.str330 = private unnamed_addr constant [11 x i8] c"file_close\00" +@.str331 = private unnamed_addr constant [10 x i8] c"print_str\00" +@.str332 = private unnamed_addr constant [10 x i8] c"print_int\00" +@.str333 = private unnamed_addr constant [8 x i8] c"os_argc\00" +@.str334 = private unnamed_addr constant [7 x i8] c"os_arg\00" +@.str335 = private unnamed_addr constant [8 x i8] c"os_exit\00" +@.str336 = private unnamed_addr constant [12 x i8] c"file_stderr\00" +@.str337 = private unnamed_addr constant [10 x i8] c"os_system\00" +@.str338 = private unnamed_addr constant [10 x i8] c"os_getenv\00" +@.str339 = private unnamed_addr constant [7 x i8] c"peek32\00" +@.str340 = private unnamed_addr constant [7 x i8] c"poke32\00" +@.str341 = private unnamed_addr constant [3 x i8] c" \00" +@.str342 = private unnamed_addr constant [4 x i8] c" = \00" +@.str343 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str344 = private unnamed_addr constant [10 x i8] c"mem_alloc\00" +@.str345 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str346 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str347 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" +@.str348 = private unnamed_addr constant [2 x i8] c")\00" +@.str349 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str350 = private unnamed_addr constant [12 x i8] c"mem_realloc\00" +@.str351 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str352 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str353 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" +@.str354 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str355 = private unnamed_addr constant [2 x i8] c")\00" +@.str356 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str357 = private unnamed_addr constant [6 x i8] c"peek8\00" +@.str358 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" +@.str359 = private unnamed_addr constant [9 x i8] c"zext i8 \00" +@.str360 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str361 = private unnamed_addr constant [4 x i8] c"int\00" +@.str362 = private unnamed_addr constant [6 x i8] c"poke8\00" +@.str363 = private unnamed_addr constant [11 x i8] c"trunc i32 \00" +@.str364 = private unnamed_addr constant [7 x i8] c" to i8\00" +@.str365 = private unnamed_addr constant [12 x i8] c" store i8 \00" +@.str366 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str367 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str368 = private unnamed_addr constant [2 x i8] c"0\00" +@.str369 = private unnamed_addr constant [5 x i8] c"void\00" +@.str370 = private unnamed_addr constant [10 x i8] c"file_open\00" +@.str371 = private unnamed_addr constant [21 x i8] c"call ptr @fopen(ptr \00" +@.str372 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str373 = private unnamed_addr constant [2 x i8] c")\00" +@.str374 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str375 = private unnamed_addr constant [10 x i8] c"file_read\00" +@.str376 = private unnamed_addr constant [11 x i8] c"file_write\00" +@.str377 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str378 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str379 = private unnamed_addr constant [7 x i8] c"@fread\00" +@.str380 = private unnamed_addr constant [11 x i8] c"file_write\00" +@.str381 = private unnamed_addr constant [8 x i8] c"@fwrite\00" +@.str382 = private unnamed_addr constant [10 x i8] c"call i64 \00" +@.str383 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str384 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" +@.str385 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str386 = private unnamed_addr constant [2 x i8] c")\00" +@.str387 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str388 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str389 = private unnamed_addr constant [4 x i8] c"int\00" +@.str390 = private unnamed_addr constant [10 x i8] c"file_seek\00" +@.str391 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str392 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str393 = private unnamed_addr constant [21 x i8] c"call i32 @fseek(ptr \00" +@.str394 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str395 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str396 = private unnamed_addr constant [2 x i8] c")\00" -@.str397 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str398 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str399 = private unnamed_addr constant [4 x i8] c"int\00" -@.str400 = private unnamed_addr constant [10 x i8] c"file_seek\00" -@.str401 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str402 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str403 = private unnamed_addr constant [21 x i8] c"call i32 @fseek(ptr \00" -@.str404 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str405 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str406 = private unnamed_addr constant [2 x i8] c")\00" -@.str407 = private unnamed_addr constant [4 x i8] c"int\00" -@.str408 = private unnamed_addr constant [10 x i8] c"file_tell\00" -@.str409 = private unnamed_addr constant [21 x i8] c"call i64 @ftell(ptr \00" -@.str410 = private unnamed_addr constant [2 x i8] c")\00" -@.str411 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str412 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str413 = private unnamed_addr constant [4 x i8] c"int\00" -@.str414 = private unnamed_addr constant [11 x i8] c"file_close\00" -@.str415 = private unnamed_addr constant [24 x i8] c" call i32 @fclose(ptr \00" +@.str397 = private unnamed_addr constant [4 x i8] c"int\00" +@.str398 = private unnamed_addr constant [10 x i8] c"file_tell\00" +@.str399 = private unnamed_addr constant [21 x i8] c"call i64 @ftell(ptr \00" +@.str400 = private unnamed_addr constant [2 x i8] c")\00" +@.str401 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str402 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str403 = private unnamed_addr constant [4 x i8] c"int\00" +@.str404 = private unnamed_addr constant [11 x i8] c"file_close\00" +@.str405 = private unnamed_addr constant [24 x i8] c" call i32 @fclose(ptr \00" +@.str406 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str407 = private unnamed_addr constant [2 x i8] c"0\00" +@.str408 = private unnamed_addr constant [5 x i8] c"void\00" +@.str409 = private unnamed_addr constant [10 x i8] c"print_str\00" +@.str410 = private unnamed_addr constant [50 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_str, ptr \00" +@.str411 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str412 = private unnamed_addr constant [2 x i8] c"0\00" +@.str413 = private unnamed_addr constant [5 x i8] c"void\00" +@.str414 = private unnamed_addr constant [10 x i8] c"print_int\00" +@.str415 = private unnamed_addr constant [50 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_int, i32 \00" @.str416 = private unnamed_addr constant [3 x i8] c")\0A\00" @.str417 = private unnamed_addr constant [2 x i8] c"0\00" @.str418 = private unnamed_addr constant [5 x i8] c"void\00" -@.str419 = private unnamed_addr constant [10 x i8] c"print_str\00" -@.str420 = private unnamed_addr constant [50 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_str, ptr \00" -@.str421 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str422 = private unnamed_addr constant [2 x i8] c"0\00" -@.str423 = private unnamed_addr constant [5 x i8] c"void\00" -@.str424 = private unnamed_addr constant [10 x i8] c"print_int\00" -@.str425 = private unnamed_addr constant [50 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_int, i32 \00" -@.str426 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str427 = private unnamed_addr constant [2 x i8] c"0\00" -@.str428 = private unnamed_addr constant [5 x i8] c"void\00" -@.str429 = private unnamed_addr constant [8 x i8] c"os_argc\00" -@.str430 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_argc\00" -@.str431 = private unnamed_addr constant [4 x i8] c"int\00" -@.str432 = private unnamed_addr constant [7 x i8] c"os_arg\00" -@.str433 = private unnamed_addr constant [22 x i8] c"load ptr, ptr @L_argv\00" -@.str434 = private unnamed_addr constant [24 x i8] c"getelementptr ptr, ptr \00" -@.str435 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str436 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" -@.str437 = private unnamed_addr constant [4 x i8] c"str\00" -@.str438 = private unnamed_addr constant [8 x i8] c"os_exit\00" -@.str439 = private unnamed_addr constant [23 x i8] c" call void @exit(i32 \00" -@.str440 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str441 = private unnamed_addr constant [15 x i8] c" unreachable\0A\00" -@.str442 = private unnamed_addr constant [2 x i8] c"0\00" -@.str443 = private unnamed_addr constant [5 x i8] c"void\00" -@.str444 = private unnamed_addr constant [12 x i8] c"file_stderr\00" -@.str445 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stderrp\00" -@.str446 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str447 = private unnamed_addr constant [10 x i8] c"os_system\00" -@.str448 = private unnamed_addr constant [22 x i8] c"call i32 @system(ptr \00" -@.str449 = private unnamed_addr constant [2 x i8] c")\00" -@.str450 = private unnamed_addr constant [4 x i8] c"int\00" -@.str451 = private unnamed_addr constant [10 x i8] c"os_getenv\00" -@.str452 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" -@.str453 = private unnamed_addr constant [2 x i8] c")\00" -@.str454 = private unnamed_addr constant [4 x i8] c"str\00" -@.str455 = private unnamed_addr constant [7 x i8] c"peek32\00" -@.str456 = private unnamed_addr constant [3 x i8] c" \00" -@.str457 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" -@.str458 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str419 = private unnamed_addr constant [8 x i8] c"os_argc\00" +@.str420 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_argc\00" +@.str421 = private unnamed_addr constant [4 x i8] c"int\00" +@.str422 = private unnamed_addr constant [7 x i8] c"os_arg\00" +@.str423 = private unnamed_addr constant [22 x i8] c"load ptr, ptr @L_argv\00" +@.str424 = private unnamed_addr constant [24 x i8] c"getelementptr ptr, ptr \00" +@.str425 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str426 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" +@.str427 = private unnamed_addr constant [4 x i8] c"str\00" +@.str428 = private unnamed_addr constant [8 x i8] c"os_exit\00" +@.str429 = private unnamed_addr constant [23 x i8] c" call void @exit(i32 \00" +@.str430 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str431 = private unnamed_addr constant [15 x i8] c" unreachable\0A\00" +@.str432 = private unnamed_addr constant [2 x i8] c"0\00" +@.str433 = private unnamed_addr constant [5 x i8] c"void\00" +@.str434 = private unnamed_addr constant [12 x i8] c"file_stderr\00" +@.str435 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stderrp\00" +@.str436 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str437 = private unnamed_addr constant [10 x i8] c"os_system\00" +@.str438 = private unnamed_addr constant [22 x i8] c"call i32 @system(ptr \00" +@.str439 = private unnamed_addr constant [2 x i8] c")\00" +@.str440 = private unnamed_addr constant [4 x i8] c"int\00" +@.str441 = private unnamed_addr constant [10 x i8] c"os_getenv\00" +@.str442 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" +@.str443 = private unnamed_addr constant [2 x i8] c")\00" +@.str444 = private unnamed_addr constant [4 x i8] c"str\00" +@.str445 = private unnamed_addr constant [7 x i8] c"peek32\00" +@.str446 = private unnamed_addr constant [3 x i8] c" \00" +@.str447 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" +@.str448 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str449 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str450 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str451 = private unnamed_addr constant [4 x i8] c"int\00" +@.str452 = private unnamed_addr constant [7 x i8] c"poke32\00" +@.str453 = private unnamed_addr constant [3 x i8] c" \00" +@.str454 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" +@.str455 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str456 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str457 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str458 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str459 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str460 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str461 = private unnamed_addr constant [4 x i8] c"int\00" -@.str462 = private unnamed_addr constant [7 x i8] c"poke32\00" -@.str463 = private unnamed_addr constant [3 x i8] c" \00" -@.str464 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" -@.str465 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str466 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str467 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str468 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str469 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str470 = private unnamed_addr constant [2 x i8] c"0\00" -@.str471 = private unnamed_addr constant [5 x i8] c"void\00" -@.str472 = private unnamed_addr constant [2 x i8] c"0\00" -@.str473 = private unnamed_addr constant [5 x i8] c"void\00" -@.str474 = private unnamed_addr constant [9 x i8] c"mem_free\00" -@.str475 = private unnamed_addr constant [9 x i8] c"mem_copy\00" -@.str476 = private unnamed_addr constant [8 x i8] c"mem_set\00" -@.str477 = private unnamed_addr constant [8 x i8] c"ptr_add\00" -@.str478 = private unnamed_addr constant [10 x i8] c"read_byte\00" -@.str479 = private unnamed_addr constant [11 x i8] c"write_byte\00" -@.str480 = private unnamed_addr constant [8 x i8] c"str_len\00" -@.str481 = private unnamed_addr constant [8 x i8] c"os_time\00" -@.str482 = private unnamed_addr constant [6 x i8] c"peekf\00" -@.str483 = private unnamed_addr constant [6 x i8] c"pokef\00" -@.str484 = private unnamed_addr constant [9 x i8] c"as_fixed\00" -@.str485 = private unnamed_addr constant [7 x i8] c"as_int\00" -@.str486 = private unnamed_addr constant [6 x i8] c"peekp\00" -@.str487 = private unnamed_addr constant [6 x i8] c"pokep\00" -@.str488 = private unnamed_addr constant [12 x i8] c"is_windowed\00" -@.str489 = private unnamed_addr constant [11 x i8] c"game_title\00" -@.str490 = private unnamed_addr constant [9 x i8] c"win_open\00" -@.str491 = private unnamed_addr constant [9 x i8] c"win_poll\00" -@.str492 = private unnamed_addr constant [12 x i8] c"win_present\00" -@.str493 = private unnamed_addr constant [12 x i8] c"win_running\00" -@.str494 = private unnamed_addr constant [10 x i8] c"win_close\00" -@.str495 = private unnamed_addr constant [9 x i8] c"mem_free\00" -@.str496 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \00" -@.str497 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str498 = private unnamed_addr constant [2 x i8] c"0\00" -@.str499 = private unnamed_addr constant [5 x i8] c"void\00" -@.str500 = private unnamed_addr constant [9 x i8] c"mem_copy\00" -@.str501 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str502 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str503 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" -@.str504 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str505 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str506 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str507 = private unnamed_addr constant [2 x i8] c"0\00" -@.str508 = private unnamed_addr constant [5 x i8] c"void\00" -@.str509 = private unnamed_addr constant [8 x i8] c"mem_set\00" -@.str510 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str511 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str512 = private unnamed_addr constant [24 x i8] c" call ptr @memset(ptr \00" -@.str513 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str514 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str515 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str516 = private unnamed_addr constant [2 x i8] c"0\00" -@.str517 = private unnamed_addr constant [5 x i8] c"void\00" -@.str518 = private unnamed_addr constant [8 x i8] c"ptr_add\00" -@.str519 = private unnamed_addr constant [3 x i8] c" \00" -@.str520 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00" -@.str521 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str522 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str523 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str524 = private unnamed_addr constant [10 x i8] c"read_byte\00" -@.str525 = private unnamed_addr constant [20 x i8] c"call i32 @getchar()\00" -@.str526 = private unnamed_addr constant [4 x i8] c"int\00" -@.str527 = private unnamed_addr constant [11 x i8] c"write_byte\00" -@.str528 = private unnamed_addr constant [25 x i8] c" call i32 @putchar(i32 \00" -@.str529 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str530 = private unnamed_addr constant [2 x i8] c"0\00" -@.str531 = private unnamed_addr constant [5 x i8] c"void\00" -@.str532 = private unnamed_addr constant [8 x i8] c"str_len\00" -@.str533 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" -@.str534 = private unnamed_addr constant [2 x i8] c")\00" -@.str535 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str536 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str537 = private unnamed_addr constant [4 x i8] c"int\00" -@.str538 = private unnamed_addr constant [8 x i8] c"os_time\00" -@.str539 = private unnamed_addr constant [25 x i8] c"call i64 @time(ptr null)\00" -@.str540 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str541 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str542 = private unnamed_addr constant [4 x i8] c"int\00" -@.str543 = private unnamed_addr constant [6 x i8] c"peekf\00" -@.str544 = private unnamed_addr constant [3 x i8] c" \00" -@.str545 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" -@.str546 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str460 = private unnamed_addr constant [2 x i8] c"0\00" +@.str461 = private unnamed_addr constant [5 x i8] c"void\00" +@.str462 = private unnamed_addr constant [2 x i8] c"0\00" +@.str463 = private unnamed_addr constant [5 x i8] c"void\00" +@.str464 = private unnamed_addr constant [9 x i8] c"mem_free\00" +@.str465 = private unnamed_addr constant [9 x i8] c"mem_copy\00" +@.str466 = private unnamed_addr constant [8 x i8] c"mem_set\00" +@.str467 = private unnamed_addr constant [8 x i8] c"ptr_add\00" +@.str468 = private unnamed_addr constant [10 x i8] c"read_byte\00" +@.str469 = private unnamed_addr constant [11 x i8] c"write_byte\00" +@.str470 = private unnamed_addr constant [8 x i8] c"str_len\00" +@.str471 = private unnamed_addr constant [8 x i8] c"os_time\00" +@.str472 = private unnamed_addr constant [6 x i8] c"peekf\00" +@.str473 = private unnamed_addr constant [6 x i8] c"pokef\00" +@.str474 = private unnamed_addr constant [9 x i8] c"as_fixed\00" +@.str475 = private unnamed_addr constant [7 x i8] c"as_int\00" +@.str476 = private unnamed_addr constant [6 x i8] c"peekp\00" +@.str477 = private unnamed_addr constant [6 x i8] c"pokep\00" +@.str478 = private unnamed_addr constant [12 x i8] c"is_windowed\00" +@.str479 = private unnamed_addr constant [11 x i8] c"game_title\00" +@.str480 = private unnamed_addr constant [9 x i8] c"win_open\00" +@.str481 = private unnamed_addr constant [9 x i8] c"win_poll\00" +@.str482 = private unnamed_addr constant [12 x i8] c"win_present\00" +@.str483 = private unnamed_addr constant [12 x i8] c"win_running\00" +@.str484 = private unnamed_addr constant [10 x i8] c"win_close\00" +@.str485 = private unnamed_addr constant [9 x i8] c"mem_free\00" +@.str486 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \00" +@.str487 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str488 = private unnamed_addr constant [2 x i8] c"0\00" +@.str489 = private unnamed_addr constant [5 x i8] c"void\00" +@.str490 = private unnamed_addr constant [9 x i8] c"mem_copy\00" +@.str491 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str492 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str493 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" +@.str494 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str495 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str496 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str497 = private unnamed_addr constant [2 x i8] c"0\00" +@.str498 = private unnamed_addr constant [5 x i8] c"void\00" +@.str499 = private unnamed_addr constant [8 x i8] c"mem_set\00" +@.str500 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str501 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str502 = private unnamed_addr constant [24 x i8] c" call ptr @memset(ptr \00" +@.str503 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str504 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str505 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str506 = private unnamed_addr constant [2 x i8] c"0\00" +@.str507 = private unnamed_addr constant [5 x i8] c"void\00" +@.str508 = private unnamed_addr constant [8 x i8] c"ptr_add\00" +@.str509 = private unnamed_addr constant [3 x i8] c" \00" +@.str510 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00" +@.str511 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str512 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str513 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str514 = private unnamed_addr constant [10 x i8] c"read_byte\00" +@.str515 = private unnamed_addr constant [20 x i8] c"call i32 @getchar()\00" +@.str516 = private unnamed_addr constant [4 x i8] c"int\00" +@.str517 = private unnamed_addr constant [11 x i8] c"write_byte\00" +@.str518 = private unnamed_addr constant [25 x i8] c" call i32 @putchar(i32 \00" +@.str519 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str520 = private unnamed_addr constant [2 x i8] c"0\00" +@.str521 = private unnamed_addr constant [5 x i8] c"void\00" +@.str522 = private unnamed_addr constant [8 x i8] c"str_len\00" +@.str523 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" +@.str524 = private unnamed_addr constant [2 x i8] c")\00" +@.str525 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str526 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str527 = private unnamed_addr constant [4 x i8] c"int\00" +@.str528 = private unnamed_addr constant [8 x i8] c"os_time\00" +@.str529 = private unnamed_addr constant [25 x i8] c"call i64 @time(ptr null)\00" +@.str530 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str531 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str532 = private unnamed_addr constant [4 x i8] c"int\00" +@.str533 = private unnamed_addr constant [6 x i8] c"peekf\00" +@.str534 = private unnamed_addr constant [3 x i8] c" \00" +@.str535 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" +@.str536 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str537 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str538 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str539 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str540 = private unnamed_addr constant [6 x i8] c"pokef\00" +@.str541 = private unnamed_addr constant [3 x i8] c" \00" +@.str542 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" +@.str543 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str544 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str545 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str546 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str547 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str548 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str549 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str550 = private unnamed_addr constant [6 x i8] c"pokef\00" +@.str548 = private unnamed_addr constant [2 x i8] c"0\00" +@.str549 = private unnamed_addr constant [5 x i8] c"void\00" +@.str550 = private unnamed_addr constant [6 x i8] c"peekp\00" @.str551 = private unnamed_addr constant [3 x i8] c" \00" -@.str552 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" +@.str552 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds ptr, ptr \00" @.str553 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str554 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str555 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str556 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str557 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str558 = private unnamed_addr constant [2 x i8] c"0\00" -@.str559 = private unnamed_addr constant [5 x i8] c"void\00" -@.str560 = private unnamed_addr constant [6 x i8] c"peekp\00" -@.str561 = private unnamed_addr constant [3 x i8] c" \00" -@.str562 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds ptr, ptr \00" -@.str563 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str555 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" +@.str556 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str557 = private unnamed_addr constant [6 x i8] c"pokep\00" +@.str558 = private unnamed_addr constant [3 x i8] c" \00" +@.str559 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds ptr, ptr \00" +@.str560 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str561 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str562 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str563 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str564 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str565 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" -@.str566 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str567 = private unnamed_addr constant [6 x i8] c"pokep\00" -@.str568 = private unnamed_addr constant [3 x i8] c" \00" -@.str569 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds ptr, ptr \00" -@.str570 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str571 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str572 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str573 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str574 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str575 = private unnamed_addr constant [2 x i8] c"0\00" -@.str576 = private unnamed_addr constant [5 x i8] c"void\00" -@.str577 = private unnamed_addr constant [9 x i8] c"as_fixed\00" -@.str578 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str579 = private unnamed_addr constant [7 x i8] c"as_int\00" -@.str580 = private unnamed_addr constant [4 x i8] c"int\00" -@.str581 = private unnamed_addr constant [12 x i8] c"is_windowed\00" -@.str582 = private unnamed_addr constant [2 x i8] c"1\00" -@.str583 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str584 = private unnamed_addr constant [2 x i8] c"0\00" -@.str585 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str586 = private unnamed_addr constant [11 x i8] c"game_title\00" -@.str587 = private unnamed_addr constant [12 x i8] c"@.gametitle\00" -@.str588 = private unnamed_addr constant [4 x i8] c"str\00" -@.str589 = private unnamed_addr constant [9 x i8] c"win_poll\00" -@.str590 = private unnamed_addr constant [21 x i8] c"call i32 @win_poll()\00" -@.str591 = private unnamed_addr constant [4 x i8] c"int\00" -@.str592 = private unnamed_addr constant [12 x i8] c"win_running\00" -@.str593 = private unnamed_addr constant [24 x i8] c"call i32 @win_running()\00" -@.str594 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str595 = private unnamed_addr constant [9 x i8] c"win_open\00" -@.str596 = private unnamed_addr constant [27 x i8] c" call void @win_open(i32 \00" -@.str597 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str598 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str599 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str600 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str601 = private unnamed_addr constant [2 x i8] c"0\00" -@.str602 = private unnamed_addr constant [5 x i8] c"void\00" -@.str603 = private unnamed_addr constant [12 x i8] c"win_present\00" -@.str604 = private unnamed_addr constant [30 x i8] c" call void @win_present(ptr \00" -@.str605 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str606 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str607 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str608 = private unnamed_addr constant [2 x i8] c"0\00" -@.str609 = private unnamed_addr constant [5 x i8] c"void\00" -@.str610 = private unnamed_addr constant [10 x i8] c"win_close\00" -@.str611 = private unnamed_addr constant [26 x i8] c" call void @win_close()\0A\00" -@.str612 = private unnamed_addr constant [2 x i8] c"0\00" -@.str613 = private unnamed_addr constant [5 x i8] c"void\00" -@.str614 = private unnamed_addr constant [2 x i8] c"0\00" -@.str615 = private unnamed_addr constant [5 x i8] c"void\00" -@.str616 = private unnamed_addr constant [4 x i8] c"min\00" -@.str617 = private unnamed_addr constant [4 x i8] c"max\00" -@.str618 = private unnamed_addr constant [4 x i8] c"abs\00" -@.str619 = private unnamed_addr constant [6 x i8] c"clamp\00" -@.str620 = private unnamed_addr constant [4 x i8] c"abs\00" -@.str621 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" -@.str622 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str623 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" -@.str624 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str625 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str626 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str627 = private unnamed_addr constant [4 x i8] c"int\00" -@.str628 = private unnamed_addr constant [4 x i8] c"min\00" -@.str629 = private unnamed_addr constant [4 x i8] c"max\00" -@.str630 = private unnamed_addr constant [4 x i8] c"slt\00" -@.str631 = private unnamed_addr constant [4 x i8] c"max\00" -@.str632 = private unnamed_addr constant [4 x i8] c"sgt\00" -@.str633 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str634 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str635 = private unnamed_addr constant [3 x i8] c", \00" -@.str636 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str637 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str565 = private unnamed_addr constant [2 x i8] c"0\00" +@.str566 = private unnamed_addr constant [5 x i8] c"void\00" +@.str567 = private unnamed_addr constant [9 x i8] c"as_fixed\00" +@.str568 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str569 = private unnamed_addr constant [7 x i8] c"as_int\00" +@.str570 = private unnamed_addr constant [4 x i8] c"int\00" +@.str571 = private unnamed_addr constant [12 x i8] c"is_windowed\00" +@.str572 = private unnamed_addr constant [2 x i8] c"1\00" +@.str573 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str574 = private unnamed_addr constant [2 x i8] c"0\00" +@.str575 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str576 = private unnamed_addr constant [11 x i8] c"game_title\00" +@.str577 = private unnamed_addr constant [12 x i8] c"@.gametitle\00" +@.str578 = private unnamed_addr constant [4 x i8] c"str\00" +@.str579 = private unnamed_addr constant [9 x i8] c"win_poll\00" +@.str580 = private unnamed_addr constant [21 x i8] c"call i32 @win_poll()\00" +@.str581 = private unnamed_addr constant [4 x i8] c"int\00" +@.str582 = private unnamed_addr constant [12 x i8] c"win_running\00" +@.str583 = private unnamed_addr constant [24 x i8] c"call i32 @win_running()\00" +@.str584 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str585 = private unnamed_addr constant [9 x i8] c"win_open\00" +@.str586 = private unnamed_addr constant [27 x i8] c" call void @win_open(i32 \00" +@.str587 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str588 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str589 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str590 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str591 = private unnamed_addr constant [2 x i8] c"0\00" +@.str592 = private unnamed_addr constant [5 x i8] c"void\00" +@.str593 = private unnamed_addr constant [12 x i8] c"win_present\00" +@.str594 = private unnamed_addr constant [30 x i8] c" call void @win_present(ptr \00" +@.str595 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str596 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str597 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str598 = private unnamed_addr constant [2 x i8] c"0\00" +@.str599 = private unnamed_addr constant [5 x i8] c"void\00" +@.str600 = private unnamed_addr constant [10 x i8] c"win_close\00" +@.str601 = private unnamed_addr constant [26 x i8] c" call void @win_close()\0A\00" +@.str602 = private unnamed_addr constant [2 x i8] c"0\00" +@.str603 = private unnamed_addr constant [5 x i8] c"void\00" +@.str604 = private unnamed_addr constant [2 x i8] c"0\00" +@.str605 = private unnamed_addr constant [5 x i8] c"void\00" +@.str606 = private unnamed_addr constant [4 x i8] c"min\00" +@.str607 = private unnamed_addr constant [4 x i8] c"max\00" +@.str608 = private unnamed_addr constant [4 x i8] c"abs\00" +@.str609 = private unnamed_addr constant [6 x i8] c"clamp\00" +@.str610 = private unnamed_addr constant [4 x i8] c"abs\00" +@.str611 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" +@.str612 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str613 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" +@.str614 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str615 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str616 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str617 = private unnamed_addr constant [4 x i8] c"int\00" +@.str618 = private unnamed_addr constant [4 x i8] c"min\00" +@.str619 = private unnamed_addr constant [4 x i8] c"max\00" +@.str620 = private unnamed_addr constant [4 x i8] c"slt\00" +@.str621 = private unnamed_addr constant [4 x i8] c"max\00" +@.str622 = private unnamed_addr constant [4 x i8] c"sgt\00" +@.str623 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str624 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str625 = private unnamed_addr constant [3 x i8] c", \00" +@.str626 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str627 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str628 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str629 = private unnamed_addr constant [4 x i8] c"int\00" +@.str630 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" +@.str631 = private unnamed_addr constant [3 x i8] c", \00" +@.str632 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str633 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str634 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str635 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" +@.str636 = private unnamed_addr constant [3 x i8] c", \00" +@.str637 = private unnamed_addr constant [11 x i8] c"select i1 \00" @.str638 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str639 = private unnamed_addr constant [4 x i8] c"int\00" -@.str640 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" -@.str641 = private unnamed_addr constant [3 x i8] c", \00" -@.str642 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str643 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str644 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str645 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" -@.str646 = private unnamed_addr constant [3 x i8] c", \00" -@.str647 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str648 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str649 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str650 = private unnamed_addr constant [4 x i8] c"int\00" -@.str651 = private unnamed_addr constant [15 x i8] c"getelementptr \00" -@.str652 = private unnamed_addr constant [18 x i8] c", ptr null, i32 1\00" -@.str653 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" -@.str654 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str655 = private unnamed_addr constant [27 x i8] c"unknown record type in new\00" -@.str656 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" -@.str657 = private unnamed_addr constant [2 x i8] c")\00" -@.str658 = private unnamed_addr constant [3 x i8] c" \00" -@.str659 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" -@.str660 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str661 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str662 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str663 = private unnamed_addr constant [2 x i8] c"0\00" -@.str664 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str665 = private unnamed_addr constant [5 x i8] c"null\00" -@.str666 = private unnamed_addr constant [9 x i8] c" store \00" -@.str667 = private unnamed_addr constant [2 x i8] c" \00" -@.str668 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str669 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str670 = private unnamed_addr constant [8 x i8] c"%LSlice\00" -@.str671 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" -@.str672 = private unnamed_addr constant [2 x i8] c")\00" +@.str639 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str640 = private unnamed_addr constant [4 x i8] c"int\00" +@.str641 = private unnamed_addr constant [15 x i8] c"getelementptr \00" +@.str642 = private unnamed_addr constant [18 x i8] c", ptr null, i32 1\00" +@.str643 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" +@.str644 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str645 = private unnamed_addr constant [27 x i8] c"unknown record type in new\00" +@.str646 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" +@.str647 = private unnamed_addr constant [2 x i8] c")\00" +@.str648 = private unnamed_addr constant [3 x i8] c" \00" +@.str649 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" +@.str650 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str651 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str652 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str653 = private unnamed_addr constant [2 x i8] c"0\00" +@.str654 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str655 = private unnamed_addr constant [5 x i8] c"null\00" +@.str656 = private unnamed_addr constant [9 x i8] c" store \00" +@.str657 = private unnamed_addr constant [2 x i8] c" \00" +@.str658 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str659 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str660 = private unnamed_addr constant [8 x i8] c"%LSlice\00" +@.str661 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" +@.str662 = private unnamed_addr constant [2 x i8] c")\00" +@.str663 = private unnamed_addr constant [3 x i8] c" \00" +@.str664 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" +@.str665 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" +@.str666 = private unnamed_addr constant [23 x i8] c" store ptr null, ptr \00" +@.str667 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str668 = private unnamed_addr constant [3 x i8] c" \00" +@.str669 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" +@.str670 = private unnamed_addr constant [16 x i8] c", i32 0, i32 1\0A\00" +@.str671 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" +@.str672 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str673 = private unnamed_addr constant [3 x i8] c" \00" @.str674 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str675 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" -@.str676 = private unnamed_addr constant [23 x i8] c" store ptr null, ptr \00" +@.str675 = private unnamed_addr constant [16 x i8] c", i32 0, i32 2\0A\00" +@.str676 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str677 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str678 = private unnamed_addr constant [3 x i8] c" \00" @.str679 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str680 = private unnamed_addr constant [16 x i8] c", i32 0, i32 1\0A\00" -@.str681 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" -@.str682 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str683 = private unnamed_addr constant [3 x i8] c" \00" -@.str684 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str685 = private unnamed_addr constant [16 x i8] c", i32 0, i32 2\0A\00" -@.str686 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" -@.str687 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str688 = private unnamed_addr constant [3 x i8] c" \00" -@.str689 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str690 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str691 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str692 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str693 = private unnamed_addr constant [4 x i8] c"int\00" -@.str694 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str695 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str696 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" -@.str697 = private unnamed_addr constant [3 x i8] c", \00" -@.str698 = private unnamed_addr constant [5 x i8] c"grow\00" -@.str699 = private unnamed_addr constant [4 x i8] c"put\00" -@.str700 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str701 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str702 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str703 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str704 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str705 = private unnamed_addr constant [9 x i8] c"mul i32 \00" -@.str706 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str707 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str708 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str709 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str710 = private unnamed_addr constant [14 x i8] c", i32 8, i32 \00" -@.str711 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str712 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str713 = private unnamed_addr constant [9 x i8] c"mul i64 \00" -@.str714 = private unnamed_addr constant [3 x i8] c", \00" -@.str715 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" -@.str716 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" -@.str717 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str718 = private unnamed_addr constant [2 x i8] c")\00" -@.str719 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str720 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str721 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str722 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str723 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str724 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str725 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str726 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str727 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str728 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" -@.str729 = private unnamed_addr constant [3 x i8] c" \00" -@.str730 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" +@.str680 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str681 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str682 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str683 = private unnamed_addr constant [4 x i8] c"int\00" +@.str684 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str685 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str686 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" +@.str687 = private unnamed_addr constant [3 x i8] c", \00" +@.str688 = private unnamed_addr constant [5 x i8] c"grow\00" +@.str689 = private unnamed_addr constant [4 x i8] c"put\00" +@.str690 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str691 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str692 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str693 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str694 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str695 = private unnamed_addr constant [9 x i8] c"mul i32 \00" +@.str696 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str697 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str698 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str699 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str700 = private unnamed_addr constant [14 x i8] c", i32 8, i32 \00" +@.str701 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str702 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str703 = private unnamed_addr constant [9 x i8] c"mul i64 \00" +@.str704 = private unnamed_addr constant [3 x i8] c", \00" +@.str705 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" +@.str706 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" +@.str707 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str708 = private unnamed_addr constant [2 x i8] c")\00" +@.str709 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str710 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str711 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str712 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str713 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str714 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str715 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str716 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str717 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str718 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" +@.str719 = private unnamed_addr constant [3 x i8] c" \00" +@.str720 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" +@.str721 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str722 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str723 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str724 = private unnamed_addr constant [9 x i8] c" store \00" +@.str725 = private unnamed_addr constant [2 x i8] c" \00" +@.str726 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str727 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str728 = private unnamed_addr constant [9 x i8] c"add i32 \00" +@.str729 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str730 = private unnamed_addr constant [13 x i8] c" store i32 \00" @.str731 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str732 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str733 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str734 = private unnamed_addr constant [9 x i8] c" store \00" -@.str735 = private unnamed_addr constant [2 x i8] c" \00" +@.str732 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str733 = private unnamed_addr constant [2 x i8] c"0\00" +@.str734 = private unnamed_addr constant [5 x i8] c"void\00" +@.str735 = private unnamed_addr constant [6 x i8] c"load \00" @.str736 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str737 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str738 = private unnamed_addr constant [9 x i8] c"add i32 \00" -@.str739 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str740 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str741 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str742 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str743 = private unnamed_addr constant [2 x i8] c"0\00" -@.str744 = private unnamed_addr constant [5 x i8] c"void\00" -@.str745 = private unnamed_addr constant [6 x i8] c"load \00" -@.str746 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str747 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str748 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str749 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str750 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str751 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str752 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str753 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str754 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str755 = private unnamed_addr constant [3 x i8] c"sc\00" -@.str756 = private unnamed_addr constant [6 x i8] c"scend\00" -@.str757 = private unnamed_addr constant [4 x i8] c"and\00" -@.str758 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str759 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str760 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str761 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str762 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str763 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str764 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str737 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str738 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str739 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str740 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str741 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str742 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str743 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str744 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str745 = private unnamed_addr constant [3 x i8] c"sc\00" +@.str746 = private unnamed_addr constant [6 x i8] c"scend\00" +@.str747 = private unnamed_addr constant [4 x i8] c"and\00" +@.str748 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str749 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str750 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str751 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str752 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str753 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str754 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str755 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str756 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str757 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str758 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str759 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str760 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str761 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str762 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str763 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str764 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str765 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str766 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str767 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str768 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str769 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str770 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str771 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str772 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str773 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str774 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str775 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str776 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str777 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str778 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str779 = private unnamed_addr constant [2 x i8] c"<\00" -@.str780 = private unnamed_addr constant [4 x i8] c"slt\00" +@.str767 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str768 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str769 = private unnamed_addr constant [2 x i8] c"<\00" +@.str770 = private unnamed_addr constant [4 x i8] c"slt\00" +@.str771 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str772 = private unnamed_addr constant [4 x i8] c"sle\00" +@.str773 = private unnamed_addr constant [2 x i8] c">\00" +@.str774 = private unnamed_addr constant [4 x i8] c"sgt\00" +@.str775 = private unnamed_addr constant [3 x i8] c">=\00" +@.str776 = private unnamed_addr constant [4 x i8] c"sge\00" +@.str777 = private unnamed_addr constant [3 x i8] c"==\00" +@.str778 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str779 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str780 = private unnamed_addr constant [2 x i8] c"<\00" @.str781 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str782 = private unnamed_addr constant [4 x i8] c"sle\00" -@.str783 = private unnamed_addr constant [2 x i8] c">\00" -@.str784 = private unnamed_addr constant [4 x i8] c"sgt\00" -@.str785 = private unnamed_addr constant [3 x i8] c">=\00" -@.str786 = private unnamed_addr constant [4 x i8] c"sge\00" -@.str787 = private unnamed_addr constant [3 x i8] c"==\00" -@.str788 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str789 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str790 = private unnamed_addr constant [2 x i8] c"<\00" -@.str791 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str792 = private unnamed_addr constant [2 x i8] c">\00" -@.str793 = private unnamed_addr constant [3 x i8] c">=\00" -@.str794 = private unnamed_addr constant [3 x i8] c"==\00" -@.str795 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str796 = private unnamed_addr constant [2 x i8] c"+\00" -@.str797 = private unnamed_addr constant [4 x i8] c"add\00" -@.str798 = private unnamed_addr constant [2 x i8] c"-\00" -@.str799 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str800 = private unnamed_addr constant [2 x i8] c"*\00" -@.str801 = private unnamed_addr constant [4 x i8] c"mul\00" -@.str802 = private unnamed_addr constant [2 x i8] c"/\00" -@.str803 = private unnamed_addr constant [5 x i8] c"sdiv\00" -@.str804 = private unnamed_addr constant [2 x i8] c"&\00" -@.str805 = private unnamed_addr constant [4 x i8] c"and\00" -@.str806 = private unnamed_addr constant [2 x i8] c"|\00" -@.str807 = private unnamed_addr constant [3 x i8] c"or\00" -@.str808 = private unnamed_addr constant [2 x i8] c"^\00" -@.str809 = private unnamed_addr constant [4 x i8] c"xor\00" -@.str810 = private unnamed_addr constant [3 x i8] c"<<\00" -@.str811 = private unnamed_addr constant [4 x i8] c"shl\00" -@.str812 = private unnamed_addr constant [3 x i8] c">>\00" -@.str813 = private unnamed_addr constant [5 x i8] c"lshr\00" -@.str814 = private unnamed_addr constant [5 x i8] c"srem\00" -@.str815 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str816 = private unnamed_addr constant [9 x i8] c"shl i32 \00" -@.str817 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str818 = private unnamed_addr constant [4 x i8] c"and\00" -@.str819 = private unnamed_addr constant [3 x i8] c"or\00" -@.str820 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str821 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str822 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str823 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str824 = private unnamed_addr constant [3 x i8] c", \00" -@.str825 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str826 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str827 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str828 = private unnamed_addr constant [2 x i8] c"*\00" -@.str829 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str830 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str831 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str832 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str833 = private unnamed_addr constant [9 x i8] c"mul i64 \00" -@.str834 = private unnamed_addr constant [3 x i8] c", \00" -@.str835 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" -@.str836 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str837 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str838 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str839 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str840 = private unnamed_addr constant [2 x i8] c"/\00" -@.str841 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str842 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str843 = private unnamed_addr constant [9 x i8] c"shl i64 \00" -@.str844 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str845 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str846 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str847 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" +@.str782 = private unnamed_addr constant [2 x i8] c">\00" +@.str783 = private unnamed_addr constant [3 x i8] c">=\00" +@.str784 = private unnamed_addr constant [3 x i8] c"==\00" +@.str785 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str786 = private unnamed_addr constant [2 x i8] c"+\00" +@.str787 = private unnamed_addr constant [4 x i8] c"add\00" +@.str788 = private unnamed_addr constant [2 x i8] c"-\00" +@.str789 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str790 = private unnamed_addr constant [2 x i8] c"*\00" +@.str791 = private unnamed_addr constant [4 x i8] c"mul\00" +@.str792 = private unnamed_addr constant [2 x i8] c"/\00" +@.str793 = private unnamed_addr constant [5 x i8] c"sdiv\00" +@.str794 = private unnamed_addr constant [2 x i8] c"&\00" +@.str795 = private unnamed_addr constant [4 x i8] c"and\00" +@.str796 = private unnamed_addr constant [2 x i8] c"|\00" +@.str797 = private unnamed_addr constant [3 x i8] c"or\00" +@.str798 = private unnamed_addr constant [2 x i8] c"^\00" +@.str799 = private unnamed_addr constant [4 x i8] c"xor\00" +@.str800 = private unnamed_addr constant [3 x i8] c"<<\00" +@.str801 = private unnamed_addr constant [4 x i8] c"shl\00" +@.str802 = private unnamed_addr constant [3 x i8] c">>\00" +@.str803 = private unnamed_addr constant [5 x i8] c"lshr\00" +@.str804 = private unnamed_addr constant [5 x i8] c"srem\00" +@.str805 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str806 = private unnamed_addr constant [9 x i8] c"shl i32 \00" +@.str807 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str808 = private unnamed_addr constant [4 x i8] c"and\00" +@.str809 = private unnamed_addr constant [3 x i8] c"or\00" +@.str810 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str811 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str812 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str813 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str814 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str815 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str816 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str817 = private unnamed_addr constant [2 x i8] c" \00" +@.str818 = private unnamed_addr constant [2 x i8] c" \00" +@.str819 = private unnamed_addr constant [3 x i8] c", \00" +@.str820 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str821 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str822 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str823 = private unnamed_addr constant [2 x i8] c"*\00" +@.str824 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str825 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str826 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str827 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str828 = private unnamed_addr constant [9 x i8] c"mul i64 \00" +@.str829 = private unnamed_addr constant [3 x i8] c", \00" +@.str830 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" +@.str831 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str832 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str833 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str834 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str835 = private unnamed_addr constant [2 x i8] c"/\00" +@.str836 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str837 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str838 = private unnamed_addr constant [9 x i8] c"shl i64 \00" +@.str839 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str840 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str841 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str842 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" +@.str843 = private unnamed_addr constant [3 x i8] c", \00" +@.str844 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str845 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str846 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str847 = private unnamed_addr constant [6 x i8] c" i32 \00" @.str848 = private unnamed_addr constant [3 x i8] c", \00" -@.str849 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str850 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str851 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str852 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str853 = private unnamed_addr constant [3 x i8] c", \00" -@.str854 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str855 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str856 = private unnamed_addr constant [3 x i8] c", \00" -@.str857 = private unnamed_addr constant [4 x i8] c"int\00" -@.str858 = private unnamed_addr constant [5 x i8] c"self\00" -@.str859 = private unnamed_addr constant [2 x i8] c"0\00" -@.str860 = private unnamed_addr constant [7 x i8] c"entity\00" -@.str861 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str862 = private unnamed_addr constant [7 x i8] c"entity\00" -@.str863 = private unnamed_addr constant [4 x i8] c"key\00" -@.str864 = private unnamed_addr constant [21 x i8] c"load i32, ptr @L_key\00" -@.str865 = private unnamed_addr constant [4 x i8] c"int\00" -@.str866 = private unnamed_addr constant [5 x i8] c"save\00" -@.str867 = private unnamed_addr constant [23 x i8] c" call void @L_save()\0A\00" -@.str868 = private unnamed_addr constant [2 x i8] c"0\00" -@.str869 = private unnamed_addr constant [5 x i8] c"void\00" -@.str870 = private unnamed_addr constant [9 x i8] c"ui_build\00" -@.str871 = private unnamed_addr constant [25 x i8] c" call void @ui_build()\0A\00" -@.str872 = private unnamed_addr constant [2 x i8] c"0\00" -@.str873 = private unnamed_addr constant [5 x i8] c"void\00" -@.str874 = private unnamed_addr constant [5 x i8] c"load\00" -@.str875 = private unnamed_addr constant [19 x i8] c"call i32 @L_load()\00" -@.str876 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str877 = private unnamed_addr constant [5 x i8] c"quit\00" -@.str878 = private unnamed_addr constant [31 x i8] c" store i32 0, ptr @L_running\0A\00" -@.str879 = private unnamed_addr constant [2 x i8] c"0\00" -@.str880 = private unnamed_addr constant [5 x i8] c"void\00" -@.str881 = private unnamed_addr constant [4 x i8] c"len\00" -@.str882 = private unnamed_addr constant [5 x i8] c"push\00" -@.str883 = private unnamed_addr constant [3 x i8] c"fx\00" -@.str884 = private unnamed_addr constant [9 x i8] c"shl i32 \00" -@.str885 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str886 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str887 = private unnamed_addr constant [4 x i8] c"flr\00" -@.str888 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" -@.str889 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str890 = private unnamed_addr constant [4 x i8] c"int\00" -@.str891 = private unnamed_addr constant [4 x i8] c"rt_\00" -@.str892 = private unnamed_addr constant [18 x i8] c"unknown function \00" -@.str893 = private unnamed_addr constant [3 x i8] c" \00" -@.str894 = private unnamed_addr constant [2 x i8] c"0\00" -@.str895 = private unnamed_addr constant [5 x i8] c"void\00" -@.str896 = private unnamed_addr constant [4 x i8] c" = \00" -@.str897 = private unnamed_addr constant [6 x i8] c"call \00" -@.str898 = private unnamed_addr constant [6 x i8] c" @fn_\00" -@.str899 = private unnamed_addr constant [2 x i8] c"(\00" -@.str900 = private unnamed_addr constant [3 x i8] c", \00" -@.str901 = private unnamed_addr constant [2 x i8] c" \00" -@.str902 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str903 = private unnamed_addr constant [2 x i8] c"0\00" -@.str904 = private unnamed_addr constant [4 x i8] c"int\00" -@.str905 = private unnamed_addr constant [4 x i8] c"int\00" -@.str906 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str907 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str908 = private unnamed_addr constant [4 x i8] c"str\00" +@.str849 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str850 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str851 = private unnamed_addr constant [3 x i8] c", \00" +@.str852 = private unnamed_addr constant [4 x i8] c"int\00" +@.str853 = private unnamed_addr constant [5 x i8] c"self\00" +@.str854 = private unnamed_addr constant [2 x i8] c"0\00" +@.str855 = private unnamed_addr constant [7 x i8] c"entity\00" +@.str856 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str857 = private unnamed_addr constant [7 x i8] c"entity\00" +@.str858 = private unnamed_addr constant [4 x i8] c"key\00" +@.str859 = private unnamed_addr constant [21 x i8] c"load i32, ptr @L_key\00" +@.str860 = private unnamed_addr constant [4 x i8] c"int\00" +@.str861 = private unnamed_addr constant [5 x i8] c"save\00" +@.str862 = private unnamed_addr constant [23 x i8] c" call void @L_save()\0A\00" +@.str863 = private unnamed_addr constant [2 x i8] c"0\00" +@.str864 = private unnamed_addr constant [5 x i8] c"void\00" +@.str865 = private unnamed_addr constant [9 x i8] c"ui_build\00" +@.str866 = private unnamed_addr constant [25 x i8] c" call void @ui_build()\0A\00" +@.str867 = private unnamed_addr constant [2 x i8] c"0\00" +@.str868 = private unnamed_addr constant [5 x i8] c"void\00" +@.str869 = private unnamed_addr constant [5 x i8] c"load\00" +@.str870 = private unnamed_addr constant [19 x i8] c"call i32 @L_load()\00" +@.str871 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str872 = private unnamed_addr constant [5 x i8] c"quit\00" +@.str873 = private unnamed_addr constant [31 x i8] c" store i32 0, ptr @L_running\0A\00" +@.str874 = private unnamed_addr constant [2 x i8] c"0\00" +@.str875 = private unnamed_addr constant [5 x i8] c"void\00" +@.str876 = private unnamed_addr constant [4 x i8] c"len\00" +@.str877 = private unnamed_addr constant [5 x i8] c"push\00" +@.str878 = private unnamed_addr constant [3 x i8] c"fx\00" +@.str879 = private unnamed_addr constant [9 x i8] c"shl i32 \00" +@.str880 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str881 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str882 = private unnamed_addr constant [4 x i8] c"flr\00" +@.str883 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" +@.str884 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str885 = private unnamed_addr constant [4 x i8] c"int\00" +@.str886 = private unnamed_addr constant [4 x i8] c"rt_\00" +@.str887 = private unnamed_addr constant [18 x i8] c"unknown function \00" +@.str888 = private unnamed_addr constant [3 x i8] c" \00" +@.str889 = private unnamed_addr constant [2 x i8] c"0\00" +@.str890 = private unnamed_addr constant [5 x i8] c"void\00" +@.str891 = private unnamed_addr constant [4 x i8] c" = \00" +@.str892 = private unnamed_addr constant [6 x i8] c"call \00" +@.str893 = private unnamed_addr constant [6 x i8] c" @fn_\00" +@.str894 = private unnamed_addr constant [2 x i8] c"(\00" +@.str895 = private unnamed_addr constant [3 x i8] c", \00" +@.str896 = private unnamed_addr constant [2 x i8] c" \00" +@.str897 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str898 = private unnamed_addr constant [2 x i8] c"0\00" +@.str899 = private unnamed_addr constant [4 x i8] c"int\00" +@.str900 = private unnamed_addr constant [4 x i8] c"int\00" +@.str901 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str902 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str903 = private unnamed_addr constant [5 x i8] c"null\00" +@.str904 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str905 = private unnamed_addr constant [4 x i8] c"str\00" +@.str906 = private unnamed_addr constant [4 x i8] c"int\00" +@.str907 = private unnamed_addr constant [6 x i8] c"load \00" +@.str908 = private unnamed_addr constant [10 x i8] c", ptr @g_\00" @.str909 = private unnamed_addr constant [4 x i8] c"int\00" -@.str910 = private unnamed_addr constant [6 x i8] c"load \00" -@.str911 = private unnamed_addr constant [10 x i8] c", ptr @g_\00" -@.str912 = private unnamed_addr constant [4 x i8] c"int\00" -@.str913 = private unnamed_addr constant [20 x i8] c"unknown identifier \00" +@.str910 = private unnamed_addr constant [20 x i8] c"unknown identifier \00" +@.str911 = private unnamed_addr constant [4 x i8] c"int\00" +@.str912 = private unnamed_addr constant [2 x i8] c"-\00" +@.str913 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str914 = private unnamed_addr constant [4 x i8] c"int\00" -@.str915 = private unnamed_addr constant [2 x i8] c"-\00" -@.str916 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" -@.str917 = private unnamed_addr constant [4 x i8] c"int\00" -@.str918 = private unnamed_addr constant [2 x i8] c"~\00" -@.str919 = private unnamed_addr constant [9 x i8] c"xor i32 \00" -@.str920 = private unnamed_addr constant [5 x i8] c", -1\00" -@.str921 = private unnamed_addr constant [4 x i8] c"int\00" -@.str922 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str923 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str924 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str925 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str926 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str927 = private unnamed_addr constant [23 x i8] c"cannot emit expression\00" -@.str928 = private unnamed_addr constant [2 x i8] c"0\00" -@.str929 = private unnamed_addr constant [4 x i8] c"int\00" -@.str930 = private unnamed_addr constant [9 x i8] c" store \00" -@.str931 = private unnamed_addr constant [2 x i8] c" \00" -@.str932 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str933 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str934 = private unnamed_addr constant [2 x i8] c"0\00" -@.str935 = private unnamed_addr constant [4 x i8] c"int\00" -@.str936 = private unnamed_addr constant [29 x i8] c"cannot assign to immutable '\00" -@.str937 = private unnamed_addr constant [41 x i8] c"' (declared with let; use var) \E2\80\94 line \00" -@.str938 = private unnamed_addr constant [19 x i8] c"assign to unknown \00" -@.str939 = private unnamed_addr constant [4 x i8] c"@g_\00" -@.str940 = private unnamed_addr constant [22 x i8] c"bad assignment target\00" -@.str941 = private unnamed_addr constant [2 x i8] c"=\00" -@.str942 = private unnamed_addr constant [6 x i8] c"load \00" -@.str943 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str944 = private unnamed_addr constant [4 x i8] c"add\00" -@.str945 = private unnamed_addr constant [3 x i8] c"-=\00" -@.str946 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str947 = private unnamed_addr constant [3 x i8] c"*=\00" -@.str948 = private unnamed_addr constant [4 x i8] c"mul\00" -@.str949 = private unnamed_addr constant [3 x i8] c"/=\00" -@.str950 = private unnamed_addr constant [5 x i8] c"sdiv\00" -@.str951 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str952 = private unnamed_addr constant [3 x i8] c", \00" -@.str953 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str954 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str955 = private unnamed_addr constant [5 x i8] c"then\00" -@.str956 = private unnamed_addr constant [5 x i8] c"else\00" -@.str957 = private unnamed_addr constant [6 x i8] c"ifend\00" -@.str958 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str959 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str915 = private unnamed_addr constant [2 x i8] c"~\00" +@.str916 = private unnamed_addr constant [9 x i8] c"xor i32 \00" +@.str917 = private unnamed_addr constant [5 x i8] c", -1\00" +@.str918 = private unnamed_addr constant [4 x i8] c"int\00" +@.str919 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str920 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str921 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str922 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str923 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str924 = private unnamed_addr constant [23 x i8] c"cannot emit expression\00" +@.str925 = private unnamed_addr constant [2 x i8] c"0\00" +@.str926 = private unnamed_addr constant [4 x i8] c"int\00" +@.str927 = private unnamed_addr constant [9 x i8] c" store \00" +@.str928 = private unnamed_addr constant [2 x i8] c" \00" +@.str929 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str930 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str931 = private unnamed_addr constant [2 x i8] c"0\00" +@.str932 = private unnamed_addr constant [4 x i8] c"int\00" +@.str933 = private unnamed_addr constant [29 x i8] c"cannot assign to immutable '\00" +@.str934 = private unnamed_addr constant [41 x i8] c"' (declared with let; use var) \E2\80\94 line \00" +@.str935 = private unnamed_addr constant [19 x i8] c"assign to unknown \00" +@.str936 = private unnamed_addr constant [4 x i8] c"@g_\00" +@.str937 = private unnamed_addr constant [22 x i8] c"bad assignment target\00" +@.str938 = private unnamed_addr constant [2 x i8] c"=\00" +@.str939 = private unnamed_addr constant [6 x i8] c"load \00" +@.str940 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str941 = private unnamed_addr constant [4 x i8] c"add\00" +@.str942 = private unnamed_addr constant [3 x i8] c"-=\00" +@.str943 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str944 = private unnamed_addr constant [3 x i8] c"*=\00" +@.str945 = private unnamed_addr constant [4 x i8] c"mul\00" +@.str946 = private unnamed_addr constant [3 x i8] c"/=\00" +@.str947 = private unnamed_addr constant [5 x i8] c"sdiv\00" +@.str948 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str949 = private unnamed_addr constant [3 x i8] c", \00" +@.str950 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str951 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str952 = private unnamed_addr constant [5 x i8] c"then\00" +@.str953 = private unnamed_addr constant [5 x i8] c"else\00" +@.str954 = private unnamed_addr constant [6 x i8] c"ifend\00" +@.str955 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str956 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str957 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str958 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str959 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str960 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str961 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str962 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str963 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str964 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str961 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str962 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str963 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str964 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str965 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str966 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str967 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str968 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str969 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str970 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str971 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str972 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str973 = private unnamed_addr constant [6 x i8] c"wcond\00" -@.str974 = private unnamed_addr constant [6 x i8] c"wbody\00" -@.str975 = private unnamed_addr constant [5 x i8] c"wend\00" -@.str976 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str977 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str978 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str979 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str980 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str981 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str982 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str983 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str970 = private unnamed_addr constant [6 x i8] c"wcond\00" +@.str971 = private unnamed_addr constant [6 x i8] c"wbody\00" +@.str972 = private unnamed_addr constant [5 x i8] c"wend\00" +@.str973 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str974 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str975 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str976 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str977 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str978 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str979 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str980 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str981 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str982 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str983 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str984 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str985 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str986 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str987 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str988 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str989 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str990 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str991 = private unnamed_addr constant [4 x i8] c"int\00" -@.str992 = private unnamed_addr constant [6 x i8] c"fcond\00" -@.str993 = private unnamed_addr constant [6 x i8] c"fbody\00" -@.str994 = private unnamed_addr constant [6 x i8] c"fcont\00" -@.str995 = private unnamed_addr constant [5 x i8] c"fend\00" -@.str996 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str997 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str998 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str999 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1000 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" -@.str1001 = private unnamed_addr constant [3 x i8] c", \00" -@.str1002 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1003 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1004 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str986 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str987 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str988 = private unnamed_addr constant [4 x i8] c"int\00" +@.str989 = private unnamed_addr constant [6 x i8] c"fcond\00" +@.str990 = private unnamed_addr constant [6 x i8] c"fbody\00" +@.str991 = private unnamed_addr constant [6 x i8] c"fcont\00" +@.str992 = private unnamed_addr constant [5 x i8] c"fend\00" +@.str993 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str994 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str995 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str996 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str997 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" +@.str998 = private unnamed_addr constant [3 x i8] c", \00" +@.str999 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1000 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1001 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1002 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1003 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1004 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str1005 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1006 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1007 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1008 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1009 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1010 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1011 = private unnamed_addr constant [9 x i8] c"add i32 \00" -@.str1012 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str1013 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1014 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1015 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1016 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1017 = private unnamed_addr constant [8 x i8] c"%retval\00" -@.str1018 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1019 = private unnamed_addr constant [2 x i8] c"_\00" -@.str1020 = private unnamed_addr constant [5 x i8] c"mend\00" -@.str1021 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1022 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str1023 = private unnamed_addr constant [3 x i8] c", \00" -@.str1024 = private unnamed_addr constant [7 x i8] c"or i1 \00" -@.str1025 = private unnamed_addr constant [3 x i8] c", \00" -@.str1026 = private unnamed_addr constant [6 x i8] c"mbody\00" -@.str1027 = private unnamed_addr constant [5 x i8] c"marm\00" -@.str1028 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1029 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1030 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1007 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1008 = private unnamed_addr constant [9 x i8] c"add i32 \00" +@.str1009 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str1010 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1011 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1012 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1013 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1014 = private unnamed_addr constant [8 x i8] c"%retval\00" +@.str1015 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1016 = private unnamed_addr constant [2 x i8] c"_\00" +@.str1017 = private unnamed_addr constant [5 x i8] c"mend\00" +@.str1018 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1019 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str1020 = private unnamed_addr constant [3 x i8] c", \00" +@.str1021 = private unnamed_addr constant [7 x i8] c"or i1 \00" +@.str1022 = private unnamed_addr constant [3 x i8] c", \00" +@.str1023 = private unnamed_addr constant [6 x i8] c"mbody\00" +@.str1024 = private unnamed_addr constant [5 x i8] c"marm\00" +@.str1025 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1026 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1027 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1028 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1029 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1030 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str1031 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1032 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str1033 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str1034 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1035 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1036 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1037 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1038 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1039 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1040 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1041 = private unnamed_addr constant [5 x i8] c"null\00" -@.str1042 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1043 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1044 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1045 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1046 = private unnamed_addr constant [22 x i8] c"cannot emit statement\00" -@.str1047 = private unnamed_addr constant [36 x i8] c"@L_running = internal global i32 1\0A\00" -@.str1048 = private unnamed_addr constant [32 x i8] c"@L_key = internal global i32 0\0A\00" -@.str1049 = private unnamed_addr constant [33 x i8] c"@L_entc = internal global i32 0\0A\00" -@.str1050 = private unnamed_addr constant [29 x i8] c"@L_alive = internal global [\00" -@.str1051 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" -@.str1052 = private unnamed_addr constant [28 x i8] c"@L_kind = internal global [\00" -@.str1053 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" -@.str1054 = private unnamed_addr constant [32 x i8] c"@L_freelist = internal global [\00" -@.str1055 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" -@.str1056 = private unnamed_addr constant [34 x i8] c"@L_freen = internal global i32 0\0A\00" -@.str1057 = private unnamed_addr constant [4 x i8] c"@S_\00" -@.str1058 = private unnamed_addr constant [21 x i8] c" = internal global [\00" -@.str1059 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1060 = private unnamed_addr constant [19 x i8] c"] zeroinitializer\0A\00" -@.str1061 = private unnamed_addr constant [4 x i8] c"@H_\00" -@.str1062 = private unnamed_addr constant [21 x i8] c" = internal global [\00" -@.str1063 = private unnamed_addr constant [24 x i8] c" x i8] zeroinitializer\0A\00" -@.str1064 = private unnamed_addr constant [5 x i8] c"@ME_\00" -@.str1065 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" -@.str1066 = private unnamed_addr constant [5 x i8] c"@HE_\00" -@.str1067 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" -@.str1068 = private unnamed_addr constant [39 x i8] c"define void @L_reset(i32 %e) {\0Aentry:\0A\00" -@.str1069 = private unnamed_addr constant [3 x i8] c"%h\00" -@.str1070 = private unnamed_addr constant [3 x i8] c" \00" -@.str1071 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1072 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" -@.str1073 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" -@.str1074 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00" -@.str1075 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1076 = private unnamed_addr constant [32 x i8] c" %k = getelementptr inbounds [\00" -@.str1077 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00" -@.str1078 = private unnamed_addr constant [37 x i8] c" store i32 0, ptr %k\0A ret void\0A}\0A\0A\00" -@.str1079 = private unnamed_addr constant [32 x i8] c"define i32 @L_alloc() {\0Aentry:\0A\00" -@.str1080 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" -@.str1081 = private unnamed_addr constant [30 x i8] c" %has = icmp sgt i32 %fn, 0\0A\00" -@.str1082 = private unnamed_addr constant [42 x i8] c" br i1 %has, label %reuse, label %fresh\0A\00" -@.str1083 = private unnamed_addr constant [8 x i8] c"reuse:\0A\00" -@.str1084 = private unnamed_addr constant [25 x i8] c" %fn1 = sub i32 %fn, 1\0A\00" -@.str1085 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" -@.str1086 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" -@.str1087 = private unnamed_addr constant [43 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn1\0A\00" -@.str1088 = private unnamed_addr constant [27 x i8] c" %re = load i32, ptr %fp\0A\00" -@.str1089 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" -@.str1090 = private unnamed_addr constant [8 x i8] c"fresh:\0A\00" -@.str1091 = private unnamed_addr constant [31 x i8] c" %ec = load i32, ptr @L_entc\0A\00" -@.str1092 = private unnamed_addr constant [25 x i8] c" %ec1 = add i32 %ec, 1\0A\00" -@.str1093 = private unnamed_addr constant [31 x i8] c" store i32 %ec1, ptr @L_entc\0A\00" -@.str1094 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" -@.str1095 = private unnamed_addr constant [7 x i8] c"done:\0A\00" -@.str1096 = private unnamed_addr constant [49 x i8] c" %e = phi i32 [ %re, %reuse ], [ %ec, %fresh ]\0A\00" -@.str1097 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" -@.str1098 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" -@.str1099 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" -@.str1100 = private unnamed_addr constant [24 x i8] c" store i32 1, ptr %ap\0A\00" -@.str1101 = private unnamed_addr constant [17 x i8] c" ret i32 %e\0A}\0A\0A\00" -@.str1102 = private unnamed_addr constant [45 x i8] c"define void @L_free_entity(i32 %e) {\0Aentry:\0A\00" -@.str1103 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" -@.str1104 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" -@.str1105 = private unnamed_addr constant [24 x i8] c" store i32 0, ptr %ap\0A\00" -@.str1106 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" -@.str1107 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" -@.str1108 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" -@.str1109 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn\0A\00" -@.str1110 = private unnamed_addr constant [25 x i8] c" store i32 %e, ptr %fp\0A\00" -@.str1111 = private unnamed_addr constant [25 x i8] c" %fn1 = add i32 %fn, 1\0A\00" -@.str1112 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" -@.str1113 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" -@.str1114 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1115 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1116 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1117 = private unnamed_addr constant [6 x i8] c"qcond\00" -@.str1118 = private unnamed_addr constant [6 x i8] c"qbody\00" -@.str1119 = private unnamed_addr constant [6 x i8] c"qnext\00" -@.str1120 = private unnamed_addr constant [5 x i8] c"qend\00" -@.str1121 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1122 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1123 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1124 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1125 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00" -@.str1126 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" -@.str1127 = private unnamed_addr constant [3 x i8] c", \00" -@.str1128 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1129 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1130 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1131 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1132 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1133 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1134 = private unnamed_addr constant [3 x i8] c" \00" -@.str1135 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1136 = private unnamed_addr constant [35 x i8] c" x i32], ptr @L_alive, i32 0, i32 \00" -@.str1137 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1138 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1139 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1140 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1141 = private unnamed_addr constant [3 x i8] c"qa\00" -@.str1142 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1143 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1144 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1145 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1146 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1147 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1148 = private unnamed_addr constant [3 x i8] c" \00" -@.str1149 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1150 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" -@.str1151 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1152 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1153 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str1154 = private unnamed_addr constant [3 x i8] c", \00" -@.str1155 = private unnamed_addr constant [19 x i8] c"load i32, ptr @ME_\00" -@.str1156 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1157 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1158 = private unnamed_addr constant [8 x i8] c"and i1 \00" -@.str1159 = private unnamed_addr constant [3 x i8] c", \00" -@.str1160 = private unnamed_addr constant [3 x i8] c" \00" -@.str1161 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1162 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" -@.str1163 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1164 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1165 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" -@.str1166 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00" -@.str1167 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1168 = private unnamed_addr constant [3 x i8] c"qt\00" -@.str1169 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1170 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1171 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1172 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1173 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1174 = private unnamed_addr constant [3 x i8] c" \00" -@.str1175 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1176 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1177 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" -@.str1178 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1179 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1180 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1181 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str1182 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1183 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1184 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1185 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1186 = private unnamed_addr constant [3 x i8] c"qw\00" -@.str1187 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1188 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1189 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1036 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1037 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1038 = private unnamed_addr constant [5 x i8] c"null\00" +@.str1039 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1040 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1041 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1042 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1043 = private unnamed_addr constant [22 x i8] c"cannot emit statement\00" +@.str1044 = private unnamed_addr constant [36 x i8] c"@L_running = internal global i32 1\0A\00" +@.str1045 = private unnamed_addr constant [32 x i8] c"@L_key = internal global i32 0\0A\00" +@.str1046 = private unnamed_addr constant [33 x i8] c"@L_entc = internal global i32 0\0A\00" +@.str1047 = private unnamed_addr constant [29 x i8] c"@L_alive = internal global [\00" +@.str1048 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" +@.str1049 = private unnamed_addr constant [28 x i8] c"@L_kind = internal global [\00" +@.str1050 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" +@.str1051 = private unnamed_addr constant [32 x i8] c"@L_freelist = internal global [\00" +@.str1052 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" +@.str1053 = private unnamed_addr constant [34 x i8] c"@L_freen = internal global i32 0\0A\00" +@.str1054 = private unnamed_addr constant [4 x i8] c"@S_\00" +@.str1055 = private unnamed_addr constant [21 x i8] c" = internal global [\00" +@.str1056 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" +@.str1057 = private unnamed_addr constant [19 x i8] c"] zeroinitializer\0A\00" +@.str1058 = private unnamed_addr constant [4 x i8] c"@H_\00" +@.str1059 = private unnamed_addr constant [21 x i8] c" = internal global [\00" +@.str1060 = private unnamed_addr constant [24 x i8] c" x i8] zeroinitializer\0A\00" +@.str1061 = private unnamed_addr constant [5 x i8] c"@ME_\00" +@.str1062 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" +@.str1063 = private unnamed_addr constant [5 x i8] c"@HE_\00" +@.str1064 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" +@.str1065 = private unnamed_addr constant [39 x i8] c"define void @L_reset(i32 %e) {\0Aentry:\0A\00" +@.str1066 = private unnamed_addr constant [3 x i8] c"%h\00" +@.str1067 = private unnamed_addr constant [3 x i8] c" \00" +@.str1068 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1069 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" +@.str1070 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" +@.str1071 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00" +@.str1072 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1073 = private unnamed_addr constant [32 x i8] c" %k = getelementptr inbounds [\00" +@.str1074 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00" +@.str1075 = private unnamed_addr constant [37 x i8] c" store i32 0, ptr %k\0A ret void\0A}\0A\0A\00" +@.str1076 = private unnamed_addr constant [32 x i8] c"define i32 @L_alloc() {\0Aentry:\0A\00" +@.str1077 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" +@.str1078 = private unnamed_addr constant [30 x i8] c" %has = icmp sgt i32 %fn, 0\0A\00" +@.str1079 = private unnamed_addr constant [42 x i8] c" br i1 %has, label %reuse, label %fresh\0A\00" +@.str1080 = private unnamed_addr constant [8 x i8] c"reuse:\0A\00" +@.str1081 = private unnamed_addr constant [25 x i8] c" %fn1 = sub i32 %fn, 1\0A\00" +@.str1082 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" +@.str1083 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" +@.str1084 = private unnamed_addr constant [43 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn1\0A\00" +@.str1085 = private unnamed_addr constant [27 x i8] c" %re = load i32, ptr %fp\0A\00" +@.str1086 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" +@.str1087 = private unnamed_addr constant [8 x i8] c"fresh:\0A\00" +@.str1088 = private unnamed_addr constant [31 x i8] c" %ec = load i32, ptr @L_entc\0A\00" +@.str1089 = private unnamed_addr constant [25 x i8] c" %ec1 = add i32 %ec, 1\0A\00" +@.str1090 = private unnamed_addr constant [31 x i8] c" store i32 %ec1, ptr @L_entc\0A\00" +@.str1091 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" +@.str1092 = private unnamed_addr constant [7 x i8] c"done:\0A\00" +@.str1093 = private unnamed_addr constant [49 x i8] c" %e = phi i32 [ %re, %reuse ], [ %ec, %fresh ]\0A\00" +@.str1094 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" +@.str1095 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" +@.str1096 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" +@.str1097 = private unnamed_addr constant [24 x i8] c" store i32 1, ptr %ap\0A\00" +@.str1098 = private unnamed_addr constant [17 x i8] c" ret i32 %e\0A}\0A\0A\00" +@.str1099 = private unnamed_addr constant [45 x i8] c"define void @L_free_entity(i32 %e) {\0Aentry:\0A\00" +@.str1100 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" +@.str1101 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" +@.str1102 = private unnamed_addr constant [24 x i8] c" store i32 0, ptr %ap\0A\00" +@.str1103 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" +@.str1104 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" +@.str1105 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" +@.str1106 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn\0A\00" +@.str1107 = private unnamed_addr constant [25 x i8] c" store i32 %e, ptr %fp\0A\00" +@.str1108 = private unnamed_addr constant [25 x i8] c" %fn1 = add i32 %fn, 1\0A\00" +@.str1109 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" +@.str1110 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" +@.str1111 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1112 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1113 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1114 = private unnamed_addr constant [6 x i8] c"qcond\00" +@.str1115 = private unnamed_addr constant [6 x i8] c"qbody\00" +@.str1116 = private unnamed_addr constant [6 x i8] c"qnext\00" +@.str1117 = private unnamed_addr constant [5 x i8] c"qend\00" +@.str1118 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1119 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1120 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1121 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1122 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00" +@.str1123 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" +@.str1124 = private unnamed_addr constant [3 x i8] c", \00" +@.str1125 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1126 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1127 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1128 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1129 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1130 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1131 = private unnamed_addr constant [3 x i8] c" \00" +@.str1132 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1133 = private unnamed_addr constant [35 x i8] c" x i32], ptr @L_alive, i32 0, i32 \00" +@.str1134 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1135 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1136 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1137 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1138 = private unnamed_addr constant [3 x i8] c"qa\00" +@.str1139 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1140 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1141 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1142 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1143 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1144 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1145 = private unnamed_addr constant [3 x i8] c" \00" +@.str1146 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1147 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" +@.str1148 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1149 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1150 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str1151 = private unnamed_addr constant [3 x i8] c", \00" +@.str1152 = private unnamed_addr constant [19 x i8] c"load i32, ptr @ME_\00" +@.str1153 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1154 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1155 = private unnamed_addr constant [8 x i8] c"and i1 \00" +@.str1156 = private unnamed_addr constant [3 x i8] c", \00" +@.str1157 = private unnamed_addr constant [3 x i8] c" \00" +@.str1158 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1159 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" +@.str1160 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1161 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1162 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" +@.str1163 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00" +@.str1164 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1165 = private unnamed_addr constant [3 x i8] c"qt\00" +@.str1166 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1167 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1168 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1169 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1170 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1171 = private unnamed_addr constant [3 x i8] c" \00" +@.str1172 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1173 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" +@.str1174 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" +@.str1175 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1176 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1177 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1178 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str1179 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1180 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1181 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1182 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1183 = private unnamed_addr constant [3 x i8] c"qw\00" +@.str1184 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1185 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1186 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1187 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1188 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1189 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str1190 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1191 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1192 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1193 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1194 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1195 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1196 = private unnamed_addr constant [9 x i8] c"add i32 \00" -@.str1197 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str1198 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1199 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1200 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1201 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1202 = private unnamed_addr constant [25 x i8] c"spawn: unknown property \00" -@.str1203 = private unnamed_addr constant [3 x i8] c" \00" -@.str1204 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1205 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" -@.str1206 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1207 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1208 = private unnamed_addr constant [19 x i8] c" store i8 1, ptr \00" -@.str1209 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1210 = private unnamed_addr constant [3 x i8] c" \00" -@.str1211 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1212 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1213 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" -@.str1214 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1215 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1216 = private unnamed_addr constant [3 x i8] c" \00" -@.str1217 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" -@.str1218 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1219 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1220 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1221 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1222 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1223 = private unnamed_addr constant [5 x i8] c"null\00" -@.str1224 = private unnamed_addr constant [9 x i8] c" store \00" -@.str1225 = private unnamed_addr constant [2 x i8] c" \00" -@.str1226 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1227 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1228 = private unnamed_addr constant [3 x i8] c" \00" -@.str1229 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" -@.str1230 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1231 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1232 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1233 = private unnamed_addr constant [9 x i8] c" store \00" -@.str1234 = private unnamed_addr constant [2 x i8] c" \00" -@.str1235 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1236 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1237 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1238 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str1239 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1240 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1241 = private unnamed_addr constant [3 x i8] c" \00" -@.str1242 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1243 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1244 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" -@.str1245 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1246 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1247 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1248 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str1249 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1250 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1251 = private unnamed_addr constant [20 x i8] c"call i32 @L_alloc()\00" -@.str1252 = private unnamed_addr constant [3 x i8] c" \00" -@.str1253 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1254 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" +@.str1192 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1193 = private unnamed_addr constant [9 x i8] c"add i32 \00" +@.str1194 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str1195 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1196 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1197 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1198 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1199 = private unnamed_addr constant [25 x i8] c"spawn: unknown property \00" +@.str1200 = private unnamed_addr constant [3 x i8] c" \00" +@.str1201 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1202 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" +@.str1203 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1204 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1205 = private unnamed_addr constant [19 x i8] c" store i8 1, ptr \00" +@.str1206 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1207 = private unnamed_addr constant [3 x i8] c" \00" +@.str1208 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1209 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" +@.str1210 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" +@.str1211 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1212 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1213 = private unnamed_addr constant [3 x i8] c" \00" +@.str1214 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" +@.str1215 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1216 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1217 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1218 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1219 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1220 = private unnamed_addr constant [5 x i8] c"null\00" +@.str1221 = private unnamed_addr constant [9 x i8] c" store \00" +@.str1222 = private unnamed_addr constant [2 x i8] c" \00" +@.str1223 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1224 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1225 = private unnamed_addr constant [3 x i8] c" \00" +@.str1226 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" +@.str1227 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1228 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1229 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1230 = private unnamed_addr constant [9 x i8] c" store \00" +@.str1231 = private unnamed_addr constant [2 x i8] c" \00" +@.str1232 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1233 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1234 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1235 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str1236 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1237 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1238 = private unnamed_addr constant [3 x i8] c" \00" +@.str1239 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1240 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" +@.str1241 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" +@.str1242 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1243 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1244 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1245 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str1246 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1247 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1248 = private unnamed_addr constant [20 x i8] c"call i32 @L_alloc()\00" +@.str1249 = private unnamed_addr constant [3 x i8] c" \00" +@.str1250 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1251 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" +@.str1252 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1253 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str1254 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1255 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1256 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str1257 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1258 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1259 = private unnamed_addr constant [3 x i8] c" \00" -@.str1260 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1261 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" -@.str1262 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1263 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1264 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str1265 = private unnamed_addr constant [3 x i8] c", \00" -@.str1266 = private unnamed_addr constant [3 x i8] c"dh\00" -@.str1267 = private unnamed_addr constant [4 x i8] c"dhn\00" -@.str1268 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1269 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1270 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1271 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1272 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00" -@.str1273 = private unnamed_addr constant [6 x i8] c"(i32 \00" -@.str1274 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1275 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1276 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1277 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1278 = private unnamed_addr constant [32 x i8] c" call void @L_free_entity(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 [2 x i8] c"1\00" -@.str1282 = private unnamed_addr constant [3 x i8] c" \00" -@.str1283 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1284 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" -@.str1285 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1256 = private unnamed_addr constant [3 x i8] c" \00" +@.str1257 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1258 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" +@.str1259 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1260 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1261 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str1262 = private unnamed_addr constant [3 x i8] c", \00" +@.str1263 = private unnamed_addr constant [3 x i8] c"dh\00" +@.str1264 = private unnamed_addr constant [4 x i8] c"dhn\00" +@.str1265 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1266 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1267 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1268 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1269 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00" +@.str1270 = private unnamed_addr constant [6 x i8] c"(i32 \00" +@.str1271 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1272 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1273 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1274 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1275 = private unnamed_addr constant [32 x i8] c" call void @L_free_entity(i32 \00" +@.str1276 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1277 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1278 = private unnamed_addr constant [2 x i8] c"1\00" +@.str1279 = private unnamed_addr constant [3 x i8] c" \00" +@.str1280 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1281 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" +@.str1282 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1283 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1284 = private unnamed_addr constant [12 x i8] c" store i8 \00" +@.str1285 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1286 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1287 = private unnamed_addr constant [12 x i8] c" store i8 \00" -@.str1288 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1289 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1290 = private unnamed_addr constant [3 x i8] c" \00" -@.str1291 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1292 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1293 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" -@.str1294 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1295 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1296 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1297 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str1298 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1299 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1300 = private unnamed_addr constant [5 x i8] c"@HE_\00" -@.str1301 = private unnamed_addr constant [5 x i8] c"@ME_\00" -@.str1302 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str1303 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1304 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1305 = private unnamed_addr constant [5 x i8] c"void\00" -@.str1306 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1307 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" -@.str1308 = private unnamed_addr constant [18 x i8] c"define void @sys_\00" -@.str1309 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" -@.str1310 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" -@.str1311 = private unnamed_addr constant [19 x i8] c"load i32, ptr @HE_\00" -@.str1312 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1313 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1314 = private unnamed_addr constant [5 x i8] c"hrun\00" -@.str1315 = private unnamed_addr constant [6 x i8] c"hskip\00" -@.str1316 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1317 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1318 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1319 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1320 = private unnamed_addr constant [20 x i8] c":\0A call void @sys_\00" -@.str1321 = private unnamed_addr constant [4 x i8] c"()\0A\00" -@.str1322 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1323 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1324 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1325 = private unnamed_addr constant [5 x i8] c"void\00" -@.str1326 = private unnamed_addr constant [3 x i8] c"%e\00" -@.str1327 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1328 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" -@.str1329 = private unnamed_addr constant [25 x i8] c"define void @on_despawn_\00" -@.str1330 = private unnamed_addr constant [19 x i8] c"(i32 %e) {\0Aentry:\0A\00" -@.str1331 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" -@.str1332 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" -@.str1333 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" -@.str1334 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" -@.str1335 = private unnamed_addr constant [8 x i8] c"rt_init\00" -@.str1336 = private unnamed_addr constant [27 x i8] c" call void @fn_rt_init()\0A\00" -@.str1337 = private unnamed_addr constant [6 x i8] c"Start\00" -@.str1338 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" -@.str1339 = private unnamed_addr constant [7 x i8] c"loop:\0A\00" -@.str1340 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_running\00" -@.str1341 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1342 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1343 = private unnamed_addr constant [11 x i8] c"rt_running\00" -@.str1344 = private unnamed_addr constant [26 x i8] c"call i32 @fn_rt_running()\00" -@.str1345 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1346 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1347 = private unnamed_addr constant [8 x i8] c"and i1 \00" -@.str1348 = private unnamed_addr constant [3 x i8] c", \00" -@.str1349 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1350 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" -@.str1351 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1352 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" -@.str1353 = private unnamed_addr constant [7 x i8] c"body:\0A\00" -@.str1354 = private unnamed_addr constant [8 x i8] c"rt_poll\00" -@.str1355 = private unnamed_addr constant [23 x i8] c"call i32 @fn_rt_poll()\00" -@.str1356 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str1357 = private unnamed_addr constant [14 x i8] c", ptr @L_key\0A\00" -@.str1358 = private unnamed_addr constant [6 x i8] c"Input\00" -@.str1359 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" -@.str1360 = private unnamed_addr constant [7 x i8] c"Update\00" -@.str1361 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" -@.str1362 = private unnamed_addr constant [7 x i8] c"Render\00" -@.str1363 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" -@.str1364 = private unnamed_addr constant [7 x i8] c"done:\0A\00" -@.str1365 = private unnamed_addr constant [7 x i8] c"OnQuit\00" -@.str1366 = private unnamed_addr constant [12 x i8] c"rt_shutdown\00" -@.str1367 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_shutdown()\0A\00" -@.str1368 = private unnamed_addr constant [15 x i8] c" ret i32 0\0A}\0A\00" -@.str1369 = private unnamed_addr constant [25 x i8] c"call i32 @fn_rt_reg(i32 \00" -@.str1370 = private unnamed_addr constant [2 x i8] c")\00" -@.str1371 = private unnamed_addr constant [6 x i8] c"smend\00" -@.str1372 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str1373 = private unnamed_addr constant [3 x i8] c", \00" -@.str1374 = private unnamed_addr constant [6 x i8] c"sbody\00" -@.str1375 = private unnamed_addr constant [5 x i8] c"sarm\00" -@.str1376 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1377 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1378 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1287 = private unnamed_addr constant [3 x i8] c" \00" +@.str1288 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1289 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" +@.str1290 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" +@.str1291 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1292 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1293 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1294 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str1295 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1296 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1297 = private unnamed_addr constant [5 x i8] c"@HE_\00" +@.str1298 = private unnamed_addr constant [5 x i8] c"@ME_\00" +@.str1299 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str1300 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1301 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1302 = private unnamed_addr constant [5 x i8] c"void\00" +@.str1303 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1304 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" +@.str1305 = private unnamed_addr constant [18 x i8] c"define void @sys_\00" +@.str1306 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" +@.str1307 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" +@.str1308 = private unnamed_addr constant [19 x i8] c"load i32, ptr @HE_\00" +@.str1309 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1310 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1311 = private unnamed_addr constant [5 x i8] c"hrun\00" +@.str1312 = private unnamed_addr constant [6 x i8] c"hskip\00" +@.str1313 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1314 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1315 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1316 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1317 = private unnamed_addr constant [20 x i8] c":\0A call void @sys_\00" +@.str1318 = private unnamed_addr constant [4 x i8] c"()\0A\00" +@.str1319 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1320 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1321 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1322 = private unnamed_addr constant [5 x i8] c"void\00" +@.str1323 = private unnamed_addr constant [3 x i8] c"%e\00" +@.str1324 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1325 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" +@.str1326 = private unnamed_addr constant [25 x i8] c"define void @on_despawn_\00" +@.str1327 = private unnamed_addr constant [19 x i8] c"(i32 %e) {\0Aentry:\0A\00" +@.str1328 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" +@.str1329 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" +@.str1330 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" +@.str1331 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" +@.str1332 = private unnamed_addr constant [8 x i8] c"rt_init\00" +@.str1333 = private unnamed_addr constant [27 x i8] c" call void @fn_rt_init()\0A\00" +@.str1334 = private unnamed_addr constant [6 x i8] c"Start\00" +@.str1335 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" +@.str1336 = private unnamed_addr constant [7 x i8] c"loop:\0A\00" +@.str1337 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_running\00" +@.str1338 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1339 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1340 = private unnamed_addr constant [11 x i8] c"rt_running\00" +@.str1341 = private unnamed_addr constant [26 x i8] c"call i32 @fn_rt_running()\00" +@.str1342 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1343 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1344 = private unnamed_addr constant [8 x i8] c"and i1 \00" +@.str1345 = private unnamed_addr constant [3 x i8] c", \00" +@.str1346 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1347 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" +@.str1348 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1349 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" +@.str1350 = private unnamed_addr constant [7 x i8] c"body:\0A\00" +@.str1351 = private unnamed_addr constant [8 x i8] c"rt_poll\00" +@.str1352 = private unnamed_addr constant [23 x i8] c"call i32 @fn_rt_poll()\00" +@.str1353 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str1354 = private unnamed_addr constant [14 x i8] c", ptr @L_key\0A\00" +@.str1355 = private unnamed_addr constant [6 x i8] c"Input\00" +@.str1356 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" +@.str1357 = private unnamed_addr constant [7 x i8] c"Update\00" +@.str1358 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" +@.str1359 = private unnamed_addr constant [7 x i8] c"Render\00" +@.str1360 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" +@.str1361 = private unnamed_addr constant [7 x i8] c"done:\0A\00" +@.str1362 = private unnamed_addr constant [7 x i8] c"OnQuit\00" +@.str1363 = private unnamed_addr constant [12 x i8] c"rt_shutdown\00" +@.str1364 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_shutdown()\0A\00" +@.str1365 = private unnamed_addr constant [15 x i8] c" ret i32 0\0A}\0A\00" +@.str1366 = private unnamed_addr constant [25 x i8] c"call i32 @fn_rt_reg(i32 \00" +@.str1367 = private unnamed_addr constant [2 x i8] c")\00" +@.str1368 = private unnamed_addr constant [6 x i8] c"smend\00" +@.str1369 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str1370 = private unnamed_addr constant [3 x i8] c", \00" +@.str1371 = private unnamed_addr constant [6 x i8] c"sbody\00" +@.str1372 = private unnamed_addr constant [5 x i8] c"sarm\00" +@.str1373 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1374 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1375 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1376 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1377 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1378 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str1379 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1380 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str1381 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str1382 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1383 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1384 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1385 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1386 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1387 = private unnamed_addr constant [27 x i8] c"'become' outside a machine\00" -@.str1388 = private unnamed_addr constant [18 x i8] c"become: no state \00" -@.str1389 = private unnamed_addr constant [32 x i8] c" call void @fn_rt_set_reg(i32 \00" -@.str1390 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str1391 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1392 = private unnamed_addr constant [4 x i8] c"%io\00" -@.str1393 = private unnamed_addr constant [3 x i8] c" \00" -@.str1394 = private unnamed_addr constant [14 x i8] c" = call i64 @\00" -@.str1395 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str1396 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" -@.str1397 = private unnamed_addr constant [11 x i8] c", ptr %f)\0A\00" -@.str1398 = private unnamed_addr constant [8 x i8] c"@L_entc\00" -@.str1399 = private unnamed_addr constant [2 x i8] c"4\00" -@.str1400 = private unnamed_addr constant [9 x i8] c"@L_freen\00" -@.str1401 = private unnamed_addr constant [2 x i8] c"4\00" -@.str1402 = private unnamed_addr constant [21 x i8] c" %nalive = mul i64 \00" -@.str1403 = private unnamed_addr constant [5 x i8] c", 4\0A\00" -@.str1404 = private unnamed_addr constant [9 x i8] c"@L_alive\00" -@.str1405 = private unnamed_addr constant [8 x i8] c"%nalive\00" -@.str1406 = private unnamed_addr constant [12 x i8] c"@L_freelist\00" -@.str1407 = private unnamed_addr constant [8 x i8] c"%nalive\00" -@.str1408 = private unnamed_addr constant [8 x i8] c"@L_kind\00" -@.str1409 = private unnamed_addr constant [8 x i8] c"%nalive\00" -@.str1410 = private unnamed_addr constant [4 x i8] c"@g_\00" -@.str1411 = private unnamed_addr constant [2 x i8] c"4\00" -@.str1412 = private unnamed_addr constant [5 x i8] c"%csz\00" -@.str1413 = private unnamed_addr constant [3 x i8] c" \00" -@.str1414 = private unnamed_addr constant [37 x i8] c" = ptrtoint ptr getelementptr (%Cmp_\00" -@.str1415 = private unnamed_addr constant [17 x i8] c", ptr null, i32 \00" -@.str1416 = private unnamed_addr constant [10 x i8] c") to i64\0A\00" -@.str1417 = private unnamed_addr constant [4 x i8] c"@S_\00" -@.str1418 = private unnamed_addr constant [4 x i8] c"@H_\00" -@.str1419 = private unnamed_addr constant [70 x i8] c"@.sav_path = private unnamed_addr constant [10 x i8] c\22ludic.sav\5C00\22\0A\00" -@.str1420 = private unnamed_addr constant [60 x i8] c"@.sav_wb = private unnamed_addr constant [3 x i8] c\22wb\5C00\22\0A\00" -@.str1421 = private unnamed_addr constant [60 x i8] c"@.sav_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" -@.str1422 = private unnamed_addr constant [14 x i8] c"rt_save_state\00" -@.str1423 = private unnamed_addr constant [14 x i8] c"rt_load_state\00" -@.str1424 = private unnamed_addr constant [32 x i8] c"define void @L_save() {\0Aentry:\0A\00" -@.str1425 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_wb)\0A\00" -@.str1426 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" -@.str1427 = private unnamed_addr constant [41 x i8] c" br i1 %bad, label %out, label %go\0Ago:\0A\00" -@.str1428 = private unnamed_addr constant [7 x i8] c"fwrite\00" -@.str1429 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_save_state(ptr %f)\0A\00" -@.str1430 = 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" -@.str1431 = private unnamed_addr constant [31 x i8] c"define i32 @L_load() {\0Aentry:\0A\00" -@.str1432 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_rb)\0A\00" -@.str1433 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" -@.str1434 = private unnamed_addr constant [60 x i8] c" br i1 %bad, label %miss, label %go\0Amiss:\0A ret i32 0\0Ago:\0A\00" -@.str1435 = private unnamed_addr constant [6 x i8] c"fread\00" -@.str1436 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_load_state(ptr %f)\0A\00" -@.str1437 = private unnamed_addr constant [48 x i8] c" %c = call i32 @fclose(ptr %f)\0A ret i32 1\0A}\0A\0A\00" -@.str1438 = private unnamed_addr constant [6 x i8] c"panel\00" -@.str1439 = private unnamed_addr constant [4 x i8] c"col\00" -@.str1440 = private unnamed_addr constant [4 x i8] c"row\00" -@.str1441 = private unnamed_addr constant [6 x i8] c"label\00" -@.str1442 = private unnamed_addr constant [7 x i8] c"button\00" -@.str1443 = private unnamed_addr constant [6 x i8] c"image\00" -@.str1444 = private unnamed_addr constant [7 x i8] c"spacer\00" -@.str1445 = private unnamed_addr constant [3 x i8] c"id\00" -@.str1446 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_ui_set(i32 \00" -@.str1447 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str1448 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str1449 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1450 = private unnamed_addr constant [2 x i8] c"w\00" -@.str1451 = private unnamed_addr constant [2 x i8] c"h\00" -@.str1452 = private unnamed_addr constant [2 x i8] c"x\00" -@.str1453 = private unnamed_addr constant [2 x i8] c"y\00" -@.str1454 = private unnamed_addr constant [4 x i8] c"pad\00" -@.str1455 = private unnamed_addr constant [4 x i8] c"gap\00" -@.str1456 = private unnamed_addr constant [3 x i8] c"bg\00" -@.str1457 = private unnamed_addr constant [3 x i8] c"fg\00" -@.str1458 = private unnamed_addr constant [7 x i8] c"border\00" -@.str1459 = private unnamed_addr constant [5 x i8] c"grow\00" -@.str1460 = private unnamed_addr constant [5 x i8] c"font\00" -@.str1461 = private unnamed_addr constant [5 x i8] c"size\00" -@.str1462 = private unnamed_addr constant [6 x i8] c"inset\00" -@.str1463 = private unnamed_addr constant [6 x i8] c"focus\00" -@.str1464 = private unnamed_addr constant [33 x i8] c" call void @fn_rt_ui_reset(i32 \00" -@.str1465 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1466 = private unnamed_addr constant [2 x i8] c"1\00" -@.str1467 = private unnamed_addr constant [3 x i8] c"id\00" -@.str1468 = private unnamed_addr constant [5 x i8] c"text\00" -@.str1469 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_ui_static_text(i32 \00" -@.str1470 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1471 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1472 = private unnamed_addr constant [5 x i8] c"skin\00" -@.str1473 = private unnamed_addr constant [6 x i8] c"image\00" -@.str1474 = private unnamed_addr constant [32 x i8] c"call i32 @fn_rt_image_load(ptr \00" -@.str1475 = private unnamed_addr constant [2 x i8] c")\00" -@.str1476 = private unnamed_addr constant [5 x i8] c"skin\00" -@.str1477 = private unnamed_addr constant [6 x i8] c"align\00" -@.str1478 = private unnamed_addr constant [7 x i8] c"center\00" -@.str1479 = private unnamed_addr constant [4 x i8] c"end\00" -@.str1480 = private unnamed_addr constant [2 x i8] c"1\00" -@.str1481 = private unnamed_addr constant [34 x i8] c"define void @ui_build() {\0Aentry:\0A\00" -@.str1482 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" -@.str1483 = private unnamed_addr constant [3 x i8] c", \00" -@.str1484 = private unnamed_addr constant [7 x i8] c" %arg_\00" -@.str1485 = private unnamed_addr constant [5 x i8] c"void\00" -@.str1486 = private unnamed_addr constant [20 x i8] c" %retval = alloca \00" -@.str1487 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1488 = private unnamed_addr constant [9 x i8] c" store \00" -@.str1489 = private unnamed_addr constant [7 x i8] c" %arg_\00" -@.str1490 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1491 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1492 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1493 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" -@.str1494 = private unnamed_addr constant [5 x i8] c"void\00" -@.str1495 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" -@.str1496 = private unnamed_addr constant [6 x i8] c"load \00" -@.str1497 = private unnamed_addr constant [14 x i8] c", ptr %retval\00" -@.str1498 = private unnamed_addr constant [7 x i8] c" ret \00" -@.str1499 = private unnamed_addr constant [2 x i8] c" \00" -@.str1500 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1501 = private unnamed_addr constant [8 x i8] c"define \00" -@.str1502 = private unnamed_addr constant [6 x i8] c" @fn_\00" -@.str1503 = private unnamed_addr constant [2 x i8] c"(\00" -@.str1504 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00" -@.str1505 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" -@.str1506 = private unnamed_addr constant [4 x i8] c"int\00" -@.str1507 = private unnamed_addr constant [24 x i8] c" %retval = alloca i32\0A\00" -@.str1508 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" -@.str1509 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" -@.str1510 = private unnamed_addr constant [28 x i8] c" store i32 0, ptr %retval\0A\00" -@.str1511 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1512 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" -@.str1513 = private unnamed_addr constant [22 x i8] c"load i32, ptr %retval\00" -@.str1514 = private unnamed_addr constant [11 x i8] c" ret i32 \00" -@.str1515 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1516 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" -@.str1517 = private unnamed_addr constant [3 x i8] c"}\0A\00" -@.str1518 = private unnamed_addr constant [3 x i8] c"wb\00" -@.str1519 = private unnamed_addr constant [7 x i8] c".ludic\00" -@.str1520 = private unnamed_addr constant [2 x i8] c"/\00" -@.str1521 = private unnamed_addr constant [6 x i8] c"ludic\00" -@.str1522 = private unnamed_addr constant [11 x i8] c"--windowed\00" -@.str1523 = private unnamed_addr constant [11 x i8] c"--headless\00" -@.str1524 = private unnamed_addr constant [12 x i8] c"--emit-llvm\00" -@.str1525 = private unnamed_addr constant [6 x i8] c"--fmt\00" -@.str1526 = private unnamed_addr constant [13 x i8] c"--save-temps\00" -@.str1527 = private unnamed_addr constant [6 x i8] c"--run\00" -@.str1528 = private unnamed_addr constant [3 x i8] c"-o\00" -@.str1529 = private unnamed_addr constant [31 x i8] c"ludicc: ignoring unknown flag \00" -@.str1530 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1531 = private unnamed_addr constant [90 x i8] c"usage: ludicc [-o out] [--windowed|--headless] [--emit-llvm] [--save-temps]\0A\00" -@.str1532 = private unnamed_addr constant [27 x i8] c"ludicc: cannot open input\0A\00" -@.str1533 = private unnamed_addr constant [16 x i8] c"/tmp/ludic-run-\00" -@.str1534 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" -@.str1535 = private unnamed_addr constant [4 x i8] c".ll\00" -@.str1536 = private unnamed_addr constant [25 x i8] c"ludicc: cannot write IR\0A\00" -@.str1537 = private unnamed_addr constant [9 x i8] c"LUDIC_CC\00" -@.str1538 = private unnamed_addr constant [6 x i8] c"clang\00" -@.str1539 = private unnamed_addr constant [11 x i8] c"LUDIC_HOME\00" -@.str1540 = private unnamed_addr constant [27 x i8] c" -O2 -Wno-override-module \00" -@.str1541 = private unnamed_addr constant [24 x i8] c"runtime/native/cocoa.ll\00" -@.str1542 = private unnamed_addr constant [2 x i8] c" \00" -@.str1543 = private unnamed_addr constant [42 x i8] c" -framework Cocoa -Wl,-rpath,@loader_path\00" -@.str1544 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str1545 = private unnamed_addr constant [7 x i8] c"rm -f \00" -@.str1546 = private unnamed_addr constant [21 x i8] c"ludicc: link failed\0A\00" +@.str1384 = private unnamed_addr constant [27 x i8] c"'become' outside a machine\00" +@.str1385 = private unnamed_addr constant [18 x i8] c"become: no state \00" +@.str1386 = private unnamed_addr constant [32 x i8] c" call void @fn_rt_set_reg(i32 \00" +@.str1387 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str1388 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1389 = private unnamed_addr constant [4 x i8] c"%io\00" +@.str1390 = private unnamed_addr constant [3 x i8] c" \00" +@.str1391 = private unnamed_addr constant [14 x i8] c" = call i64 @\00" +@.str1392 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str1393 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" +@.str1394 = private unnamed_addr constant [11 x i8] c", ptr %f)\0A\00" +@.str1395 = private unnamed_addr constant [8 x i8] c"@L_entc\00" +@.str1396 = private unnamed_addr constant [2 x i8] c"4\00" +@.str1397 = private unnamed_addr constant [9 x i8] c"@L_freen\00" +@.str1398 = private unnamed_addr constant [2 x i8] c"4\00" +@.str1399 = private unnamed_addr constant [21 x i8] c" %nalive = mul i64 \00" +@.str1400 = private unnamed_addr constant [5 x i8] c", 4\0A\00" +@.str1401 = private unnamed_addr constant [9 x i8] c"@L_alive\00" +@.str1402 = private unnamed_addr constant [8 x i8] c"%nalive\00" +@.str1403 = private unnamed_addr constant [12 x i8] c"@L_freelist\00" +@.str1404 = private unnamed_addr constant [8 x i8] c"%nalive\00" +@.str1405 = private unnamed_addr constant [8 x i8] c"@L_kind\00" +@.str1406 = private unnamed_addr constant [8 x i8] c"%nalive\00" +@.str1407 = private unnamed_addr constant [4 x i8] c"@g_\00" +@.str1408 = private unnamed_addr constant [2 x i8] c"4\00" +@.str1409 = private unnamed_addr constant [5 x i8] c"%csz\00" +@.str1410 = private unnamed_addr constant [3 x i8] c" \00" +@.str1411 = private unnamed_addr constant [37 x i8] c" = ptrtoint ptr getelementptr (%Cmp_\00" +@.str1412 = private unnamed_addr constant [17 x i8] c", ptr null, i32 \00" +@.str1413 = private unnamed_addr constant [10 x i8] c") to i64\0A\00" +@.str1414 = private unnamed_addr constant [4 x i8] c"@S_\00" +@.str1415 = private unnamed_addr constant [4 x i8] c"@H_\00" +@.str1416 = private unnamed_addr constant [70 x i8] c"@.sav_path = private unnamed_addr constant [10 x i8] c\22ludic.sav\5C00\22\0A\00" +@.str1417 = private unnamed_addr constant [60 x i8] c"@.sav_wb = private unnamed_addr constant [3 x i8] c\22wb\5C00\22\0A\00" +@.str1418 = private unnamed_addr constant [60 x i8] c"@.sav_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" +@.str1419 = private unnamed_addr constant [14 x i8] c"rt_save_state\00" +@.str1420 = private unnamed_addr constant [14 x i8] c"rt_load_state\00" +@.str1421 = private unnamed_addr constant [32 x i8] c"define void @L_save() {\0Aentry:\0A\00" +@.str1422 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_wb)\0A\00" +@.str1423 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" +@.str1424 = private unnamed_addr constant [41 x i8] c" br i1 %bad, label %out, label %go\0Ago:\0A\00" +@.str1425 = private unnamed_addr constant [7 x i8] c"fwrite\00" +@.str1426 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_save_state(ptr %f)\0A\00" +@.str1427 = 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" +@.str1428 = private unnamed_addr constant [31 x i8] c"define i32 @L_load() {\0Aentry:\0A\00" +@.str1429 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_rb)\0A\00" +@.str1430 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" +@.str1431 = private unnamed_addr constant [60 x i8] c" br i1 %bad, label %miss, label %go\0Amiss:\0A ret i32 0\0Ago:\0A\00" +@.str1432 = private unnamed_addr constant [6 x i8] c"fread\00" +@.str1433 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_load_state(ptr %f)\0A\00" +@.str1434 = private unnamed_addr constant [48 x i8] c" %c = call i32 @fclose(ptr %f)\0A ret i32 1\0A}\0A\0A\00" +@.str1435 = private unnamed_addr constant [6 x i8] c"panel\00" +@.str1436 = private unnamed_addr constant [4 x i8] c"col\00" +@.str1437 = private unnamed_addr constant [4 x i8] c"row\00" +@.str1438 = private unnamed_addr constant [6 x i8] c"label\00" +@.str1439 = private unnamed_addr constant [7 x i8] c"button\00" +@.str1440 = private unnamed_addr constant [6 x i8] c"image\00" +@.str1441 = private unnamed_addr constant [7 x i8] c"spacer\00" +@.str1442 = private unnamed_addr constant [3 x i8] c"id\00" +@.str1443 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_ui_set(i32 \00" +@.str1444 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str1445 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str1446 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1447 = private unnamed_addr constant [2 x i8] c"w\00" +@.str1448 = private unnamed_addr constant [2 x i8] c"h\00" +@.str1449 = private unnamed_addr constant [2 x i8] c"x\00" +@.str1450 = private unnamed_addr constant [2 x i8] c"y\00" +@.str1451 = private unnamed_addr constant [4 x i8] c"pad\00" +@.str1452 = private unnamed_addr constant [4 x i8] c"gap\00" +@.str1453 = private unnamed_addr constant [3 x i8] c"bg\00" +@.str1454 = private unnamed_addr constant [3 x i8] c"fg\00" +@.str1455 = private unnamed_addr constant [7 x i8] c"border\00" +@.str1456 = private unnamed_addr constant [5 x i8] c"grow\00" +@.str1457 = private unnamed_addr constant [5 x i8] c"font\00" +@.str1458 = private unnamed_addr constant [5 x i8] c"size\00" +@.str1459 = private unnamed_addr constant [6 x i8] c"inset\00" +@.str1460 = private unnamed_addr constant [6 x i8] c"focus\00" +@.str1461 = private unnamed_addr constant [33 x i8] c" call void @fn_rt_ui_reset(i32 \00" +@.str1462 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1463 = private unnamed_addr constant [2 x i8] c"1\00" +@.str1464 = private unnamed_addr constant [3 x i8] c"id\00" +@.str1465 = private unnamed_addr constant [5 x i8] c"text\00" +@.str1466 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_ui_static_text(i32 \00" +@.str1467 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1468 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1469 = private unnamed_addr constant [5 x i8] c"skin\00" +@.str1470 = private unnamed_addr constant [6 x i8] c"image\00" +@.str1471 = private unnamed_addr constant [32 x i8] c"call i32 @fn_rt_image_load(ptr \00" +@.str1472 = private unnamed_addr constant [2 x i8] c")\00" +@.str1473 = private unnamed_addr constant [5 x i8] c"skin\00" +@.str1474 = private unnamed_addr constant [6 x i8] c"align\00" +@.str1475 = private unnamed_addr constant [7 x i8] c"center\00" +@.str1476 = private unnamed_addr constant [4 x i8] c"end\00" +@.str1477 = private unnamed_addr constant [2 x i8] c"1\00" +@.str1478 = private unnamed_addr constant [34 x i8] c"define void @ui_build() {\0Aentry:\0A\00" +@.str1479 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" +@.str1480 = private unnamed_addr constant [3 x i8] c", \00" +@.str1481 = private unnamed_addr constant [7 x i8] c" %arg_\00" +@.str1482 = private unnamed_addr constant [5 x i8] c"void\00" +@.str1483 = private unnamed_addr constant [20 x i8] c" %retval = alloca \00" +@.str1484 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1485 = private unnamed_addr constant [9 x i8] c" store \00" +@.str1486 = private unnamed_addr constant [7 x i8] c" %arg_\00" +@.str1487 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1488 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1489 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1490 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" +@.str1491 = private unnamed_addr constant [5 x i8] c"void\00" +@.str1492 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" +@.str1493 = private unnamed_addr constant [6 x i8] c"load \00" +@.str1494 = private unnamed_addr constant [14 x i8] c", ptr %retval\00" +@.str1495 = private unnamed_addr constant [7 x i8] c" ret \00" +@.str1496 = private unnamed_addr constant [2 x i8] c" \00" +@.str1497 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1498 = private unnamed_addr constant [8 x i8] c"define \00" +@.str1499 = private unnamed_addr constant [6 x i8] c" @fn_\00" +@.str1500 = private unnamed_addr constant [2 x i8] c"(\00" +@.str1501 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00" +@.str1502 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" +@.str1503 = private unnamed_addr constant [4 x i8] c"int\00" +@.str1504 = private unnamed_addr constant [24 x i8] c" %retval = alloca i32\0A\00" +@.str1505 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" +@.str1506 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" +@.str1507 = private unnamed_addr constant [28 x i8] c" store i32 0, ptr %retval\0A\00" +@.str1508 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1509 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" +@.str1510 = private unnamed_addr constant [22 x i8] c"load i32, ptr %retval\00" +@.str1511 = private unnamed_addr constant [11 x i8] c" ret i32 \00" +@.str1512 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1513 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" +@.str1514 = private unnamed_addr constant [3 x i8] c"}\0A\00" +@.str1515 = private unnamed_addr constant [3 x i8] c"wb\00" +@.str1516 = private unnamed_addr constant [7 x i8] c".ludic\00" +@.str1517 = private unnamed_addr constant [2 x i8] c"/\00" +@.str1518 = private unnamed_addr constant [6 x i8] c"ludic\00" +@.str1519 = private unnamed_addr constant [11 x i8] c"--windowed\00" +@.str1520 = private unnamed_addr constant [11 x i8] c"--headless\00" +@.str1521 = private unnamed_addr constant [12 x i8] c"--emit-llvm\00" +@.str1522 = private unnamed_addr constant [6 x i8] c"--fmt\00" +@.str1523 = private unnamed_addr constant [13 x i8] c"--save-temps\00" +@.str1524 = private unnamed_addr constant [6 x i8] c"--run\00" +@.str1525 = private unnamed_addr constant [3 x i8] c"-o\00" +@.str1526 = private unnamed_addr constant [31 x i8] c"ludicc: ignoring unknown flag \00" +@.str1527 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1528 = private unnamed_addr constant [90 x i8] c"usage: ludicc [-o out] [--windowed|--headless] [--emit-llvm] [--save-temps]\0A\00" +@.str1529 = private unnamed_addr constant [27 x i8] c"ludicc: cannot open input\0A\00" +@.str1530 = private unnamed_addr constant [16 x i8] c"/tmp/ludic-run-\00" +@.str1531 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" +@.str1532 = private unnamed_addr constant [4 x i8] c".ll\00" +@.str1533 = private unnamed_addr constant [25 x i8] c"ludicc: cannot write IR\0A\00" +@.str1534 = private unnamed_addr constant [9 x i8] c"LUDIC_CC\00" +@.str1535 = private unnamed_addr constant [6 x i8] c"clang\00" +@.str1536 = private unnamed_addr constant [11 x i8] c"LUDIC_HOME\00" +@.str1537 = private unnamed_addr constant [27 x i8] c" -O2 -Wno-override-module \00" +@.str1538 = private unnamed_addr constant [24 x i8] c"runtime/native/cocoa.ll\00" +@.str1539 = private unnamed_addr constant [2 x i8] c" \00" +@.str1540 = private unnamed_addr constant [42 x i8] c" -framework Cocoa -Wl,-rpath,@loader_path\00" +@.str1541 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str1542 = private unnamed_addr constant [7 x i8] c"rm -f \00" +@.str1543 = private unnamed_addr constant [21 x i8] c"ludicc: link failed\0A\00" define i32 @fn_streq(ptr %arg_a, ptr %arg_b) { entry: %retval = alloca i32 @@ -4194,9 +4191,9 @@ entry: %t46 = alloca ptr %t67 = alloca ptr %t79 = alloca ptr - %t93 = alloca ptr - %t99 = alloca ptr - %t113 = alloca ptr + %t101 = alloca ptr + %t107 = alloca ptr + %t121 = alloca ptr %t0 = load ptr, ptr @g_toks %t1 = getelementptr inbounds %LSlice, ptr %t0, i32 0, i32 0 %t2 = load ptr, ptr %t1 @@ -4329,54 +4326,68 @@ then18: %t90 = load i32, ptr @g_pi %t91 = add i32 %t90, 1 store i32 %t91, ptr @g_pi - %t92 = call ptr @fn_node(i32 39) - store ptr %t92, ptr %t93 - %t94 = load ptr, ptr %t93 - %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 1 - %t96 = call ptr @fn_ptype() - store ptr %t96, ptr %t95 - %t97 = load ptr, ptr %t93 - store ptr %t97, ptr %retval + %t92 = call ptr @fn_node(i32 43) + store ptr %t92, ptr %retval br label %ret ifend20: - %t98 = call ptr @fn_node(i32 33) - store ptr %t98, ptr %t99 - %t100 = load ptr, ptr %t99 - %t101 = getelementptr inbounds %Cmp_Node, ptr %t100, i32 0, i32 1 - %t102 = load ptr, ptr %t6 - %t103 = getelementptr inbounds %Cmp_Tok, ptr %t102, i32 0, i32 1 - %t104 = load ptr, ptr %t103 - store ptr %t104, ptr %t101 - %t105 = load i32, ptr @g_pi - %t106 = add i32 %t105, 1 - store i32 %t106, ptr @g_pi - %t107 = load ptr, ptr %t99 - store ptr %t107, ptr %retval - br label %ret -ifend11: - %t108 = call i32 @fn_is_op(ptr @.str13) - %t109 = icmp ne i32 %t108, 0 - br i1 %t109, label %then21, label %ifend23 + %t93 = load ptr, ptr %t6 + %t94 = getelementptr inbounds %Cmp_Tok, ptr %t93, i32 0, i32 1 + %t95 = load ptr, ptr %t94 + %t96 = call i32 @fn_streq(ptr %t95, ptr @.str13) + %t97 = icmp ne i32 %t96, 0 + br i1 %t97, label %then21, label %ifend23 then21: - %t110 = load i32, ptr @g_pi - %t111 = add i32 %t110, 1 - store i32 %t111, ptr @g_pi - call void @fn_skipnl() - %t112 = call ptr @fn_expr() - store ptr %t112, ptr %t113 - call void @fn_skipnl() - call void @fn_eat_op(ptr @.str14) - %t114 = load ptr, ptr %t113 - store ptr %t114, ptr %retval + %t98 = load i32, ptr @g_pi + %t99 = add i32 %t98, 1 + store i32 %t99, ptr @g_pi + %t100 = call ptr @fn_node(i32 39) + store ptr %t100, ptr %t101 + %t102 = load ptr, ptr %t101 + %t103 = getelementptr inbounds %Cmp_Node, ptr %t102, i32 0, i32 1 + %t104 = call ptr @fn_ptype() + store ptr %t104, ptr %t103 + %t105 = load ptr, ptr %t101 + store ptr %t105, ptr %retval br label %ret ifend23: - call void @fn_perr(ptr @.str15) - %t115 = call ptr @fn_node(i32 30) + %t106 = call ptr @fn_node(i32 33) + store ptr %t106, ptr %t107 + %t108 = load ptr, ptr %t107 + %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 1 + %t110 = load ptr, ptr %t6 + %t111 = getelementptr inbounds %Cmp_Tok, ptr %t110, i32 0, i32 1 + %t112 = load ptr, ptr %t111 + store ptr %t112, ptr %t109 + %t113 = load i32, ptr @g_pi + %t114 = add i32 %t113, 1 + store i32 %t114, ptr @g_pi + %t115 = load ptr, ptr %t107 store ptr %t115, ptr %retval br label %ret +ifend11: + %t116 = call i32 @fn_is_op(ptr @.str14) + %t117 = icmp ne i32 %t116, 0 + br i1 %t117, label %then24, label %ifend26 +then24: + %t118 = load i32, ptr @g_pi + %t119 = add i32 %t118, 1 + store i32 %t119, ptr @g_pi + call void @fn_skipnl() + %t120 = call ptr @fn_expr() + store ptr %t120, ptr %t121 + call void @fn_skipnl() + call void @fn_eat_op(ptr @.str15) + %t122 = load ptr, ptr %t121 + store ptr %t122, ptr %retval + br label %ret +ifend26: + call void @fn_perr(ptr @.str16) + %t123 = call ptr @fn_node(i32 30) + store ptr %t123, ptr %retval + br label %ret ret: - %t116 = load ptr, ptr %retval - ret ptr %t116 + %t124 = load ptr, ptr %retval + ret ptr %t124 } define ptr @fn_p_postfix() { @@ -4393,7 +4404,7 @@ wcond0: %t2 = icmp ne i32 1, 0 br i1 %t2, label %wbody1, label %wend2 wbody1: - %t3 = call i32 @fn_is_op(ptr @.str16) + %t3 = call i32 @fn_is_op(ptr @.str17) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then3, label %else4 then3: @@ -4414,7 +4425,7 @@ then3: store ptr %t15, ptr %t1 br label %ifend5 else4: - %t16 = call i32 @fn_is_op(ptr @.str17) + %t16 = call i32 @fn_is_op(ptr @.str18) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then6, label %else7 then6: @@ -4431,12 +4442,12 @@ then6: %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 5 %t27 = call ptr @fn_expr() store ptr %t27, ptr %t26 - call void @fn_eat_op(ptr @.str18) + call void @fn_eat_op(ptr @.str19) %t28 = load ptr, ptr %t21 store ptr %t28, ptr %t1 br label %ifend8 else7: - %t29 = call i32 @fn_is_op(ptr @.str19) + %t29 = call i32 @fn_is_op(ptr @.str20) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then9, label %else10 then9: @@ -4474,7 +4485,7 @@ entry: %t5 = alloca ptr %t17 = alloca ptr %t29 = alloca ptr - %t0 = call i32 @fn_is_op(ptr @.str20) + %t0 = call i32 @fn_is_op(ptr @.str21) %t1 = icmp ne i32 %t0, 0 br i1 %t1, label %then0, label %ifend2 then0: @@ -4485,7 +4496,7 @@ then0: store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 - store ptr @.str21, ptr %t7 + store ptr @.str22, ptr %t7 %t8 = load ptr, ptr %t5 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4 %t10 = call ptr @fn_p_unary() @@ -4494,7 +4505,7 @@ then0: store ptr %t11, ptr %retval br label %ret ifend2: - %t12 = call i32 @fn_is_op(ptr @.str22) + %t12 = call i32 @fn_is_op(ptr @.str23) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then3, label %ifend5 then3: @@ -4505,7 +4516,7 @@ then3: store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t17 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 1 - store ptr @.str23, ptr %t19 + store ptr @.str24, ptr %t19 %t20 = load ptr, ptr %t17 %t21 = getelementptr inbounds %Cmp_Node, ptr %t20, i32 0, i32 4 %t22 = call ptr @fn_p_unary() @@ -4514,7 +4525,7 @@ then3: store ptr %t23, ptr %retval br label %ret ifend5: - %t24 = call i32 @fn_is_id(ptr @.str24) + %t24 = call i32 @fn_is_id(ptr @.str25) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then6, label %ifend8 then6: @@ -4525,7 +4536,7 @@ then6: store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t29 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 1 - store ptr @.str25, ptr %t31 + store ptr @.str26, ptr %t31 %t32 = load ptr, ptr %t29 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 4 %t34 = call ptr @fn_p_unary() @@ -4588,13 +4599,13 @@ entry: store ptr %t0, ptr %t1 br label %wcond0 wcond0: - %t7 = call i32 @fn_is_op(ptr @.str26) + %t7 = call i32 @fn_is_op(ptr @.str27) %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 @.str27) + %t10 = call i32 @fn_is_op(ptr @.str28) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t6 @@ -4606,7 +4617,7 @@ scend4: store i32 %t15, ptr %t5 br i1 %t14, label %scend6, label %sc5 sc5: - %t16 = call i32 @fn_is_op(ptr @.str28) + %t16 = call i32 @fn_is_op(ptr @.str29) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t5 @@ -4618,7 +4629,7 @@ scend6: store i32 %t21, ptr %t4 br i1 %t20, label %scend8, label %sc7 sc7: - %t22 = call i32 @fn_is_op(ptr @.str29) + %t22 = call i32 @fn_is_op(ptr @.str30) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t4 @@ -4630,7 +4641,7 @@ scend8: store i32 %t27, ptr %t3 br i1 %t26, label %scend10, label %sc9 sc9: - %t28 = call i32 @fn_is_op(ptr @.str30) + %t28 = call i32 @fn_is_op(ptr @.str31) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t3 @@ -4642,7 +4653,7 @@ scend10: store i32 %t33, ptr %t2 br i1 %t32, label %scend12, label %sc11 sc11: - %t34 = call i32 @fn_is_op(ptr @.str31) + %t34 = call i32 @fn_is_op(ptr @.str32) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t2 @@ -4691,13 +4702,13 @@ entry: store ptr %t0, ptr %t1 br label %wcond0 wcond0: - %t5 = call i32 @fn_is_op(ptr @.str32) + %t5 = call i32 @fn_is_op(ptr @.str33) %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 @.str33) + %t8 = call i32 @fn_is_op(ptr @.str34) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t4 @@ -4709,7 +4720,7 @@ scend4: store i32 %t13, ptr %t3 br i1 %t12, label %scend6, label %sc5 sc5: - %t14 = call i32 @fn_is_op(ptr @.str34) + %t14 = call i32 @fn_is_op(ptr @.str35) %t15 = icmp ne i32 %t14, 0 %t16 = zext i1 %t15 to i32 store i32 %t16, ptr %t3 @@ -4721,7 +4732,7 @@ scend6: store i32 %t19, ptr %t2 br i1 %t18, label %scend8, label %sc7 sc7: - %t20 = call i32 @fn_is_op(ptr @.str35) + %t20 = call i32 @fn_is_op(ptr @.str36) %t21 = icmp ne i32 %t20, 0 %t22 = zext i1 %t21 to i32 store i32 %t22, ptr %t2 @@ -4772,13 +4783,13 @@ entry: store ptr %t0, ptr %t1 br label %wcond0 wcond0: - %t7 = call i32 @fn_is_op(ptr @.str36) + %t7 = call i32 @fn_is_op(ptr @.str37) %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 @.str37) + %t10 = call i32 @fn_is_op(ptr @.str38) %t11 = icmp ne i32 %t10, 0 %t12 = zext i1 %t11 to i32 store i32 %t12, ptr %t6 @@ -4790,7 +4801,7 @@ scend4: store i32 %t15, ptr %t5 br i1 %t14, label %scend6, label %sc5 sc5: - %t16 = call i32 @fn_is_op(ptr @.str38) + %t16 = call i32 @fn_is_op(ptr @.str39) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t5 @@ -4802,7 +4813,7 @@ scend6: store i32 %t21, ptr %t4 br i1 %t20, label %scend8, label %sc7 sc7: - %t22 = call i32 @fn_is_op(ptr @.str39) + %t22 = call i32 @fn_is_op(ptr @.str40) %t23 = icmp ne i32 %t22, 0 %t24 = zext i1 %t23 to i32 store i32 %t24, ptr %t4 @@ -4814,7 +4825,7 @@ scend8: store i32 %t27, ptr %t3 br i1 %t26, label %scend10, label %sc9 sc9: - %t28 = call i32 @fn_is_op(ptr @.str40) + %t28 = call i32 @fn_is_op(ptr @.str41) %t29 = icmp ne i32 %t28, 0 %t30 = zext i1 %t29 to i32 store i32 %t30, ptr %t3 @@ -4826,7 +4837,7 @@ scend10: store i32 %t33, ptr %t2 br i1 %t32, label %scend12, label %sc11 sc11: - %t34 = call i32 @fn_is_op(ptr @.str41) + %t34 = call i32 @fn_is_op(ptr @.str42) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t2 @@ -4871,7 +4882,7 @@ entry: store ptr %t0, ptr %t1 br label %wcond0 wcond0: - %t2 = call i32 @fn_is_id(ptr @.str42) + %t2 = call i32 @fn_is_id(ptr @.str43) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %wbody1, label %wend2 wbody1: @@ -4880,7 +4891,7 @@ wbody1: store i32 %t5, ptr @g_pi %t6 = load ptr, ptr %t1 %t7 = call ptr @fn_p_cmp() - %t8 = call ptr @fn_mkbin(ptr @.str43, ptr %t6, ptr %t7) + %t8 = call ptr @fn_mkbin(ptr @.str44, ptr %t6, ptr %t7) store ptr %t8, ptr %t1 br label %wcond0 wend2: @@ -4900,7 +4911,7 @@ entry: store ptr %t0, ptr %t1 br label %wcond0 wcond0: - %t2 = call i32 @fn_is_id(ptr @.str44) + %t2 = call i32 @fn_is_id(ptr @.str45) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %wbody1, label %wend2 wbody1: @@ -4909,7 +4920,7 @@ wbody1: store i32 %t5, ptr @g_pi %t6 = load ptr, ptr %t1 %t7 = call ptr @fn_p_and() - %t8 = call ptr @fn_mkbin(ptr @.str45, ptr %t6, ptr %t7) + %t8 = call ptr @fn_mkbin(ptr @.str46, ptr %t6, ptr %t7) store ptr %t8, ptr %t1 br label %wcond0 wend2: @@ -4926,7 +4937,7 @@ entry: %retval = alloca ptr %t1 = alloca ptr %t6 = alloca ptr - call void @fn_eat_op(ptr @.str46) + call void @fn_eat_op(ptr @.str47) %t0 = call ptr @fn_node(i32 41) store ptr %t0, ptr %t1 br label %wcond0 @@ -4935,7 +4946,7 @@ wcond0: br i1 %t2, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() - %t3 = call i32 @fn_is_op(ptr @.str47) + %t3 = call i32 @fn_is_op(ptr @.str48) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then3, label %ifend5 then3: @@ -4947,7 +4958,7 @@ ifend5: %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 @.str48) + call void @fn_eat_op(ptr @.str49) %t10 = load ptr, ptr %t6 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 4 %t12 = call ptr @fn_expr() @@ -4982,7 +4993,7 @@ put7: store ptr %t31, ptr %t33 %t34 = add i32 %t19, 1 store i32 %t34, ptr %t16 - %t35 = call i32 @fn_is_op(ptr @.str49) + %t35 = call i32 @fn_is_op(ptr @.str50) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then8, label %ifend10 then8: @@ -4993,7 +5004,7 @@ then8: ifend10: br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str50) + call void @fn_eat_op(ptr @.str51) %t39 = load ptr, ptr %t1 store ptr %t39, ptr %retval br label %ret @@ -5008,7 +5019,7 @@ entry: %t1 = alloca ptr %t37 = alloca i32 call void @fn_skipnl() - call void @fn_eat_op(ptr @.str51) + call void @fn_eat_op(ptr @.str52) %t0 = call ptr @fn_node(i32 7) store ptr %t0, ptr %t1 br label %wcond0 @@ -5017,7 +5028,7 @@ wcond0: br i1 %t2, label %wbody1, label %wend2 wbody1: call void @fn_skipnl() - %t3 = call i32 @fn_is_op(ptr @.str52) + %t3 = call i32 @fn_is_op(ptr @.str53) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then3, label %ifend5 then3: @@ -5064,7 +5075,7 @@ put7: %t35 = icmp eq i32 %t34, 4 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t37 - %t38 = call i32 @fn_is_op(ptr @.str53) + %t38 = call i32 @fn_is_op(ptr @.str54) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then8, label %ifend10 then8: @@ -5077,12 +5088,12 @@ ifend10: %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then11, label %ifend13 then11: - call void @fn_perr(ptr @.str54) + call void @fn_perr(ptr @.str55) br label %ifend13 ifend13: br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str55) + call void @fn_eat_op(ptr @.str56) %t44 = load ptr, ptr %t1 store ptr %t44, ptr %retval br label %ret @@ -5143,7 +5154,7 @@ 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_streq(ptr %t16, ptr @.str56) + %t17 = call i32 @fn_streq(ptr %t16, ptr @.str57) %t18 = icmp ne i32 %t17, 0 %t19 = zext i1 %t18 to i32 store i32 %t19, ptr %t13 @@ -5152,7 +5163,7 @@ 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_streq(ptr %t22, ptr @.str57) + %t23 = call i32 @fn_streq(ptr %t22, ptr @.str58) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t13 @@ -5166,7 +5177,7 @@ then5: %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_streq(ptr %t31, ptr @.str58) + %t32 = call i32 @fn_streq(ptr %t31, ptr @.str59) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then8, label %ifend10 then8: @@ -5197,7 +5208,7 @@ ifend10: %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 @.str59) + %t54 = call i32 @fn_is_op(ptr @.str60) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then11, label %ifend13 then11: @@ -5210,7 +5221,7 @@ then11: store ptr %t60, ptr %t59 br label %ifend13 ifend13: - %t61 = call i32 @fn_is_op(ptr @.str60) + %t61 = call i32 @fn_is_op(ptr @.str61) %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then14, label %ifend16 then14: @@ -5230,7 +5241,7 @@ 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_streq(ptr %t71, ptr @.str61) + %t72 = call i32 @fn_streq(ptr %t71, ptr @.str62) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then17, label %ifend19 then17: @@ -5254,7 +5265,7 @@ then17: store i32 %t90, ptr %t78 br i1 %t89, label %sc20, label %scend21 sc20: - %t91 = call i32 @fn_is_op(ptr @.str62) + %t91 = call i32 @fn_is_op(ptr @.str63) %t92 = icmp eq i32 %t91, 0 %t93 = zext i1 %t92 to i32 %t94 = icmp ne i32 %t93, 0 @@ -5279,7 +5290,7 @@ 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_streq(ptr %t104, ptr @.str63) + %t105 = call i32 @fn_streq(ptr %t104, ptr @.str64) %t106 = icmp ne i32 %t105, 0 br i1 %t106, label %then25, label %ifend27 then25: @@ -5299,7 +5310,7 @@ then25: %t117 = load i32, ptr @g_pi store i32 %t117, ptr %t118 call void @fn_skipnl() - %t119 = call i32 @fn_is_id(ptr @.str64) + %t119 = call i32 @fn_is_id(ptr @.str65) %t120 = icmp ne i32 %t119, 0 br i1 %t120, label %then28, label %else29 then28: @@ -5307,7 +5318,7 @@ then28: %t122 = add i32 %t121, 1 store i32 %t122, ptr @g_pi call void @fn_skipnl() - %t123 = call i32 @fn_is_id(ptr @.str65) + %t123 = call i32 @fn_is_id(ptr @.str66) %t124 = icmp ne i32 %t123, 0 br i1 %t124, label %then31, label %else32 then31: @@ -5336,7 +5347,7 @@ 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_streq(ptr %t135, ptr @.str66) + %t136 = call i32 @fn_streq(ptr %t135, ptr @.str67) %t137 = icmp ne i32 %t136, 0 br i1 %t137, label %then34, label %ifend36 then34: @@ -5360,14 +5371,14 @@ 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_streq(ptr %t151, ptr @.str67) + %t152 = call i32 @fn_streq(ptr %t151, ptr @.str68) %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 @.str68) + %t156 = call i32 @fn_is_op(ptr @.str69) %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then40, label %ifend42 then40: @@ -5387,7 +5398,7 @@ ifend42: %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 @.str69) + call void @fn_eat_op(ptr @.str70) %t169 = load ptr, ptr %t160 %t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 5 %t171 = call ptr @fn_expr() @@ -5403,7 +5414,7 @@ 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_streq(ptr %t178, ptr @.str70) + %t179 = call i32 @fn_streq(ptr %t178, ptr @.str71) %t180 = icmp ne i32 %t179, 0 br i1 %t180, label %then43, label %ifend45 then43: @@ -5414,7 +5425,7 @@ 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_streq(ptr %t184, ptr @.str71) + %t185 = call i32 @fn_streq(ptr %t184, ptr @.str72) %t186 = icmp ne i32 %t185, 0 br i1 %t186, label %then46, label %ifend48 then46: @@ -5428,7 +5439,7 @@ then46: %t193 = call ptr @fn_expr() store ptr %t193, ptr %t192 call void @fn_skipnl() - call void @fn_eat_op(ptr @.str72) + call void @fn_eat_op(ptr @.str73) store i32 0, ptr %t194 br label %wcond49 wcond49: @@ -5436,7 +5447,7 @@ wcond49: br i1 %t195, label %wbody50, label %wend51 wbody50: call void @fn_skipnl() - %t196 = call i32 @fn_is_op(ptr @.str73) + %t196 = call i32 @fn_is_op(ptr @.str74) %t197 = icmp ne i32 %t196, 0 br i1 %t197, label %then52, label %ifend54 then52: @@ -5450,7 +5461,7 @@ ifend54: %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 @.str74) + %t205 = call i32 @fn_is_op(ptr @.str75) %t206 = icmp ne i32 %t205, 0 br i1 %t206, label %then55, label %else56 then55: @@ -5515,7 +5526,7 @@ put59: store i32 %t246, ptr %t194 br label %wcond49 wend51: - call void @fn_eat_op(ptr @.str75) + call void @fn_eat_op(ptr @.str76) %t247 = load ptr, ptr %t190 store ptr %t247, ptr %retval br label %ret @@ -5523,7 +5534,7 @@ ifend48: %t248 = load ptr, ptr %t6 %t249 = getelementptr inbounds %Cmp_Tok, ptr %t248, i32 0, i32 1 %t250 = load ptr, ptr %t249 - %t251 = call i32 @fn_streq(ptr %t250, ptr @.str76) + %t251 = call i32 @fn_streq(ptr %t250, ptr @.str77) %t252 = icmp ne i32 %t251, 0 br i1 %t252, label %then60, label %ifend62 then60: @@ -5543,7 +5554,7 @@ ifend62: %t261 = load ptr, ptr %t6 %t262 = getelementptr inbounds %Cmp_Tok, ptr %t261, i32 0, i32 1 %t263 = load ptr, ptr %t262 - %t264 = call i32 @fn_streq(ptr %t263, ptr @.str77) + %t264 = call i32 @fn_streq(ptr %t263, ptr @.str78) %t265 = icmp ne i32 %t264, 0 br i1 %t265, label %then63, label %ifend65 then63: @@ -5563,7 +5574,7 @@ ifend65: %t275 = load ptr, ptr %t6 %t276 = getelementptr inbounds %Cmp_Tok, ptr %t275, i32 0, i32 1 %t277 = load ptr, ptr %t276 - %t278 = call i32 @fn_streq(ptr %t277, ptr @.str78) + %t278 = call i32 @fn_streq(ptr %t277, ptr @.str79) %t279 = icmp ne i32 %t278, 0 %t280 = zext i1 %t279 to i32 store i32 %t280, ptr %t274 @@ -5572,7 +5583,7 @@ sc66: %t281 = load ptr, ptr %t6 %t282 = getelementptr inbounds %Cmp_Tok, ptr %t281, i32 0, i32 1 %t283 = load ptr, ptr %t282 - %t284 = call i32 @fn_streq(ptr %t283, ptr @.str79) + %t284 = call i32 @fn_streq(ptr %t283, ptr @.str80) %t285 = icmp ne i32 %t284, 0 %t286 = zext i1 %t285 to i32 store i32 %t286, ptr %t274 @@ -5586,7 +5597,7 @@ then68: %t290 = load ptr, ptr %t6 %t291 = getelementptr inbounds %Cmp_Tok, ptr %t290, i32 0, i32 1 %t292 = load ptr, ptr %t291 - %t293 = call i32 @fn_streq(ptr %t292, ptr @.str80) + %t293 = call i32 @fn_streq(ptr %t292, ptr @.str81) %t294 = icmp ne i32 %t293, 0 br i1 %t294, label %then71, label %ifend73 then71: @@ -5606,7 +5617,7 @@ ifend73: %t303 = getelementptr inbounds %Cmp_Node, ptr %t302, i32 0, i32 1 %t304 = call ptr @fn_eat_id() store ptr %t304, ptr %t303 - %t305 = call i32 @fn_is_id(ptr @.str81) + %t305 = call i32 @fn_is_id(ptr @.str82) %t306 = icmp ne i32 %t305, 0 br i1 %t306, label %then74, label %ifend76 then74: @@ -5626,7 +5637,7 @@ ifend70: %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_streq(ptr %t315, ptr @.str82) + %t316 = call i32 @fn_streq(ptr %t315, ptr @.str83) %t317 = icmp ne i32 %t316, 0 br i1 %t317, label %then77, label %ifend79 then77: @@ -5640,7 +5651,7 @@ ifend79: %t321 = load ptr, ptr %t6 %t322 = getelementptr inbounds %Cmp_Tok, ptr %t321, i32 0, i32 1 %t323 = load ptr, ptr %t322 - %t324 = call i32 @fn_streq(ptr %t323, ptr @.str83) + %t324 = call i32 @fn_streq(ptr %t323, ptr @.str84) %t325 = icmp ne i32 %t324, 0 br i1 %t325, label %then80, label %ifend82 then80: @@ -5654,7 +5665,7 @@ ifend82: %t329 = load ptr, ptr %t6 %t330 = getelementptr inbounds %Cmp_Tok, ptr %t329, i32 0, i32 1 %t331 = load ptr, ptr %t330 - %t332 = call i32 @fn_streq(ptr %t331, ptr @.str84) + %t332 = call i32 @fn_streq(ptr %t331, ptr @.str85) %t333 = icmp ne i32 %t332, 0 br i1 %t333, label %then83, label %ifend85 then83: @@ -5668,14 +5679,14 @@ then83: %t340 = call ptr @fn_expr() store ptr %t340, ptr %t339 call void @fn_skipnl() - call void @fn_eat_op(ptr @.str85) + call void @fn_eat_op(ptr @.str86) br label %wcond86 wcond86: %t341 = icmp ne i32 1, 0 br i1 %t341, label %wbody87, label %wend88 wbody87: call void @fn_skipnl() - %t342 = call i32 @fn_is_op(ptr @.str86) + %t342 = call i32 @fn_is_op(ptr @.str87) %t343 = icmp ne i32 %t342, 0 br i1 %t343, label %then89, label %ifend91 then89: @@ -5718,7 +5729,7 @@ put96: store ptr %t365, ptr %t367 %t368 = add i32 %t353, 1 store i32 %t368, ptr %t350 - %t369 = call i32 @fn_is_op(ptr @.str87) + %t369 = call i32 @fn_is_op(ptr @.str88) %t370 = icmp ne i32 %t369, 0 br i1 %t370, label %then97, label %ifend99 then97: @@ -5730,9 +5741,9 @@ then97: ifend99: br label %wend94 wend94: - call void @fn_eat_op(ptr @.str88) + call void @fn_eat_op(ptr @.str89) call void @fn_skipnl() - %t373 = call i32 @fn_is_op(ptr @.str89) + %t373 = call i32 @fn_is_op(ptr @.str90) %t374 = icmp ne i32 %t373, 0 br i1 %t374, label %then100, label %else101 then100: @@ -5812,7 +5823,7 @@ put106: store i32 %t426, ptr %t408 br label %wcond86 wend88: - call void @fn_eat_op(ptr @.str90) + call void @fn_eat_op(ptr @.str91) %t427 = load ptr, ptr %t337 store ptr %t427, ptr %retval br label %ret @@ -5821,13 +5832,13 @@ ifend85: ifend2: %t428 = call ptr @fn_expr() store ptr %t428, ptr %t429 - %t434 = call i32 @fn_is_op(ptr @.str91) + %t434 = call i32 @fn_is_op(ptr @.str92) %t435 = icmp ne i32 %t434, 0 %t436 = zext i1 %t435 to i32 store i32 %t436, ptr %t433 br i1 %t435, label %scend108, label %sc107 sc107: - %t437 = call i32 @fn_is_op(ptr @.str92) + %t437 = call i32 @fn_is_op(ptr @.str93) %t438 = icmp ne i32 %t437, 0 %t439 = zext i1 %t438 to i32 store i32 %t439, ptr %t433 @@ -5839,7 +5850,7 @@ scend108: store i32 %t442, ptr %t432 br i1 %t441, label %scend110, label %sc109 sc109: - %t443 = call i32 @fn_is_op(ptr @.str93) + %t443 = call i32 @fn_is_op(ptr @.str94) %t444 = icmp ne i32 %t443, 0 %t445 = zext i1 %t444 to i32 store i32 %t445, ptr %t432 @@ -5851,7 +5862,7 @@ scend110: store i32 %t448, ptr %t431 br i1 %t447, label %scend112, label %sc111 sc111: - %t449 = call i32 @fn_is_op(ptr @.str94) + %t449 = call i32 @fn_is_op(ptr @.str95) %t450 = icmp ne i32 %t449, 0 %t451 = zext i1 %t450 to i32 store i32 %t451, ptr %t431 @@ -5863,7 +5874,7 @@ scend112: store i32 %t454, ptr %t430 br i1 %t453, label %scend114, label %sc113 sc113: - %t455 = call i32 @fn_is_op(ptr @.str95) + %t455 = call i32 @fn_is_op(ptr @.str96) %t456 = icmp ne i32 %t455, 0 %t457 = zext i1 %t456 to i32 store i32 %t457, ptr %t430 @@ -5939,12 +5950,12 @@ entry: %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 @.str96) + call void @fn_eat_op(ptr @.str97) %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 @.str97) + %t10 = call i32 @fn_is_op(ptr @.str98) %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then0, label %ifend2 then0: @@ -5978,12 +5989,12 @@ entry: %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 @.str98) + call void @fn_eat_op(ptr @.str99) %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 @.str99) + call void @fn_eat_op(ptr @.str100) %t10 = load ptr, ptr %t3 %t11 = getelementptr inbounds %Cmp_Node, ptr %t10, i32 0, i32 4 %t12 = call ptr @fn_expr() @@ -6010,10 +6021,10 @@ entry: %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 @.str100) + call void @fn_eat_op(ptr @.str101) br label %wcond0 wcond0: - %t7 = call i32 @fn_is_op(ptr @.str101) + %t7 = call i32 @fn_is_op(ptr @.str102) %t8 = icmp eq i32 %t7, 0 %t9 = zext i1 %t8 to i32 %t10 = icmp ne i32 %t9, 0 @@ -6025,7 +6036,7 @@ wbody1: %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 @.str102) + call void @fn_eat_op(ptr @.str103) %t16 = load ptr, ptr %t12 %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 3 %t18 = call ptr @fn_ptype() @@ -6060,7 +6071,7 @@ put4: store ptr %t37, ptr %t39 %t40 = add i32 %t25, 1 store i32 %t40, ptr %t22 - %t41 = call i32 @fn_is_op(ptr @.str103) + %t41 = call i32 @fn_is_op(ptr @.str104) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then5, label %ifend7 then5: @@ -6071,11 +6082,11 @@ then5: ifend7: br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str104) + call void @fn_eat_op(ptr @.str105) %t45 = load ptr, ptr %t3 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 3 - store ptr @.str105, ptr %t46 - %t47 = call i32 @fn_is_op(ptr @.str106) + store ptr @.str106, ptr %t46 + %t47 = call i32 @fn_is_op(ptr @.str107) %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then8, label %ifend10 then8: @@ -6168,7 +6179,7 @@ wend2: %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then6, label %ifend8 then6: - store ptr @.str107, ptr %retval + store ptr @.str108, ptr %retval br label %ret ifend8: %t27 = load ptr, ptr %t0 @@ -6271,8 +6282,8 @@ entry: %t75 = alloca ptr %t85 = alloca ptr %t158 = alloca ptr - %t230 = alloca ptr - %t345 = alloca ptr + %t216 = alloca ptr + %t331 = alloca ptr store i32 0, ptr %t0 store ptr null, ptr %t1 store ptr null, ptr %t2 @@ -6283,7 +6294,7 @@ entry: store ptr null, ptr %t7 br label %wcond0 wcond0: - %t8 = call i32 @fn_is_op(ptr @.str108) + %t8 = call i32 @fn_is_op(ptr @.str109) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %wbody1, label %wend2 wbody1: @@ -6293,7 +6304,7 @@ wbody1: %t12 = call ptr @fn_eat_id() store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t13 - %t15 = call i32 @fn_streq(ptr %t14, ptr @.str109) + %t15 = call i32 @fn_streq(ptr %t14, ptr @.str110) %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then3, label %else4 then3: @@ -6301,7 +6312,7 @@ then3: br label %ifend5 else4: %t17 = load ptr, ptr %t13 - %t18 = call i32 @fn_streq(ptr %t17, ptr @.str110) + %t18 = call i32 @fn_streq(ptr %t17, ptr @.str111) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then6, label %else7 then6: @@ -6310,77 +6321,77 @@ then6: br label %ifend8 else7: %t21 = load ptr, ptr %t13 - %t22 = call i32 @fn_streq(ptr %t21, ptr @.str111) + %t22 = call i32 @fn_streq(ptr %t21, ptr @.str112) %t23 = icmp ne i32 %t22, 0 br i1 %t23, label %then9, label %else10 then9: - call void @fn_eat_op(ptr @.str112) + call void @fn_eat_op(ptr @.str113) %t24 = call ptr @fn_eat_id() store ptr %t24, ptr %t2 - call void @fn_eat_op(ptr @.str113) + call void @fn_eat_op(ptr @.str114) br label %ifend11 else10: %t25 = load ptr, ptr %t13 - %t26 = call i32 @fn_streq(ptr %t25, ptr @.str114) + %t26 = call i32 @fn_streq(ptr %t25, ptr @.str115) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then12, label %else13 then12: - call void @fn_eat_op(ptr @.str115) + call void @fn_eat_op(ptr @.str116) %t28 = call ptr @fn_eat_id() store ptr %t28, ptr %t3 - call void @fn_eat_op(ptr @.str116) + call void @fn_eat_op(ptr @.str117) br label %ifend14 else13: %t29 = load ptr, ptr %t13 - %t30 = call i32 @fn_streq(ptr %t29, ptr @.str117) + %t30 = call i32 @fn_streq(ptr %t29, ptr @.str118) %t31 = icmp ne i32 %t30, 0 br i1 %t31, label %then15, label %else16 then15: - call void @fn_eat_op(ptr @.str118) + call void @fn_eat_op(ptr @.str119) %t32 = call ptr @fn_eat_id() store ptr %t32, ptr %t4 - call void @fn_eat_op(ptr @.str119) + call void @fn_eat_op(ptr @.str120) br label %ifend17 else16: %t33 = load ptr, ptr %t13 - %t34 = call i32 @fn_streq(ptr %t33, ptr @.str120) + %t34 = call i32 @fn_streq(ptr %t33, ptr @.str121) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then18, label %else19 then18: - call void @fn_eat_op(ptr @.str121) + call void @fn_eat_op(ptr @.str122) %t36 = call ptr @fn_eat_id() store ptr %t36, ptr %t5 - call void @fn_eat_op(ptr @.str122) + call void @fn_eat_op(ptr @.str123) br label %ifend20 else19: %t37 = load ptr, ptr %t13 - %t38 = call i32 @fn_streq(ptr %t37, ptr @.str123) + %t38 = call i32 @fn_streq(ptr %t37, ptr @.str124) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then21, label %else22 then21: - call void @fn_eat_op(ptr @.str124) + call void @fn_eat_op(ptr @.str125) %t40 = call ptr @fn_eat_id() store ptr %t40, ptr %t6 - call void @fn_eat_op(ptr @.str125) + call void @fn_eat_op(ptr @.str126) br label %ifend23 else22: %t41 = load ptr, ptr %t13 - %t42 = call i32 @fn_streq(ptr %t41, ptr @.str126) + %t42 = call i32 @fn_streq(ptr %t41, ptr @.str127) %t43 = icmp ne i32 %t42, 0 br i1 %t43, label %then24, label %else25 then24: - store ptr @.str127, ptr %t7 + store ptr @.str128, ptr %t7 br label %ifend26 else25: %t44 = load ptr, ptr %t13 - %t45 = call i32 @fn_streq(ptr %t44, ptr @.str128) + %t45 = call i32 @fn_streq(ptr %t44, ptr @.str129) %t46 = icmp ne i32 %t45, 0 br i1 %t46, label %then27, label %else28 then27: - store ptr @.str129, ptr %t7 + store ptr @.str130, ptr %t7 br label %ifend29 else28: - %t47 = call i32 @fn_is_op(ptr @.str130) + %t47 = call i32 @fn_is_op(ptr @.str131) %t48 = icmp ne i32 %t47, 0 br i1 %t48, label %then30, label %ifend32 then30: @@ -6390,7 +6401,7 @@ wcond33: %t50 = icmp ne i32 1, 0 br i1 %t50, label %wbody34, label %wend35 wbody34: - %t51 = call i32 @fn_is_op(ptr @.str131) + %t51 = call i32 @fn_is_op(ptr @.str132) %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then36, label %ifend38 then36: @@ -6399,7 +6410,7 @@ then36: store i32 %t54, ptr %t49 br label %ifend38 ifend38: - %t55 = call i32 @fn_is_op(ptr @.str132) + %t55 = call i32 @fn_is_op(ptr @.str133) %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then39, label %ifend41 then39: @@ -6444,7 +6455,7 @@ ifend5: call void @fn_skipnl() br label %wcond0 wend2: - %t65 = call i32 @fn_is_id(ptr @.str133) + %t65 = call i32 @fn_is_id(ptr @.str134) %t66 = icmp ne i32 %t65, 0 br i1 %t66, label %then45, label %ifend47 then45: @@ -6466,7 +6477,7 @@ then45: %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then48, label %ifend50 then48: - call void @fn_perr(ptr @.str134) + call void @fn_perr(ptr @.str135) br label %ifend50 ifend50: %t82 = load ptr, ptr %t75 @@ -6480,7 +6491,7 @@ ifend50: call void @fn_do_import(ptr %t88) br label %ret ifend47: - %t89 = call i32 @fn_is_id(ptr @.str135) + %t89 = call i32 @fn_is_id(ptr @.str136) %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then51, label %ifend53 then51: @@ -6514,7 +6525,7 @@ put55: store i32 %t110, ptr %t92 br label %ret ifend53: - %t111 = call i32 @fn_is_id(ptr @.str136) + %t111 = call i32 @fn_is_id(ptr @.str137) %t112 = icmp ne i32 %t111, 0 br i1 %t112, label %then56, label %ifend58 then56: @@ -6548,7 +6559,7 @@ put60: store i32 %t132, ptr %t114 br label %ret ifend58: - %t133 = call i32 @fn_is_id(ptr @.str137) + %t133 = call i32 @fn_is_id(ptr @.str138) %t134 = icmp ne i32 %t133, 0 br i1 %t134, label %then61, label %ifend63 then61: @@ -6582,399 +6593,385 @@ put65: store i32 %t154, ptr %t136 br label %ret ifend63: - %t155 = call i32 @fn_is_id(ptr @.str138) + %t155 = call i32 @fn_is_id(ptr @.str139) %t156 = icmp ne i32 %t155, 0 br i1 %t156, label %then66, label %ifend68 then66: %t157 = call ptr @fn_parse_system() store ptr %t157, ptr %t158 %t159 = load ptr, ptr %t2 - %t160 = icmp eq ptr %t159, null + %t160 = icmp ne ptr %t159, null %t161 = zext i1 %t160 to i32 - %t162 = icmp eq i32 %t161, 0 - %t163 = zext i1 %t162 to i32 - %t164 = icmp ne i32 %t163, 0 - br i1 %t164, label %then69, label %ifend71 + %t162 = icmp ne i32 %t161, 0 + br i1 %t162, label %then69, label %ifend71 then69: - %t165 = load ptr, ptr %t2 - %t166 = load ptr, ptr %t158 - %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 4 - %t168 = load ptr, ptr %t167 - call void @fn_register_onspawn(ptr %t165, ptr %t168) + %t163 = load ptr, ptr %t2 + %t164 = load ptr, ptr %t158 + %t165 = getelementptr inbounds %Cmp_Node, ptr %t164, i32 0, i32 4 + %t166 = load ptr, ptr %t165 + call void @fn_register_onspawn(ptr %t163, ptr %t166) br label %ret ifend71: - %t169 = load ptr, ptr %t3 - %t170 = icmp eq ptr %t169, null - %t171 = zext i1 %t170 to i32 - %t172 = icmp eq i32 %t171, 0 - %t173 = zext i1 %t172 to i32 - %t174 = icmp ne i32 %t173, 0 - br i1 %t174, label %then72, label %ifend74 + %t167 = load ptr, ptr %t3 + %t168 = icmp ne ptr %t167, null + %t169 = zext i1 %t168 to i32 + %t170 = icmp ne i32 %t169, 0 + br i1 %t170, label %then72, label %ifend74 then72: - %t175 = load ptr, ptr %t3 - %t176 = load ptr, ptr %t158 - %t177 = getelementptr inbounds %Cmp_Node, ptr %t176, i32 0, i32 4 - %t178 = load ptr, ptr %t177 - call void @fn_register_ondespawn(ptr %t175, ptr %t178) + %t171 = load ptr, ptr %t3 + %t172 = load ptr, ptr %t158 + %t173 = getelementptr inbounds %Cmp_Node, ptr %t172, i32 0, i32 4 + %t174 = load ptr, ptr %t173 + call void @fn_register_ondespawn(ptr %t171, ptr %t174) br label %ret ifend74: - %t179 = load ptr, ptr %t4 - %t180 = icmp eq ptr %t179, null - %t181 = zext i1 %t180 to i32 - %t182 = icmp eq i32 %t181, 0 - %t183 = zext i1 %t182 to i32 - %t184 = icmp ne i32 %t183, 0 - br i1 %t184, label %then75, label %ifend77 + %t175 = load ptr, ptr %t4 + %t176 = icmp ne ptr %t175, null + %t177 = zext i1 %t176 to i32 + %t178 = icmp ne i32 %t177, 0 + br i1 %t178, label %then75, label %ifend77 then75: - %t185 = load ptr, ptr %t4 - %t186 = load ptr, ptr %t158 - %t187 = getelementptr inbounds %Cmp_Node, ptr %t186, i32 0, i32 4 - %t188 = load ptr, ptr %t187 - call void @fn_register_onattach(ptr %t185, ptr %t188) + %t179 = load ptr, ptr %t4 + %t180 = load ptr, ptr %t158 + %t181 = getelementptr inbounds %Cmp_Node, ptr %t180, i32 0, i32 4 + %t182 = load ptr, ptr %t181 + call void @fn_register_onattach(ptr %t179, ptr %t182) br label %ret ifend77: - %t189 = load ptr, ptr %t5 - %t190 = icmp eq ptr %t189, null - %t191 = zext i1 %t190 to i32 - %t192 = icmp eq i32 %t191, 0 + %t183 = load ptr, ptr %t5 + %t184 = icmp ne ptr %t183, null + %t185 = zext i1 %t184 to i32 + %t186 = icmp ne i32 %t185, 0 + br i1 %t186, label %then78, label %ifend80 +then78: + %t187 = load ptr, ptr %t5 + %t188 = load ptr, ptr %t158 + %t189 = getelementptr inbounds %Cmp_Node, ptr %t188, i32 0, i32 4 + %t190 = load ptr, ptr %t189 + call void @fn_register_onenable(ptr %t187, ptr %t190) + br label %ret +ifend80: + %t191 = load ptr, ptr %t6 + %t192 = icmp ne ptr %t191, null %t193 = zext i1 %t192 to i32 %t194 = icmp ne i32 %t193, 0 - br i1 %t194, label %then78, label %ifend80 -then78: - %t195 = load ptr, ptr %t5 + br i1 %t194, label %then81, label %ifend83 +then81: + %t195 = load ptr, ptr %t6 %t196 = load ptr, ptr %t158 %t197 = getelementptr inbounds %Cmp_Node, ptr %t196, i32 0, i32 4 %t198 = load ptr, ptr %t197 - call void @fn_register_onenable(ptr %t195, ptr %t198) - br label %ret -ifend80: - %t199 = load ptr, ptr %t6 - %t200 = icmp eq ptr %t199, null - %t201 = zext i1 %t200 to i32 - %t202 = icmp eq i32 %t201, 0 - %t203 = zext i1 %t202 to i32 - %t204 = icmp ne i32 %t203, 0 - br i1 %t204, label %then81, label %ifend83 -then81: - %t205 = load ptr, ptr %t6 - %t206 = load ptr, ptr %t158 - %t207 = getelementptr inbounds %Cmp_Node, ptr %t206, i32 0, i32 4 - %t208 = load ptr, ptr %t207 - call void @fn_register_ondisable(ptr %t205, ptr %t208) + call void @fn_register_ondisable(ptr %t195, ptr %t198) br label %ret ifend83: - %t209 = load ptr, ptr %t7 - %t210 = icmp eq ptr %t209, null - %t211 = zext i1 %t210 to i32 - %t212 = icmp eq i32 %t211, 0 - %t213 = zext i1 %t212 to i32 - %t214 = icmp ne i32 %t213, 0 - br i1 %t214, label %then84, label %ifend86 + %t199 = load ptr, ptr %t7 + %t200 = icmp ne ptr %t199, null + %t201 = zext i1 %t200 to i32 + %t202 = icmp ne i32 %t201, 0 + br i1 %t202, label %then84, label %ifend86 then84: - %t215 = load ptr, ptr %t158 - %t216 = getelementptr inbounds %Cmp_Node, ptr %t215, i32 0, i32 3 - %t217 = load ptr, ptr %t7 - store ptr %t217, ptr %t216 + %t203 = load ptr, ptr %t158 + %t204 = getelementptr inbounds %Cmp_Node, ptr %t203, i32 0, i32 3 + %t205 = load ptr, ptr %t7 + store ptr %t205, ptr %t204 br label %ifend86 ifend86: - %t218 = load ptr, ptr %t1 - %t219 = icmp eq ptr %t218, null - %t220 = zext i1 %t219 to i32 - %t221 = icmp eq i32 %t220, 0 - %t222 = zext i1 %t221 to i32 - %t223 = icmp ne i32 %t222, 0 - br i1 %t223, label %then87, label %ifend89 + %t206 = load ptr, ptr %t1 + %t207 = icmp ne ptr %t206, null + %t208 = zext i1 %t207 to i32 + %t209 = icmp ne i32 %t208, 0 + br i1 %t209, label %then87, label %ifend89 then87: - %t224 = load ptr, ptr %t1 - %t225 = getelementptr inbounds %Cmp_Node, ptr %t224, i32 0, i32 4 - %t226 = load ptr, ptr %t158 - %t227 = getelementptr inbounds %Cmp_Node, ptr %t226, i32 0, i32 4 - %t228 = load ptr, ptr %t227 - store ptr %t228, ptr %t225 - %t229 = call ptr @fn_node(i32 7) - store ptr %t229, ptr %t230 - %t231 = load ptr, ptr %t230 - %t232 = getelementptr inbounds %Cmp_Node, ptr %t231, i32 0, i32 7 - %t233 = load ptr, ptr %t232 - %t234 = getelementptr inbounds %LSlice, ptr %t233, i32 0, i32 1 - %t235 = getelementptr inbounds %LSlice, ptr %t233, i32 0, i32 2 - %t236 = getelementptr inbounds %LSlice, ptr %t233, i32 0, i32 0 - %t237 = load i32, ptr %t234 - %t238 = load i32, ptr %t235 - %t239 = icmp sge i32 %t237, %t238 - br i1 %t239, label %grow90, label %put91 + %t210 = load ptr, ptr %t1 + %t211 = getelementptr inbounds %Cmp_Node, ptr %t210, i32 0, i32 4 + %t212 = load ptr, ptr %t158 + %t213 = getelementptr inbounds %Cmp_Node, ptr %t212, i32 0, i32 4 + %t214 = load ptr, ptr %t213 + store ptr %t214, ptr %t211 + %t215 = call ptr @fn_node(i32 7) + store ptr %t215, ptr %t216 + %t217 = load ptr, ptr %t216 + %t218 = getelementptr inbounds %Cmp_Node, ptr %t217, i32 0, i32 7 + %t219 = load ptr, ptr %t218 + %t220 = getelementptr inbounds %LSlice, ptr %t219, i32 0, i32 1 + %t221 = getelementptr inbounds %LSlice, ptr %t219, i32 0, i32 2 + %t222 = getelementptr inbounds %LSlice, ptr %t219, i32 0, i32 0 + %t223 = load i32, ptr %t220 + %t224 = load i32, ptr %t221 + %t225 = icmp sge i32 %t223, %t224 + br i1 %t225, label %grow90, label %put91 grow90: - %t240 = mul i32 %t238, 2 - %t241 = icmp eq i32 %t238, 0 - %t242 = select i1 %t241, i32 8, i32 %t240 - %t243 = getelementptr ptr, ptr null, i32 1 - %t244 = ptrtoint ptr %t243 to i64 - %t245 = zext i32 %t242 to i64 - %t246 = mul i64 %t245, %t244 - %t247 = load ptr, ptr %t236 - %t248 = call ptr @realloc(ptr %t247, i64 %t246) - store ptr %t248, ptr %t236 - store i32 %t242, ptr %t235 + %t226 = mul i32 %t224, 2 + %t227 = icmp eq i32 %t224, 0 + %t228 = select i1 %t227, i32 8, i32 %t226 + %t229 = getelementptr ptr, ptr null, i32 1 + %t230 = ptrtoint ptr %t229 to i64 + %t231 = zext i32 %t228 to i64 + %t232 = mul i64 %t231, %t230 + %t233 = load ptr, ptr %t222 + %t234 = call ptr @realloc(ptr %t233, i64 %t232) + store ptr %t234, ptr %t222 + store i32 %t228, ptr %t221 br label %put91 put91: - %t249 = load ptr, ptr %t1 - %t250 = load ptr, ptr %t236 - %t251 = getelementptr inbounds ptr, ptr %t250, i32 %t237 - store ptr %t249, ptr %t251 - %t252 = add i32 %t237, 1 - store i32 %t252, ptr %t234 - %t253 = load ptr, ptr %t158 - %t254 = getelementptr inbounds %Cmp_Node, ptr %t253, i32 0, i32 4 - %t255 = load ptr, ptr %t230 - store ptr %t255, ptr %t254 + %t235 = load ptr, ptr %t1 + %t236 = load ptr, ptr %t222 + %t237 = getelementptr inbounds ptr, ptr %t236, i32 %t223 + store ptr %t235, ptr %t237 + %t238 = add i32 %t223, 1 + store i32 %t238, ptr %t220 + %t239 = load ptr, ptr %t158 + %t240 = getelementptr inbounds %Cmp_Node, ptr %t239, i32 0, i32 4 + %t241 = load ptr, ptr %t216 + store ptr %t241, ptr %t240 br label %ifend89 ifend89: - %t256 = load ptr, ptr @g_prog - %t257 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 1 - %t258 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 2 - %t259 = getelementptr inbounds %LSlice, ptr %t256, i32 0, i32 0 - %t260 = load i32, ptr %t257 - %t261 = load i32, ptr %t258 - %t262 = icmp sge i32 %t260, %t261 - br i1 %t262, label %grow92, label %put93 + %t242 = load ptr, ptr @g_prog + %t243 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 1 + %t244 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 2 + %t245 = getelementptr inbounds %LSlice, ptr %t242, i32 0, i32 0 + %t246 = load i32, ptr %t243 + %t247 = load i32, ptr %t244 + %t248 = icmp sge i32 %t246, %t247 + br i1 %t248, label %grow92, label %put93 grow92: - %t263 = mul i32 %t261, 2 - %t264 = icmp eq i32 %t261, 0 - %t265 = select i1 %t264, i32 8, i32 %t263 - %t266 = getelementptr ptr, ptr null, i32 1 - %t267 = ptrtoint ptr %t266 to i64 - %t268 = zext i32 %t265 to i64 - %t269 = mul i64 %t268, %t267 - %t270 = load ptr, ptr %t259 - %t271 = call ptr @realloc(ptr %t270, i64 %t269) - store ptr %t271, ptr %t259 - store i32 %t265, ptr %t258 + %t249 = mul i32 %t247, 2 + %t250 = icmp eq i32 %t247, 0 + %t251 = select i1 %t250, i32 8, i32 %t249 + %t252 = getelementptr ptr, ptr null, i32 1 + %t253 = ptrtoint ptr %t252 to i64 + %t254 = zext i32 %t251 to i64 + %t255 = mul i64 %t254, %t253 + %t256 = load ptr, ptr %t245 + %t257 = call ptr @realloc(ptr %t256, i64 %t255) + store ptr %t257, ptr %t245 + store i32 %t251, ptr %t244 br label %put93 put93: - %t272 = load ptr, ptr %t158 - %t273 = load ptr, ptr %t259 - %t274 = getelementptr inbounds ptr, ptr %t273, i32 %t260 - store ptr %t272, ptr %t274 - %t275 = add i32 %t260, 1 - store i32 %t275, ptr %t257 + %t258 = load ptr, ptr %t158 + %t259 = load ptr, ptr %t245 + %t260 = getelementptr inbounds ptr, ptr %t259, i32 %t246 + store ptr %t258, ptr %t260 + %t261 = add i32 %t246, 1 + store i32 %t261, ptr %t243 br label %ret ifend68: - %t276 = call i32 @fn_is_id(ptr @.str139) - %t277 = icmp ne i32 %t276, 0 - br i1 %t277, label %then94, label %ifend96 + %t262 = call i32 @fn_is_id(ptr @.str140) + %t263 = icmp ne i32 %t262, 0 + br i1 %t263, label %then94, label %ifend96 then94: - %t278 = load ptr, ptr @g_prog - %t279 = getelementptr inbounds %LSlice, ptr %t278, i32 0, i32 1 - %t280 = getelementptr inbounds %LSlice, ptr %t278, i32 0, i32 2 - %t281 = getelementptr inbounds %LSlice, ptr %t278, i32 0, i32 0 - %t282 = load i32, ptr %t279 - %t283 = load i32, ptr %t280 - %t284 = icmp sge i32 %t282, %t283 - br i1 %t284, label %grow97, label %put98 + %t264 = load ptr, ptr @g_prog + %t265 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 1 + %t266 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 2 + %t267 = getelementptr inbounds %LSlice, ptr %t264, i32 0, i32 0 + %t268 = load i32, ptr %t265 + %t269 = load i32, ptr %t266 + %t270 = icmp sge i32 %t268, %t269 + br i1 %t270, label %grow97, label %put98 grow97: - %t285 = mul i32 %t283, 2 - %t286 = icmp eq i32 %t283, 0 - %t287 = select i1 %t286, i32 8, i32 %t285 - %t288 = getelementptr ptr, ptr null, i32 1 - %t289 = ptrtoint ptr %t288 to i64 - %t290 = zext i32 %t287 to i64 - %t291 = mul i64 %t290, %t289 - %t292 = load ptr, ptr %t281 - %t293 = call ptr @realloc(ptr %t292, i64 %t291) - store ptr %t293, ptr %t281 - store i32 %t287, ptr %t280 + %t271 = mul i32 %t269, 2 + %t272 = icmp eq i32 %t269, 0 + %t273 = select i1 %t272, i32 8, i32 %t271 + %t274 = getelementptr ptr, ptr null, i32 1 + %t275 = ptrtoint ptr %t274 to i64 + %t276 = zext i32 %t273 to i64 + %t277 = mul i64 %t276, %t275 + %t278 = load ptr, ptr %t267 + %t279 = call ptr @realloc(ptr %t278, i64 %t277) + store ptr %t279, ptr %t267 + store i32 %t273, ptr %t266 br label %put98 put98: - %t294 = call ptr @fn_parse_ui() - %t295 = load ptr, ptr %t281 - %t296 = getelementptr inbounds ptr, ptr %t295, i32 %t282 - store ptr %t294, ptr %t296 - %t297 = add i32 %t282, 1 - store i32 %t297, ptr %t279 + %t280 = call ptr @fn_parse_ui() + %t281 = load ptr, ptr %t267 + %t282 = getelementptr inbounds ptr, ptr %t281, i32 %t268 + store ptr %t280, ptr %t282 + %t283 = add i32 %t268, 1 + store i32 %t283, ptr %t265 br label %ret ifend96: - %t298 = call i32 @fn_is_id(ptr @.str140) - %t299 = icmp ne i32 %t298, 0 - br i1 %t299, label %then99, label %ifend101 + %t284 = call i32 @fn_is_id(ptr @.str141) + %t285 = icmp ne i32 %t284, 0 + br i1 %t285, label %then99, label %ifend101 then99: - %t300 = load ptr, ptr @g_prog - %t301 = getelementptr inbounds %LSlice, ptr %t300, i32 0, i32 1 - %t302 = getelementptr inbounds %LSlice, ptr %t300, i32 0, i32 2 - %t303 = getelementptr inbounds %LSlice, ptr %t300, i32 0, i32 0 - %t304 = load i32, ptr %t301 - %t305 = load i32, ptr %t302 - %t306 = icmp sge i32 %t304, %t305 - br i1 %t306, label %grow102, label %put103 + %t286 = load ptr, ptr @g_prog + %t287 = getelementptr inbounds %LSlice, ptr %t286, i32 0, i32 1 + %t288 = getelementptr inbounds %LSlice, ptr %t286, i32 0, i32 2 + %t289 = getelementptr inbounds %LSlice, ptr %t286, i32 0, i32 0 + %t290 = load i32, ptr %t287 + %t291 = load i32, ptr %t288 + %t292 = icmp sge i32 %t290, %t291 + br i1 %t292, label %grow102, label %put103 grow102: - %t307 = mul i32 %t305, 2 - %t308 = icmp eq i32 %t305, 0 - %t309 = select i1 %t308, i32 8, i32 %t307 - %t310 = getelementptr ptr, ptr null, i32 1 - %t311 = ptrtoint ptr %t310 to i64 - %t312 = zext i32 %t309 to i64 - %t313 = mul i64 %t312, %t311 - %t314 = load ptr, ptr %t303 - %t315 = call ptr @realloc(ptr %t314, i64 %t313) - store ptr %t315, ptr %t303 - store i32 %t309, ptr %t302 + %t293 = mul i32 %t291, 2 + %t294 = icmp eq i32 %t291, 0 + %t295 = select i1 %t294, i32 8, i32 %t293 + %t296 = getelementptr ptr, ptr null, i32 1 + %t297 = ptrtoint ptr %t296 to i64 + %t298 = zext i32 %t295 to i64 + %t299 = mul i64 %t298, %t297 + %t300 = load ptr, ptr %t289 + %t301 = call ptr @realloc(ptr %t300, i64 %t299) + store ptr %t301, ptr %t289 + store i32 %t295, ptr %t288 br label %put103 put103: - %t316 = call ptr @fn_parse_var() - %t317 = load ptr, ptr %t303 - %t318 = getelementptr inbounds ptr, ptr %t317, i32 %t304 - store ptr %t316, ptr %t318 - %t319 = add i32 %t304, 1 - store i32 %t319, ptr %t301 + %t302 = call ptr @fn_parse_var() + %t303 = load ptr, ptr %t289 + %t304 = getelementptr inbounds ptr, ptr %t303, i32 %t290 + store ptr %t302, ptr %t304 + %t305 = add i32 %t290, 1 + store i32 %t305, ptr %t287 br label %ret ifend101: - %t320 = call i32 @fn_is_id(ptr @.str141) - %t321 = icmp ne i32 %t320, 0 - br i1 %t321, label %then104, label %ifend106 + %t306 = call i32 @fn_is_id(ptr @.str142) + %t307 = icmp ne i32 %t306, 0 + br i1 %t307, label %then104, label %ifend106 then104: - %t322 = load ptr, ptr @g_prog - %t323 = getelementptr inbounds %LSlice, ptr %t322, i32 0, i32 1 - %t324 = getelementptr inbounds %LSlice, ptr %t322, i32 0, i32 2 - %t325 = getelementptr inbounds %LSlice, ptr %t322, i32 0, i32 0 - %t326 = load i32, ptr %t323 - %t327 = load i32, ptr %t324 - %t328 = icmp sge i32 %t326, %t327 - br i1 %t328, label %grow107, label %put108 + %t308 = load ptr, ptr @g_prog + %t309 = getelementptr inbounds %LSlice, ptr %t308, i32 0, i32 1 + %t310 = getelementptr inbounds %LSlice, ptr %t308, i32 0, i32 2 + %t311 = getelementptr inbounds %LSlice, ptr %t308, i32 0, i32 0 + %t312 = load i32, ptr %t309 + %t313 = load i32, ptr %t310 + %t314 = icmp sge i32 %t312, %t313 + br i1 %t314, label %grow107, label %put108 grow107: - %t329 = mul i32 %t327, 2 - %t330 = icmp eq i32 %t327, 0 - %t331 = select i1 %t330, i32 8, i32 %t329 - %t332 = getelementptr ptr, ptr null, i32 1 - %t333 = ptrtoint ptr %t332 to i64 - %t334 = zext i32 %t331 to i64 - %t335 = mul i64 %t334, %t333 - %t336 = load ptr, ptr %t325 - %t337 = call ptr @realloc(ptr %t336, i64 %t335) - store ptr %t337, ptr %t325 - store i32 %t331, ptr %t324 + %t315 = mul i32 %t313, 2 + %t316 = icmp eq i32 %t313, 0 + %t317 = select i1 %t316, i32 8, i32 %t315 + %t318 = getelementptr ptr, ptr null, i32 1 + %t319 = ptrtoint ptr %t318 to i64 + %t320 = zext i32 %t317 to i64 + %t321 = mul i64 %t320, %t319 + %t322 = load ptr, ptr %t311 + %t323 = call ptr @realloc(ptr %t322, i64 %t321) + store ptr %t323, ptr %t311 + store i32 %t317, ptr %t310 br label %put108 put108: - %t338 = call ptr @fn_parse_const() - %t339 = load ptr, ptr %t325 - %t340 = getelementptr inbounds ptr, ptr %t339, i32 %t326 - store ptr %t338, ptr %t340 - %t341 = add i32 %t326, 1 - store i32 %t341, ptr %t323 + %t324 = call ptr @fn_parse_const() + %t325 = load ptr, ptr %t311 + %t326 = getelementptr inbounds ptr, ptr %t325, i32 %t312 + store ptr %t324, ptr %t326 + %t327 = add i32 %t312, 1 + store i32 %t327, ptr %t309 br label %ret ifend106: - %t342 = call i32 @fn_is_id(ptr @.str142) - %t343 = icmp ne i32 %t342, 0 - br i1 %t343, label %then109, label %ifend111 + %t328 = call i32 @fn_is_id(ptr @.str143) + %t329 = icmp ne i32 %t328, 0 + br i1 %t329, label %then109, label %ifend111 then109: - %t344 = call ptr @fn_parse_fn() - store ptr %t344, ptr %t345 - %t346 = load i32, ptr %t0 - %t347 = icmp ne i32 %t346, 0 - br i1 %t347, label %then112, label %ifend114 + %t330 = call ptr @fn_parse_fn() + store ptr %t330, ptr %t331 + %t332 = load i32, ptr %t0 + %t333 = icmp ne i32 %t332, 0 + br i1 %t333, label %then112, label %ifend114 then112: - %t348 = load ptr, ptr %t345 - %t349 = getelementptr inbounds %Cmp_Node, ptr %t348, i32 0, i32 2 - store i32 1, ptr %t349 + %t334 = load ptr, ptr %t331 + %t335 = getelementptr inbounds %Cmp_Node, ptr %t334, i32 0, i32 2 + store i32 1, ptr %t335 br label %ifend114 ifend114: - %t350 = load ptr, ptr @g_prog - %t351 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 1 - %t352 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 2 - %t353 = getelementptr inbounds %LSlice, ptr %t350, i32 0, i32 0 - %t354 = load i32, ptr %t351 - %t355 = load i32, ptr %t352 - %t356 = icmp sge i32 %t354, %t355 - br i1 %t356, label %grow115, label %put116 + %t336 = load ptr, ptr @g_prog + %t337 = getelementptr inbounds %LSlice, ptr %t336, i32 0, i32 1 + %t338 = getelementptr inbounds %LSlice, ptr %t336, i32 0, i32 2 + %t339 = getelementptr inbounds %LSlice, ptr %t336, i32 0, i32 0 + %t340 = load i32, ptr %t337 + %t341 = load i32, ptr %t338 + %t342 = icmp sge i32 %t340, %t341 + br i1 %t342, label %grow115, label %put116 grow115: - %t357 = mul i32 %t355, 2 - %t358 = icmp eq i32 %t355, 0 - %t359 = select i1 %t358, i32 8, i32 %t357 - %t360 = getelementptr ptr, ptr null, i32 1 - %t361 = ptrtoint ptr %t360 to i64 - %t362 = zext i32 %t359 to i64 - %t363 = mul i64 %t362, %t361 - %t364 = load ptr, ptr %t353 - %t365 = call ptr @realloc(ptr %t364, i64 %t363) - store ptr %t365, ptr %t353 - store i32 %t359, ptr %t352 + %t343 = mul i32 %t341, 2 + %t344 = icmp eq i32 %t341, 0 + %t345 = select i1 %t344, i32 8, i32 %t343 + %t346 = getelementptr ptr, ptr null, i32 1 + %t347 = ptrtoint ptr %t346 to i64 + %t348 = zext i32 %t345 to i64 + %t349 = mul i64 %t348, %t347 + %t350 = load ptr, ptr %t339 + %t351 = call ptr @realloc(ptr %t350, i64 %t349) + store ptr %t351, ptr %t339 + store i32 %t345, ptr %t338 br label %put116 put116: - %t366 = load ptr, ptr %t345 - %t367 = load ptr, ptr %t353 - %t368 = getelementptr inbounds ptr, ptr %t367, i32 %t354 - store ptr %t366, ptr %t368 - %t369 = add i32 %t354, 1 - store i32 %t369, ptr %t351 + %t352 = load ptr, ptr %t331 + %t353 = load ptr, ptr %t339 + %t354 = getelementptr inbounds ptr, ptr %t353, i32 %t340 + store ptr %t352, ptr %t354 + %t355 = add i32 %t340, 1 + store i32 %t355, ptr %t337 br label %ret ifend111: - %t370 = call i32 @fn_is_id(ptr @.str143) - %t371 = icmp ne i32 %t370, 0 - br i1 %t371, label %then117, label %ifend119 + %t356 = call i32 @fn_is_id(ptr @.str144) + %t357 = icmp ne i32 %t356, 0 + br i1 %t357, label %then117, label %ifend119 then117: - %t372 = load ptr, ptr @g_prog - %t373 = getelementptr inbounds %LSlice, ptr %t372, i32 0, i32 1 - %t374 = getelementptr inbounds %LSlice, ptr %t372, i32 0, i32 2 - %t375 = getelementptr inbounds %LSlice, ptr %t372, i32 0, i32 0 - %t376 = load i32, ptr %t373 - %t377 = load i32, ptr %t374 - %t378 = icmp sge i32 %t376, %t377 - br i1 %t378, label %grow120, label %put121 + %t358 = load ptr, ptr @g_prog + %t359 = getelementptr inbounds %LSlice, ptr %t358, i32 0, i32 1 + %t360 = getelementptr inbounds %LSlice, ptr %t358, i32 0, i32 2 + %t361 = getelementptr inbounds %LSlice, ptr %t358, i32 0, i32 0 + %t362 = load i32, ptr %t359 + %t363 = load i32, ptr %t360 + %t364 = icmp sge i32 %t362, %t363 + br i1 %t364, label %grow120, label %put121 grow120: - %t379 = mul i32 %t377, 2 - %t380 = icmp eq i32 %t377, 0 - %t381 = select i1 %t380, i32 8, i32 %t379 - %t382 = getelementptr ptr, ptr null, i32 1 - %t383 = ptrtoint ptr %t382 to i64 - %t384 = zext i32 %t381 to i64 - %t385 = mul i64 %t384, %t383 - %t386 = load ptr, ptr %t375 - %t387 = call ptr @realloc(ptr %t386, i64 %t385) - store ptr %t387, ptr %t375 - store i32 %t381, ptr %t374 + %t365 = mul i32 %t363, 2 + %t366 = icmp eq i32 %t363, 0 + %t367 = select i1 %t366, i32 8, i32 %t365 + %t368 = getelementptr ptr, ptr null, i32 1 + %t369 = ptrtoint ptr %t368 to i64 + %t370 = zext i32 %t367 to i64 + %t371 = mul i64 %t370, %t369 + %t372 = load ptr, ptr %t361 + %t373 = call ptr @realloc(ptr %t372, i64 %t371) + store ptr %t373, ptr %t361 + store i32 %t367, ptr %t360 br label %put121 put121: - %t388 = call ptr @fn_parse_extern() - %t389 = load ptr, ptr %t375 - %t390 = getelementptr inbounds ptr, ptr %t389, i32 %t376 - store ptr %t388, ptr %t390 - %t391 = add i32 %t376, 1 - store i32 %t391, ptr %t373 + %t374 = call ptr @fn_parse_extern() + %t375 = load ptr, ptr %t361 + %t376 = getelementptr inbounds ptr, ptr %t375, i32 %t362 + store ptr %t374, ptr %t376 + %t377 = add i32 %t362, 1 + store i32 %t377, ptr %t359 br label %ret ifend119: - %t392 = call i32 @fn_is_id(ptr @.str144) - %t393 = icmp ne i32 %t392, 0 - br i1 %t393, label %then122, label %ifend124 + %t378 = call i32 @fn_is_id(ptr @.str145) + %t379 = icmp ne i32 %t378, 0 + br i1 %t379, label %then122, label %ifend124 then122: - %t394 = load ptr, ptr @g_prog - %t395 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 1 - %t396 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 2 - %t397 = getelementptr inbounds %LSlice, ptr %t394, i32 0, i32 0 - %t398 = load i32, ptr %t395 - %t399 = load i32, ptr %t396 - %t400 = icmp sge i32 %t398, %t399 - br i1 %t400, label %grow125, label %put126 + %t380 = load ptr, ptr @g_prog + %t381 = getelementptr inbounds %LSlice, ptr %t380, i32 0, i32 1 + %t382 = getelementptr inbounds %LSlice, ptr %t380, i32 0, i32 2 + %t383 = getelementptr inbounds %LSlice, ptr %t380, i32 0, i32 0 + %t384 = load i32, ptr %t381 + %t385 = load i32, ptr %t382 + %t386 = icmp sge i32 %t384, %t385 + br i1 %t386, label %grow125, label %put126 grow125: - %t401 = mul i32 %t399, 2 - %t402 = icmp eq i32 %t399, 0 - %t403 = select i1 %t402, i32 8, i32 %t401 - %t404 = getelementptr ptr, ptr null, i32 1 - %t405 = ptrtoint ptr %t404 to i64 - %t406 = zext i32 %t403 to i64 - %t407 = mul i64 %t406, %t405 - %t408 = load ptr, ptr %t397 - %t409 = call ptr @realloc(ptr %t408, i64 %t407) - store ptr %t409, ptr %t397 - store i32 %t403, ptr %t396 + %t387 = mul i32 %t385, 2 + %t388 = icmp eq i32 %t385, 0 + %t389 = select i1 %t388, i32 8, i32 %t387 + %t390 = getelementptr ptr, ptr null, i32 1 + %t391 = ptrtoint ptr %t390 to i64 + %t392 = zext i32 %t389 to i64 + %t393 = mul i64 %t392, %t391 + %t394 = load ptr, ptr %t383 + %t395 = call ptr @realloc(ptr %t394, i64 %t393) + store ptr %t395, ptr %t383 + store i32 %t389, ptr %t382 br label %put126 put126: - %t410 = call ptr @fn_parse_main() - %t411 = load ptr, ptr %t397 - %t412 = getelementptr inbounds ptr, ptr %t411, i32 %t398 - store ptr %t410, ptr %t412 - %t413 = add i32 %t398, 1 - store i32 %t413, ptr %t395 + %t396 = call ptr @fn_parse_main() + %t397 = load ptr, ptr %t383 + %t398 = getelementptr inbounds ptr, ptr %t397, i32 %t384 + store ptr %t396, ptr %t398 + %t399 = add i32 %t384, 1 + store i32 %t399, ptr %t381 br label %ret ifend124: - call void @fn_perr(ptr @.str145) + call void @fn_perr(ptr @.str146) br label %ret ret: ret void @@ -7038,7 +7035,7 @@ put4: br i1 %t34, label %then5, label %ifend7 then5: %t35 = load ptr, ptr %t4 - %t36 = call ptr @fn_sconcat(ptr @.str146, ptr %t35) + %t36 = call ptr @fn_sconcat(ptr @.str147, ptr %t35) call void @fn_perr(ptr %t36) br label %ifend7 ifend7: @@ -7098,8 +7095,8 @@ then0: ifend2: %t4 = load ptr, ptr @g_cur_dir store ptr %t4, ptr %t5 - store ptr @.str147, ptr @g_cur_dir - call void @fn_do_import(ptr @.str148) + store ptr @.str148, ptr @g_cur_dir + call void @fn_do_import(ptr @.str149) %t6 = load ptr, ptr %t5 store ptr %t6, ptr @g_cur_dir br label %ret @@ -7194,10 +7191,10 @@ entry: store i32 0, ptr %t47 store ptr %t44, ptr @g_loaded_paths call void @fn_skipnl() - store ptr @.str149, ptr @g_g_game_name + store ptr @.str150, ptr @g_g_game_name br label %wcond0 wcond0: - %t48 = call i32 @fn_is_id(ptr @.str150) + %t48 = call i32 @fn_is_id(ptr @.str151) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %wbody1, label %wend2 wbody1: @@ -7225,7 +7222,7 @@ wbody1: wend2: br label %wcond3 wcond3: - %t66 = call i32 @fn_is_op(ptr @.str151) + %t66 = call i32 @fn_is_op(ptr @.str152) %t67 = icmp ne i32 %t66, 0 br i1 %t67, label %wbody4, label %wend5 wbody4: @@ -7234,7 +7231,7 @@ wbody4: store i32 %t69, ptr @g_pi %t70 = call ptr @fn_eat_id() store ptr %t70, ptr %t71 - %t72 = call i32 @fn_is_op(ptr @.str152) + %t72 = call i32 @fn_is_op(ptr @.str153) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then6, label %ifend8 then6: @@ -7244,7 +7241,7 @@ wcond9: %t75 = icmp ne i32 1, 0 br i1 %t75, label %wbody10, label %wend11 wbody10: - %t76 = call i32 @fn_is_op(ptr @.str153) + %t76 = call i32 @fn_is_op(ptr @.str154) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then12, label %ifend14 then12: @@ -7253,7 +7250,7 @@ then12: store i32 %t79, ptr %t74 br label %ifend14 ifend14: - %t80 = call i32 @fn_is_op(ptr @.str154) + %t80 = call i32 @fn_is_op(ptr @.str155) %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then15, label %ifend17 then15: @@ -7280,7 +7277,7 @@ ifend8: call void @fn_skipnl() br label %wcond3 wend5: - %t90 = call i32 @fn_is_id(ptr @.str155) + %t90 = call i32 @fn_is_id(ptr @.str156) %t91 = icmp ne i32 %t90, 0 br i1 %t91, label %then21, label %ifend23 then21: @@ -7290,7 +7287,7 @@ then21: %t94 = call ptr @fn_eat_id() store ptr %t94, ptr @g_g_game_name call void @fn_skipnl() - call void @fn_eat_op(ptr @.str156) + call void @fn_eat_op(ptr @.str157) br label %ifend23 ifend23: br label %wcond24 @@ -7314,7 +7311,7 @@ wbody25: then27: br label %wend26 ifend29: - %t107 = call i32 @fn_is_op(ptr @.str157) + %t107 = call i32 @fn_is_op(ptr @.str158) %t108 = icmp ne i32 %t107, 0 br i1 %t108, label %then30, label %ifend32 then30: @@ -7345,21 +7342,21 @@ entry: %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_skipnl() - call void @fn_eat_op(ptr @.str158) + call void @fn_eat_op(ptr @.str159) 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 @.str159) + %t8 = call i32 @fn_is_op(ptr @.str160) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: br label %wend2 ifend5: store i32 0, ptr %t10 - %t11 = call i32 @fn_is_op(ptr @.str160) + %t11 = call i32 @fn_is_op(ptr @.str161) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then6, label %ifend8 then6: @@ -7369,7 +7366,7 @@ then6: %t15 = call ptr @fn_eat_id() store ptr %t15, ptr %t16 %t17 = load ptr, ptr %t16 - %t18 = call i32 @fn_streq(ptr %t17, ptr @.str161) + %t18 = call i32 @fn_streq(ptr %t17, ptr @.str162) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then9, label %ifend11 then9: @@ -7385,12 +7382,12 @@ ifend8: %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1 %t24 = call ptr @fn_eat_id() store ptr %t24, ptr %t23 - call void @fn_eat_op(ptr @.str162) + call void @fn_eat_op(ptr @.str163) %t25 = load ptr, ptr %t21 %t26 = getelementptr inbounds %Cmp_Node, ptr %t25, i32 0, i32 3 %t27 = call ptr @fn_ptype() store ptr %t27, ptr %t26 - %t28 = call i32 @fn_is_op(ptr @.str163) + %t28 = call i32 @fn_is_op(ptr @.str164) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then12, label %ifend14 then12: @@ -7454,7 +7451,7 @@ put19: store i32 %t70, ptr %t52 br label %ifend17 ifend17: - %t71 = call i32 @fn_is_op(ptr @.str164) + %t71 = call i32 @fn_is_op(ptr @.str165) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then20, label %ifend22 then20: @@ -7465,7 +7462,7 @@ then20: ifend22: br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str165) + call void @fn_eat_op(ptr @.str166) %t75 = load ptr, ptr %t3 store ptr %t75, ptr %retval br label %ret @@ -7491,14 +7488,14 @@ entry: store ptr %t6, ptr %t5 %t7 = load ptr, ptr %t3 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 3 - store ptr @.str166, ptr %t8 + store ptr @.str167, 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 @.str167) + %t10 = call i32 @fn_is_op(ptr @.str168) %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: @@ -7507,7 +7504,7 @@ then3: store i32 %t13, ptr @g_pi %t14 = call ptr @fn_eat_id() store ptr %t14, ptr %t15 - %t16 = call i32 @fn_is_op(ptr @.str168) + %t16 = call i32 @fn_is_op(ptr @.str169) %t17 = icmp ne i32 %t16, 0 br i1 %t17, label %then6, label %ifend8 then6: @@ -7517,7 +7514,7 @@ wcond9: %t19 = icmp ne i32 1, 0 br i1 %t19, label %wbody10, label %wend11 wbody10: - %t20 = call i32 @fn_is_op(ptr @.str169) + %t20 = call i32 @fn_is_op(ptr @.str170) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then12, label %ifend14 then12: @@ -7526,7 +7523,7 @@ then12: store i32 %t23, ptr %t18 br label %ifend14 ifend14: - %t24 = call i32 @fn_is_op(ptr @.str170) + %t24 = call i32 @fn_is_op(ptr @.str171) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then15, label %ifend17 then15: @@ -7552,7 +7549,7 @@ wend11: ifend8: br label %wcond0 ifend5: - %t34 = call i32 @fn_is_id(ptr @.str171) + %t34 = call i32 @fn_is_id(ptr @.str172) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then21, label %ifend23 then21: @@ -7586,18 +7583,18 @@ entry: %t1 = alloca ptr %t11 = alloca ptr %t40 = alloca ptr - call void @fn_eat_op(ptr @.str172) + call void @fn_eat_op(ptr @.str173) %t0 = call ptr @fn_node(i32 7) store ptr %t0, ptr %t1 br label %wcond0 wcond0: - %t2 = call i32 @fn_is_op(ptr @.str173) + %t2 = call i32 @fn_is_op(ptr @.str174) %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 @.str174) + %t6 = call i32 @fn_is_op(ptr @.str175) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then3, label %else4 then3: @@ -7643,7 +7640,7 @@ put7: store ptr %t35, ptr %t37 %t38 = add i32 %t23, 1 store i32 %t38, ptr %t20 - call void @fn_eat_op(ptr @.str175) + call void @fn_eat_op(ptr @.str176) br label %ifend5 else4: %t39 = call ptr @fn_node(i32 33) @@ -7687,7 +7684,7 @@ put9: store i32 %t67, ptr %t49 br label %ifend5 ifend5: - %t68 = call i32 @fn_is_op(ptr @.str176) + %t68 = call i32 @fn_is_op(ptr @.str177) %t69 = icmp ne i32 %t68, 0 br i1 %t69, label %then10, label %ifend12 then10: @@ -7698,8 +7695,8 @@ then10: ifend12: br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str177) - %t72 = call i32 @fn_is_id(ptr @.str178) + call void @fn_eat_op(ptr @.str178) + %t72 = call i32 @fn_is_id(ptr @.str179) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then13, label %ifend15 then13: @@ -7728,10 +7725,10 @@ entry: %t38 = alloca ptr %t0 = call ptr @fn_node(i32 21) store ptr %t0, ptr %t1 - call void @fn_eat_op(ptr @.str179) + call void @fn_eat_op(ptr @.str180) br label %wcond0 wcond0: - %t2 = call i32 @fn_is_op(ptr @.str180) + %t2 = call i32 @fn_is_op(ptr @.str181) %t3 = icmp eq i32 %t2, 0 %t4 = zext i1 %t3 to i32 %t5 = icmp ne i32 %t4, 0 @@ -7773,7 +7770,7 @@ put4: store ptr %t29, ptr %t31 %t32 = add i32 %t17, 1 store i32 %t32, ptr %t14 - %t33 = call i32 @fn_is_op(ptr @.str181) + %t33 = call i32 @fn_is_op(ptr @.str182) %t34 = icmp ne i32 %t33, 0 br i1 %t34, label %then5, label %ifend7 then5: @@ -7784,16 +7781,16 @@ then5: ifend7: br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str182) + call void @fn_eat_op(ptr @.str183) %t37 = call ptr @fn_eat_id() store ptr %t37, ptr %t38 - %t39 = call i32 @fn_is_id(ptr @.str183) + %t39 = call i32 @fn_is_id(ptr @.str184) %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 @.str184) + call void @fn_perr(ptr @.str185) br label %ifend10 ifend10: %t43 = load i32, ptr @g_pi @@ -7845,7 +7842,7 @@ ifend2: store ptr %t7, ptr %t8 %t9 = load ptr, ptr %t8 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 1 - store ptr @.str185, ptr %t10 + store ptr @.str186, ptr %t10 %t11 = load ptr, ptr %t8 %t12 = getelementptr inbounds %Cmp_Node, ptr %t11, i32 0, i32 4 %t13 = load ptr, ptr %t0 @@ -7992,7 +7989,7 @@ entry: %t85 = alloca ptr %t102 = alloca ptr %t104 = alloca ptr - call void @fn_eat_op(ptr @.str186) + call void @fn_eat_op(ptr @.str187) %t0 = call ptr @fn_node(i32 21) store ptr %t0, ptr %t1 %t2 = call ptr @fn_node(i32 7) @@ -8000,14 +7997,14 @@ entry: store ptr null, ptr %t4 br label %wcond0 wcond0: - %t5 = call i32 @fn_is_op(ptr @.str187) + %t5 = call i32 @fn_is_op(ptr @.str188) %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 @.str188) + %t9 = call i32 @fn_is_op(ptr @.str189) %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: @@ -8015,17 +8012,17 @@ then3: ifend5: %t11 = call ptr @fn_eat_id() store ptr %t11, ptr %t12 - call void @fn_eat_op(ptr @.str189) + call void @fn_eat_op(ptr @.str190) %t13 = load ptr, ptr %t12 - %t14 = call i32 @fn_streq(ptr %t13, ptr @.str190) + %t14 = call i32 @fn_streq(ptr %t13, ptr @.str191) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then6, label %else7 then6: - call void @fn_eat_op(ptr @.str191) + call void @fn_eat_op(ptr @.str192) call void @fn_skipnl() br label %wcond9 wcond9: - %t16 = call i32 @fn_is_op(ptr @.str192) + %t16 = call i32 @fn_is_op(ptr @.str193) %t17 = icmp eq i32 %t16, 0 %t18 = zext i1 %t17 to i32 %t19 = icmp ne i32 %t18, 0 @@ -8108,7 +8105,7 @@ put15: store ptr %t74, ptr %t76 %t77 = add i32 %t62, 1 store i32 %t77, ptr %t59 - %t78 = call i32 @fn_is_op(ptr @.str193) + %t78 = call i32 @fn_is_op(ptr @.str194) %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then16, label %ifend18 then16: @@ -8117,7 +8114,7 @@ then16: store i32 %t81, ptr @g_pi %t82 = call ptr @fn_expr() store ptr %t82, ptr %t83 - call void @fn_eat_op(ptr @.str194) + call void @fn_eat_op(ptr @.str195) %t84 = call ptr @fn_node(i32 33) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 @@ -8132,7 +8129,7 @@ then16: store ptr %t93, ptr %t4 br label %ifend18 ifend18: - %t94 = call i32 @fn_is_op(ptr @.str195) + %t94 = call i32 @fn_is_op(ptr @.str196) %t95 = icmp ne i32 %t94, 0 br i1 %t95, label %then19, label %ifend21 then19: @@ -8144,11 +8141,11 @@ ifend21: call void @fn_skipnl() br label %wcond9 wend11: - call void @fn_eat_op(ptr @.str196) + call void @fn_eat_op(ptr @.str197) br label %ifend8 else7: %t98 = load ptr, ptr %t12 - %t99 = call i32 @fn_streq(ptr %t98, ptr @.str197) + %t99 = call i32 @fn_streq(ptr %t98, ptr @.str198) %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then22, label %else23 then22: @@ -8200,7 +8197,7 @@ else23: ifend24: br label %ifend8 ifend8: - %t133 = call i32 @fn_is_op(ptr @.str198) + %t133 = call i32 @fn_is_op(ptr @.str199) %t134 = icmp ne i32 %t133, 0 br i1 %t134, label %then27, label %ifend29 then27: @@ -8212,7 +8209,7 @@ ifend29: call void @fn_skipnl() br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str199) + call void @fn_eat_op(ptr @.str200) %t137 = load ptr, ptr %t1 %t138 = getelementptr inbounds %Cmp_Node, ptr %t137, i32 0, i32 6 %t139 = load ptr, ptr %t3 @@ -8244,14 +8241,14 @@ entry: %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_skipnl() - call void @fn_eat_op(ptr @.str200) + call void @fn_eat_op(ptr @.str201) 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 @.str201) + %t8 = call i32 @fn_is_op(ptr @.str202) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: @@ -8297,7 +8294,7 @@ put7: store ptr %t36, ptr %t38 %t39 = add i32 %t24, 1 store i32 %t39, ptr %t21 - %t40 = call i32 @fn_is_op(ptr @.str202) + %t40 = call i32 @fn_is_op(ptr @.str203) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then8, label %ifend10 then8: @@ -8308,7 +8305,7 @@ then8: ifend10: br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str203) + call void @fn_eat_op(ptr @.str204) %t44 = load ptr, ptr %t3 store ptr %t44, ptr %retval br label %ret @@ -8332,14 +8329,14 @@ entry: %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_skipnl() - call void @fn_eat_op(ptr @.str204) + call void @fn_eat_op(ptr @.str205) 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 @.str205) + %t8 = call i32 @fn_is_op(ptr @.str206) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: @@ -8381,7 +8378,7 @@ put7: store ptr %t33, ptr %t35 %t36 = add i32 %t21, 1 store i32 %t36, ptr %t18 - %t37 = call i32 @fn_is_op(ptr @.str206) + %t37 = call i32 @fn_is_op(ptr @.str207) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then8, label %ifend10 then8: @@ -8393,7 +8390,7 @@ ifend10: call void @fn_skipnl() br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str207) + call void @fn_eat_op(ptr @.str208) %t41 = load ptr, ptr %t3 store ptr %t41, ptr %retval br label %ret @@ -8417,14 +8414,14 @@ entry: %t6 = call ptr @fn_eat_id() store ptr %t6, ptr %t5 call void @fn_skipnl() - call void @fn_eat_op(ptr @.str208) + call void @fn_eat_op(ptr @.str209) 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 @.str209) + %t8 = call i32 @fn_is_op(ptr @.str210) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then3, label %ifend5 then3: @@ -8466,7 +8463,7 @@ put7: store ptr %t33, ptr %t35 %t36 = add i32 %t21, 1 store i32 %t36, ptr %t18 - %t37 = call i32 @fn_is_op(ptr @.str210) + %t37 = call i32 @fn_is_op(ptr @.str211) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then8, label %ifend10 then8: @@ -8478,7 +8475,7 @@ ifend10: call void @fn_skipnl() br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str211) + call void @fn_eat_op(ptr @.str212) %t41 = load ptr, ptr %t3 store ptr %t41, ptr %retval br label %ret @@ -8505,10 +8502,10 @@ entry: %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 @.str212) + call void @fn_eat_op(ptr @.str213) br label %wcond0 wcond0: - %t9 = call i32 @fn_is_op(ptr @.str213) + %t9 = call i32 @fn_is_op(ptr @.str214) %t10 = icmp eq i32 %t9, 0 %t11 = zext i1 %t10 to i32 %t12 = icmp ne i32 %t11, 0 @@ -8520,7 +8517,7 @@ wbody1: %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 @.str214) + call void @fn_eat_op(ptr @.str215) %t18 = load ptr, ptr %t14 %t19 = getelementptr inbounds %Cmp_Node, ptr %t18, i32 0, i32 3 %t20 = call ptr @fn_ptype() @@ -8555,7 +8552,7 @@ put4: store ptr %t39, ptr %t41 %t42 = add i32 %t27, 1 store i32 %t42, ptr %t24 - %t43 = call i32 @fn_is_op(ptr @.str215) + %t43 = call i32 @fn_is_op(ptr @.str216) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then5, label %ifend7 then5: @@ -8566,11 +8563,11 @@ then5: ifend7: br label %wcond0 wend2: - call void @fn_eat_op(ptr @.str216) + call void @fn_eat_op(ptr @.str217) %t47 = load ptr, ptr %t5 %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 3 - store ptr @.str217, ptr %t48 - %t49 = call i32 @fn_is_op(ptr @.str218) + store ptr @.str218, ptr %t48 + %t49 = call i32 @fn_is_op(ptr @.str219) %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then8, label %ifend10 then8: @@ -8583,7 +8580,7 @@ then8: store ptr %t55, ptr %t54 br label %ifend10 ifend10: - call void @fn_eat_op(ptr @.str219) + call void @fn_eat_op(ptr @.str220) %t56 = load ptr, ptr @g_toks %t57 = getelementptr inbounds %LSlice, ptr %t56, i32 0, i32 0 %t58 = load ptr, ptr %t57 @@ -8679,7 +8676,7 @@ sc5: %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_streq(ptr %t46, ptr @.str220) + %t47 = call i32 @fn_streq(ptr %t46, ptr @.str221) %t48 = icmp ne i32 %t47, 0 %t49 = zext i1 %t48 to i32 store i32 %t49, ptr %t8 @@ -8695,7 +8692,7 @@ wbody1: %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 @.str221) + call void @fn_eat_op(ptr @.str222) %t57 = load ptr, ptr %t53 %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 4 %t59 = call ptr @fn_expr() @@ -8735,7 +8732,7 @@ put8: br label %wcond0 wend2: call void @fn_skipnl() - %t84 = call i32 @fn_is_op(ptr @.str222) + %t84 = call i32 @fn_is_op(ptr @.str223) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then9, label %ifend11 then9: @@ -8748,7 +8745,7 @@ wcond12: br i1 %t88, label %wbody13, label %wend14 wbody13: call void @fn_skipnl() - %t89 = call i32 @fn_is_op(ptr @.str223) + %t89 = call i32 @fn_is_op(ptr @.str224) %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then15, label %ifend17 then15: @@ -8786,7 +8783,7 @@ put19: store i32 %t112, ptr %t94 br label %wcond12 wend14: - call void @fn_eat_op(ptr @.str224) + call void @fn_eat_op(ptr @.str225) br label %ifend11 ifend11: %t113 = load ptr, ptr %t1 @@ -8814,14 +8811,14 @@ entry: %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 @.str225) + call void @fn_eat_op(ptr @.str226) 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 @.str226) + call void @fn_eat_op(ptr @.str227) %t12 = load ptr, ptr %t3 store ptr %t12, ptr %retval br label %ret @@ -8894,23 +8891,23 @@ entry: store ptr %arg_llt, ptr %t0 %t1 = load i32, ptr @g_ll_t %t2 = call ptr @fn_itoa(i32 %t1) - %t3 = call ptr @fn_sconcat(ptr @.str227, ptr %t2) + %t3 = call ptr @fn_sconcat(ptr @.str228, 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 @.str228) + call void @fn_buf_puts(ptr %t7, ptr @.str229) %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 @.str229) + call void @fn_buf_puts(ptr %t10, ptr @.str230) %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 @.str230) + call void @fn_buf_puts(ptr %t13, ptr @.str231) %t14 = load ptr, ptr %t4 store ptr %t14, ptr %retval br label %ret @@ -9017,7 +9014,7 @@ entry: %t3 = alloca ptr %t0 = load i32, ptr @g_ll_t %t1 = call ptr @fn_itoa(i32 %t0) - %t2 = call ptr @fn_sconcat(ptr @.str231, ptr %t1) + %t2 = call ptr @fn_sconcat(ptr @.str232, ptr %t1) store ptr %t2, ptr %t3 %t4 = load i32, ptr @g_ll_t %t5 = add i32 %t4, 1 @@ -9060,14 +9057,14 @@ entry: %t2 = alloca i32 store ptr %arg_t, ptr %t0 %t3 = load ptr, ptr %t0 - %t4 = call i32 @fn_streq(ptr %t3, ptr @.str232) + %t4 = call i32 @fn_streq(ptr %t3, ptr @.str233) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 - %t8 = call i32 @fn_streq(ptr %t7, ptr @.str233) + %t8 = call i32 @fn_streq(ptr %t7, ptr @.str234) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 @@ -9080,7 +9077,7 @@ scend1: br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 - %t15 = call i32 @fn_streq(ptr %t14, ptr @.str234) + %t15 = call i32 @fn_streq(ptr %t14, ptr @.str235) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 @@ -9090,18 +9087,18 @@ scend3: %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then4, label %ifend6 then4: - store ptr @.str235, ptr %retval + store ptr @.str236, ptr %retval br label %ret ifend6: %t20 = load ptr, ptr %t0 - %t21 = call i32 @fn_streq(ptr %t20, ptr @.str236) + %t21 = call i32 @fn_streq(ptr %t20, ptr @.str237) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then7, label %ifend9 then7: - store ptr @.str237, ptr %retval + store ptr @.str238, ptr %retval br label %ret ifend9: - store ptr @.str238, ptr %retval + store ptr @.str239, ptr %retval br label %ret ret: %t23 = load ptr, ptr %retval @@ -9315,7 +9312,7 @@ entry: %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call ptr @fn_sconcat(ptr @.str239, ptr %t1) + %t2 = call ptr @fn_sconcat(ptr @.str240, ptr %t1) store ptr %t2, ptr %retval br label %ret ret: @@ -9432,7 +9429,7 @@ ifend5: store i32 %t36, ptr %t2 br label %wcond0 wend2: - store ptr @.str240, ptr %retval + store ptr @.str241, ptr %retval br label %ret ret: %t37 = load ptr, ptr %retval @@ -9726,7 +9723,7 @@ entry: %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t0 %t9 = load ptr, ptr %t1 - %t10 = call ptr @fn_sconcat(ptr @.str241, ptr %t9) + %t10 = call ptr @fn_sconcat(ptr @.str242, ptr %t9) %t11 = call ptr @fn_sconcat(ptr %t8, ptr %t10) store ptr %t11, ptr %t7 %t12 = load ptr, ptr %t5 @@ -9790,7 +9787,7 @@ then0: ifend2: %t6 = load ptr, ptr %t0 %t7 = load ptr, ptr %t1 - %t8 = call ptr @fn_sconcat(ptr @.str242, ptr %t7) + %t8 = call ptr @fn_sconcat(ptr @.str243, ptr %t7) %t9 = call ptr @fn_sconcat(ptr %t6, ptr %t8) store ptr %t9, ptr %t10 store i32 0, ptr %t11 @@ -10704,7 +10701,7 @@ entry: store ptr %arg_s, ptr %t0 %t1 = load i32, ptr @g_ll_str %t2 = call ptr @fn_itoa(i32 %t1) - %t3 = call ptr @fn_sconcat(ptr @.str243, ptr %t2) + %t3 = call ptr @fn_sconcat(ptr @.str244, ptr %t2) store ptr %t3, ptr %t4 %t5 = load i32, ptr @g_ll_str %t6 = add i32 %t5, 1 @@ -10714,12 +10711,12 @@ entry: store i32 %t8, ptr %t9 %t10 = load ptr, ptr %t4 call void @fn_emith(ptr %t10) - call void @fn_emith(ptr @.str244) + call void @fn_emith(ptr @.str245) %t11 = load i32, ptr %t9 %t12 = add i32 %t11, 1 %t13 = call ptr @fn_itoa(i32 %t12) call void @fn_emith(ptr %t13) - call void @fn_emith(ptr @.str245) + call void @fn_emith(ptr @.str246) store i32 0, ptr %t14 br label %wcond0 wcond0: @@ -10808,7 +10805,7 @@ ifend11: store i32 %t69, ptr %t14 br label %wcond0 wend2: - call void @fn_emith(ptr @.str246) + call void @fn_emith(ptr @.str247) %t70 = load ptr, ptr %t4 store ptr %t70, ptr %retval br label %ret @@ -10827,16 +10824,16 @@ entry: store ptr %arg_idx, ptr %t1 %t2 = call ptr @fn_nreg() store ptr %t2, ptr %t3 - call void @fn_emit(ptr @.str247) + call void @fn_emit(ptr @.str248) %t4 = load ptr, ptr %t3 call void @fn_emit(ptr %t4) - call void @fn_emit(ptr @.str248) + call void @fn_emit(ptr @.str249) %t5 = load ptr, ptr %t0 call void @fn_emit(ptr %t5) - call void @fn_emit(ptr @.str249) + call void @fn_emit(ptr @.str250) %t6 = load ptr, ptr %t1 call void @fn_emit(ptr %t6) - call void @fn_emit(ptr @.str250) + call void @fn_emit(ptr @.str251) %t7 = load ptr, ptr %t3 store ptr %t7, ptr %retval br label %ret @@ -10867,14 +10864,14 @@ then0: %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_streq(ptr %t10, ptr @.str251) + %t11 = call i32 @fn_streq(ptr %t10, ptr @.str252) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: - store ptr @.str252, ptr %retval + store ptr @.str253, ptr %retval br label %ret ifend5: - store ptr @.str253, ptr %retval + store ptr @.str254, ptr %retval br label %ret ifend2: %t13 = load ptr, ptr %t0 @@ -10941,7 +10938,7 @@ 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_streq(ptr %t60, ptr @.str254) + %t61 = call i32 @fn_streq(ptr %t60, ptr @.str255) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t50 @@ -10975,7 +10972,7 @@ then17: %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_sconcat(ptr @.str255, ptr %t83) + %t84 = call ptr @fn_sconcat(ptr @.str256, ptr %t83) store ptr %t84, ptr %retval br label %ret ifend19: @@ -10983,14 +10980,14 @@ ifend19: %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_streq(ptr %t88, ptr @.str256) + %t89 = call i32 @fn_streq(ptr %t88, ptr @.str257) %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then20, label %ifend22 then20: - store ptr @.str257, ptr %retval + store ptr @.str258, ptr %retval br label %ret ifend22: - store ptr @.str258, ptr %retval + store ptr @.str259, ptr %retval br label %ret ret: %t91 = load ptr, ptr %retval @@ -11003,7 +11000,6 @@ entry: %t19 = alloca ptr %t38 = alloca i32 %t80 = alloca ptr - call void @fn_emith(ptr @.str259) call void @fn_emith(ptr @.str260) call void @fn_emith(ptr @.str261) call void @fn_emith(ptr @.str262) @@ -11034,16 +11030,17 @@ entry: call void @fn_emith(ptr @.str287) call void @fn_emith(ptr @.str288) call void @fn_emith(ptr @.str289) + call void @fn_emith(ptr @.str290) %t0 = load ptr, ptr @g_g_game_name %t1 = call i32 @fn_slen(ptr %t0) %t2 = add i32 %t1, 1 %t3 = call ptr @fn_itoa(i32 %t2) call void @fn_emith(ptr %t3) - call void @fn_emith(ptr @.str290) + call void @fn_emith(ptr @.str291) %t4 = load ptr, ptr @g_g_game_name call void @fn_emith(ptr %t4) - call void @fn_emith(ptr @.str291) call void @fn_emith(ptr @.str292) + call void @fn_emith(ptr @.str293) store i32 0, ptr %t5 br label %wcond0 wcond0: @@ -11076,7 +11073,7 @@ then3: %t28 = load ptr, ptr %t27 %t29 = call ptr @fn_layout_ty(ptr %t28) call void @fn_emith(ptr %t29) - call void @fn_emith(ptr @.str293) + call void @fn_emith(ptr @.str294) %t30 = load ptr, ptr %t19 %t31 = getelementptr inbounds %Cmp_Node, ptr %t30, i32 0, i32 7 %t32 = load ptr, ptr %t31 @@ -11087,7 +11084,7 @@ then3: %t37 = icmp ne i32 %t36, 0 br i1 %t37, label %then6, label %ifend8 then6: - call void @fn_emith(ptr @.str294) + call void @fn_emith(ptr @.str295) br label %ifend8 ifend8: store i32 0, ptr %t38 @@ -11110,7 +11107,7 @@ wbody10: %t51 = icmp ne i32 %t50, 0 br i1 %t51, label %then12, label %ifend14 then12: - call void @fn_emith(ptr @.str295) + call void @fn_emith(ptr @.str296) br label %ifend14 ifend14: %t52 = load ptr, ptr %t19 @@ -11130,7 +11127,7 @@ ifend14: store i32 %t64, ptr %t38 br label %wcond9 wend11: - call void @fn_emith(ptr @.str296) + call void @fn_emith(ptr @.str297) br label %ifend5 ifend5: %t65 = load i32, ptr %t5 @@ -11165,22 +11162,22 @@ wbody16: %t86 = icmp ne i32 %t85, 0 br i1 %t86, label %then18, label %ifend20 then18: - call void @fn_emith(ptr @.str297) + call void @fn_emith(ptr @.str298) %t87 = load ptr, ptr %t80 %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 1 %t89 = load ptr, ptr %t88 call void @fn_emith(ptr %t89) - call void @fn_emith(ptr @.str298) + call void @fn_emith(ptr @.str299) %t90 = load ptr, ptr %t80 %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 3 %t92 = load ptr, ptr %t91 %t93 = call ptr @fn_llty(ptr %t92) call void @fn_emith(ptr %t93) - call void @fn_emith(ptr @.str299) + call void @fn_emith(ptr @.str300) %t94 = load ptr, ptr %t80 %t95 = call ptr @fn_global_init(ptr %t94) call void @fn_emith(ptr %t95) - call void @fn_emith(ptr @.str300) + call void @fn_emith(ptr @.str301) br label %ifend20 ifend20: %t96 = load i32, ptr %t5 @@ -11221,7 +11218,7 @@ 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_sconcat(ptr @.str301, ptr %t17) + %t18 = call ptr @fn_sconcat(ptr @.str302, ptr %t17) call void @fn_perr(ptr %t18) br label %ifend2 ifend2: @@ -11240,7 +11237,7 @@ 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_sconcat(ptr @.str302, ptr %t31) + %t32 = call ptr @fn_sconcat(ptr @.str303, ptr %t31) call void @fn_perr(ptr %t32) br label %ifend5 ifend5: @@ -11252,25 +11249,25 @@ ifend5: store ptr %t37, ptr @g_g_addr_ty %t38 = call ptr @fn_nreg() store ptr %t38, ptr %t39 - call void @fn_emit(ptr @.str303) + call void @fn_emit(ptr @.str304) %t40 = load ptr, ptr %t39 call void @fn_emit(ptr %t40) - call void @fn_emit(ptr @.str304) + call void @fn_emit(ptr @.str305) %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 @.str305) + call void @fn_emit(ptr @.str306) %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 @.str306) + call void @fn_emit(ptr @.str307) %t48 = load i32, ptr %t24 %t49 = call ptr @fn_itoa(i32 %t48) call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str307) + call void @fn_emit(ptr @.str308) %t50 = load ptr, ptr %t39 store ptr %t50, ptr %retval br label %ret @@ -11304,7 +11301,7 @@ entry: %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: - call void @fn_perr(ptr @.str308) + call void @fn_perr(ptr @.str309) br label %ifend2 ifend2: %t13 = load ptr, ptr %t5 @@ -11316,24 +11313,24 @@ ifend2: store ptr %t18, ptr @g_g_addr_ty %t19 = call ptr @fn_nreg() store ptr %t19, ptr %t20 - call void @fn_emit(ptr @.str309) + call void @fn_emit(ptr @.str310) %t21 = load ptr, ptr %t20 call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str310) + call void @fn_emit(ptr @.str311) %t22 = load ptr, ptr %t5 %t23 = getelementptr inbounds %Cmp_Val, ptr %t22, i32 0, i32 0 %t24 = load ptr, ptr %t23 call void @fn_emit(ptr %t24) - call void @fn_emit(ptr @.str311) + call void @fn_emit(ptr @.str312) %t25 = call ptr @fn_nreg() store ptr %t25, ptr %t26 - call void @fn_emit(ptr @.str312) + call void @fn_emit(ptr @.str313) %t27 = load ptr, ptr %t26 call void @fn_emit(ptr %t27) - call void @fn_emit(ptr @.str313) + call void @fn_emit(ptr @.str314) %t28 = load ptr, ptr %t20 call void @fn_emit(ptr %t28) - call void @fn_emit(ptr @.str314) + call void @fn_emit(ptr @.str315) %t29 = load ptr, ptr %t0 %t30 = getelementptr inbounds %Cmp_Node, ptr %t29, i32 0, i32 5 %t31 = load ptr, ptr %t30 @@ -11341,22 +11338,22 @@ ifend2: store ptr %t32, ptr %t33 %t34 = call ptr @fn_nreg() store ptr %t34, ptr %t35 - call void @fn_emit(ptr @.str315) + call void @fn_emit(ptr @.str316) %t36 = load ptr, ptr %t35 call void @fn_emit(ptr %t36) - call void @fn_emit(ptr @.str316) + call void @fn_emit(ptr @.str317) %t37 = load ptr, ptr %t17 %t38 = call ptr @fn_llty(ptr %t37) call void @fn_emit(ptr %t38) - call void @fn_emit(ptr @.str317) + call void @fn_emit(ptr @.str318) %t39 = load ptr, ptr %t26 call void @fn_emit(ptr %t39) - call void @fn_emit(ptr @.str318) + call void @fn_emit(ptr @.str319) %t40 = load ptr, ptr %t33 %t41 = getelementptr inbounds %Cmp_Val, ptr %t40, i32 0, i32 0 %t42 = load ptr, ptr %t41 call void @fn_emit(ptr %t42) - call void @fn_emit(ptr @.str319) + call void @fn_emit(ptr @.str320) %t43 = load ptr, ptr %t35 store ptr %t43, ptr %retval br label %ret @@ -11370,271 +11367,243 @@ entry: %retval = alloca i32 %t0 = alloca ptr %t1 = alloca i32 - %t2 = alloca i32 - %t20 = alloca i32 - %t21 = alloca i32 - %t39 = alloca i32 - %t40 = alloca i32 - %t58 = alloca i32 - %t59 = alloca i32 - %t77 = alloca i32 - %t88 = alloca i32 - %t89 = alloca i32 - %t90 = alloca i32 - %t115 = alloca i32 - %t126 = alloca i32 + %t12 = alloca i32 + %t23 = alloca i32 + %t24 = alloca i32 + %t42 = alloca i32 + %t43 = alloca i32 + %t61 = alloca i32 + %t72 = alloca i32 + %t73 = alloca i32 + %t74 = alloca i32 + %t99 = alloca i32 + %t110 = alloca i32 store ptr %arg_name, ptr %t0 - %t3 = load ptr, ptr %t0 - %t4 = call i32 @fn_streq(ptr %t3, ptr @.str320) - %t5 = icmp ne i32 %t4, 0 - %t6 = zext i1 %t5 to i32 - store i32 %t6, ptr %t2 - br i1 %t5, label %scend1, label %sc0 + %t2 = load ptr, ptr %t0 + %t3 = call i32 @fn_streq(ptr %t2, ptr @.str321) + %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: - %t7 = load ptr, ptr %t0 - %t8 = call i32 @fn_streq(ptr %t7, ptr @.str321) - %t9 = icmp ne i32 %t8, 0 - %t10 = zext i1 %t9 to i32 - store i32 %t10, ptr %t2 + %t6 = load ptr, ptr %t0 + %t7 = call i32 @fn_streq(ptr %t6, ptr @.str322) + %t8 = icmp ne i32 %t7, 0 + %t9 = zext i1 %t8 to i32 + store i32 %t9, ptr %t1 br label %scend1 scend1: - %t11 = load i32, ptr %t2 - %t12 = icmp ne i32 %t11, 0 - %t13 = zext i1 %t12 to i32 - store i32 %t13, ptr %t1 - br i1 %t12, label %scend3, label %sc2 -sc2: - %t14 = load ptr, ptr %t0 - %t15 = call i32 @fn_streq(ptr %t14, ptr @.str322) - %t16 = icmp ne i32 %t15, 0 - %t17 = zext i1 %t16 to i32 - store i32 %t17, ptr %t1 - br label %scend3 -scend3: - %t18 = load i32, ptr %t1 - %t19 = icmp ne i32 %t18, 0 - br i1 %t19, label %then4, label %ifend6 -then4: + %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 -ifend6: - %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_streq(ptr %t22, ptr @.str323) - %t24 = icmp ne i32 %t23, 0 - %t25 = zext i1 %t24 to i32 - store i32 %t25, ptr %t21 - br i1 %t24, label %scend8, label %sc7 -sc7: - %t26 = load ptr, ptr %t0 - %t27 = call i32 @fn_streq(ptr %t26, ptr @.str324) - %t28 = icmp ne i32 %t27, 0 - %t29 = zext i1 %t28 to i32 - store i32 %t29, ptr %t21 - br label %scend8 -scend8: - %t30 = load i32, ptr %t21 +ifend4: + %t13 = load ptr, ptr %t0 + %t14 = call i32 @fn_streq(ptr %t13, ptr @.str323) + %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_streq(ptr %t17, ptr @.str324) + %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: + %t25 = load ptr, ptr %t0 + %t26 = call i32 @fn_streq(ptr %t25, ptr @.str325) + %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_streq(ptr %t29, ptr @.str326) %t31 = icmp ne i32 %t30, 0 %t32 = zext i1 %t31 to i32 - store i32 %t32, ptr %t20 - br i1 %t31, label %scend10, label %sc9 -sc9: - %t33 = load ptr, ptr %t0 - %t34 = call i32 @fn_streq(ptr %t33, ptr @.str325) - %t35 = icmp ne i32 %t34, 0 - %t36 = zext i1 %t35 to i32 - store i32 %t36, ptr %t20 - br label %scend10 -scend10: - %t37 = load i32, ptr %t20 + 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_streq(ptr %t36, ptr @.str327) %t38 = icmp ne i32 %t37, 0 - br i1 %t38, label %then11, label %ifend13 -then11: + %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 -ifend13: - %t41 = load ptr, ptr %t0 - %t42 = call i32 @fn_streq(ptr %t41, ptr @.str326) - %t43 = icmp ne i32 %t42, 0 - %t44 = zext i1 %t43 to i32 - store i32 %t44, ptr %t40 - br i1 %t43, label %scend15, label %sc14 -sc14: - %t45 = load ptr, ptr %t0 - %t46 = call i32 @fn_streq(ptr %t45, ptr @.str327) - %t47 = icmp ne i32 %t46, 0 - %t48 = zext i1 %t47 to i32 - store i32 %t48, ptr %t40 - br label %scend15 -scend15: - %t49 = load i32, ptr %t40 +ifend16: + %t44 = load ptr, ptr %t0 + %t45 = call i32 @fn_streq(ptr %t44, ptr @.str328) + %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_streq(ptr %t48, ptr @.str329) %t50 = icmp ne i32 %t49, 0 %t51 = zext i1 %t50 to i32 - store i32 %t51, ptr %t39 - br i1 %t50, label %scend17, label %sc16 -sc16: - %t52 = load ptr, ptr %t0 - %t53 = call i32 @fn_streq(ptr %t52, ptr @.str328) - %t54 = icmp ne i32 %t53, 0 - %t55 = zext i1 %t54 to i32 - store i32 %t55, ptr %t39 - br label %scend17 -scend17: - %t56 = load i32, ptr %t39 + 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_streq(ptr %t55, ptr @.str330) %t57 = icmp ne i32 %t56, 0 - br i1 %t57, label %then18, label %ifend20 -then18: + %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 -ifend20: - %t60 = load ptr, ptr %t0 - %t61 = call i32 @fn_streq(ptr %t60, ptr @.str329) - %t62 = icmp ne i32 %t61, 0 - %t63 = zext i1 %t62 to i32 - store i32 %t63, ptr %t59 - br i1 %t62, label %scend22, label %sc21 -sc21: - %t64 = load ptr, ptr %t0 - %t65 = call i32 @fn_streq(ptr %t64, ptr @.str330) - %t66 = icmp ne i32 %t65, 0 - %t67 = zext i1 %t66 to i32 - store i32 %t67, ptr %t59 - br label %scend22 -scend22: - %t68 = load i32, ptr %t59 - %t69 = icmp ne i32 %t68, 0 - %t70 = zext i1 %t69 to i32 - store i32 %t70, ptr %t58 - br i1 %t69, label %scend24, label %sc23 -sc23: - %t71 = load ptr, ptr %t0 - %t72 = call i32 @fn_streq(ptr %t71, ptr @.str331) - %t73 = icmp ne i32 %t72, 0 - %t74 = zext i1 %t73 to i32 - store i32 %t74, ptr %t58 - br label %scend24 -scend24: - %t75 = load i32, ptr %t58 - %t76 = icmp ne i32 %t75, 0 - br i1 %t76, label %then25, label %ifend27 -then25: +ifend23: + %t62 = load ptr, ptr %t0 + %t63 = call i32 @fn_streq(ptr %t62, ptr @.str331) + %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_streq(ptr %t66, ptr @.str332) + %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 -ifend27: - %t78 = load ptr, ptr %t0 - %t79 = call i32 @fn_streq(ptr %t78, ptr @.str332) - %t80 = icmp ne i32 %t79, 0 - %t81 = zext i1 %t80 to i32 - store i32 %t81, ptr %t77 - br i1 %t80, label %scend29, label %sc28 -sc28: - %t82 = load ptr, ptr %t0 - %t83 = call i32 @fn_streq(ptr %t82, ptr @.str333) +ifend28: + %t75 = load ptr, ptr %t0 + %t76 = call i32 @fn_streq(ptr %t75, ptr @.str333) + %t77 = icmp ne i32 %t76, 0 + %t78 = zext i1 %t77 to i32 + store i32 %t78, ptr %t74 + br i1 %t77, label %scend30, label %sc29 +sc29: + %t79 = load ptr, ptr %t0 + %t80 = call i32 @fn_streq(ptr %t79, ptr @.str334) + %t81 = icmp ne i32 %t80, 0 + %t82 = zext i1 %t81 to i32 + store i32 %t82, ptr %t74 + br label %scend30 +scend30: + %t83 = load i32, ptr %t74 %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 - store i32 %t85, ptr %t77 - br label %scend29 -scend29: - %t86 = load i32, ptr %t77 - %t87 = icmp ne i32 %t86, 0 - br i1 %t87, label %then30, label %ifend32 -then30: - store i32 1, ptr %retval - br label %ret -ifend32: - %t91 = load ptr, ptr %t0 - %t92 = call i32 @fn_streq(ptr %t91, ptr @.str334) - %t93 = icmp ne i32 %t92, 0 - %t94 = zext i1 %t93 to i32 - store i32 %t94, ptr %t90 - br i1 %t93, label %scend34, label %sc33 + store i32 %t85, ptr %t73 + br i1 %t84, label %scend32, label %sc31 +sc31: + %t86 = load ptr, ptr %t0 + %t87 = call i32 @fn_streq(ptr %t86, ptr @.str335) + %t88 = icmp ne i32 %t87, 0 + %t89 = zext i1 %t88 to i32 + store i32 %t89, ptr %t73 + br label %scend32 +scend32: + %t90 = load i32, ptr %t73 + %t91 = icmp ne i32 %t90, 0 + %t92 = zext i1 %t91 to i32 + store i32 %t92, ptr %t72 + br i1 %t91, label %scend34, label %sc33 sc33: - %t95 = load ptr, ptr %t0 - %t96 = call i32 @fn_streq(ptr %t95, ptr @.str335) - %t97 = icmp ne i32 %t96, 0 - %t98 = zext i1 %t97 to i32 - store i32 %t98, ptr %t90 + %t93 = load ptr, ptr %t0 + %t94 = call i32 @fn_streq(ptr %t93, ptr @.str336) + %t95 = icmp ne i32 %t94, 0 + %t96 = zext i1 %t95 to i32 + store i32 %t96, ptr %t72 br label %scend34 scend34: - %t99 = load i32, ptr %t90 - %t100 = icmp ne i32 %t99, 0 - %t101 = zext i1 %t100 to i32 - store i32 %t101, ptr %t89 - br i1 %t100, label %scend36, label %sc35 -sc35: - %t102 = load ptr, ptr %t0 - %t103 = call i32 @fn_streq(ptr %t102, ptr @.str336) - %t104 = icmp ne i32 %t103, 0 - %t105 = zext i1 %t104 to i32 - store i32 %t105, ptr %t89 - br label %scend36 -scend36: - %t106 = load i32, ptr %t89 - %t107 = icmp ne i32 %t106, 0 - %t108 = zext i1 %t107 to i32 - store i32 %t108, ptr %t88 - br i1 %t107, label %scend38, label %sc37 -sc37: - %t109 = load ptr, ptr %t0 - %t110 = call i32 @fn_streq(ptr %t109, ptr @.str337) - %t111 = icmp ne i32 %t110, 0 - %t112 = zext i1 %t111 to i32 - store i32 %t112, ptr %t88 - br label %scend38 -scend38: - %t113 = load i32, ptr %t88 - %t114 = icmp ne i32 %t113, 0 - br i1 %t114, label %then39, label %ifend41 -then39: + %t97 = load i32, ptr %t72 + %t98 = icmp ne i32 %t97, 0 + br i1 %t98, label %then35, label %ifend37 +then35: store i32 1, ptr %retval br label %ret -ifend41: - %t116 = load ptr, ptr %t0 - %t117 = call i32 @fn_streq(ptr %t116, ptr @.str338) - %t118 = icmp ne i32 %t117, 0 - %t119 = zext i1 %t118 to i32 - store i32 %t119, ptr %t115 - br i1 %t118, label %scend43, label %sc42 -sc42: - %t120 = load ptr, ptr %t0 - %t121 = call i32 @fn_streq(ptr %t120, ptr @.str339) - %t122 = icmp ne i32 %t121, 0 - %t123 = zext i1 %t122 to i32 - store i32 %t123, ptr %t115 - br label %scend43 -scend43: - %t124 = load i32, ptr %t115 - %t125 = icmp ne i32 %t124, 0 - br i1 %t125, label %then44, label %ifend46 -then44: +ifend37: + %t100 = load ptr, ptr %t0 + %t101 = call i32 @fn_streq(ptr %t100, ptr @.str337) + %t102 = icmp ne i32 %t101, 0 + %t103 = zext i1 %t102 to i32 + store i32 %t103, ptr %t99 + br i1 %t102, label %scend39, label %sc38 +sc38: + %t104 = load ptr, ptr %t0 + %t105 = call i32 @fn_streq(ptr %t104, ptr @.str338) + %t106 = icmp ne i32 %t105, 0 + %t107 = zext i1 %t106 to i32 + store i32 %t107, ptr %t99 + br label %scend39 +scend39: + %t108 = load i32, ptr %t99 + %t109 = icmp ne i32 %t108, 0 + br i1 %t109, label %then40, label %ifend42 +then40: store i32 1, ptr %retval br label %ret -ifend46: - %t127 = load ptr, ptr %t0 - %t128 = call i32 @fn_streq(ptr %t127, ptr @.str340) - %t129 = icmp ne i32 %t128, 0 - %t130 = zext i1 %t129 to i32 - store i32 %t130, ptr %t126 - br i1 %t129, label %scend48, label %sc47 -sc47: - %t131 = load ptr, ptr %t0 - %t132 = call i32 @fn_streq(ptr %t131, ptr @.str341) - %t133 = icmp ne i32 %t132, 0 - %t134 = zext i1 %t133 to i32 - store i32 %t134, ptr %t126 - br label %scend48 -scend48: - %t135 = load i32, ptr %t126 - %t136 = icmp ne i32 %t135, 0 - br i1 %t136, label %then49, label %ifend51 -then49: +ifend42: + %t111 = load ptr, ptr %t0 + %t112 = call i32 @fn_streq(ptr %t111, ptr @.str339) + %t113 = icmp ne i32 %t112, 0 + %t114 = zext i1 %t113 to i32 + store i32 %t114, ptr %t110 + br i1 %t113, label %scend44, label %sc43 +sc43: + %t115 = load ptr, ptr %t0 + %t116 = call i32 @fn_streq(ptr %t115, ptr @.str340) + %t117 = icmp ne i32 %t116, 0 + %t118 = zext i1 %t117 to i32 + store i32 %t118, ptr %t110 + br label %scend44 +scend44: + %t119 = load i32, ptr %t110 + %t120 = icmp ne i32 %t119, 0 + br i1 %t120, label %then45, label %ifend47 +then45: store i32 1, ptr %retval br label %ret -ifend51: +ifend47: store i32 0, ptr %retval br label %ret ret: - %t137 = load i32, ptr %retval - ret i32 %t137 + %t121 = load i32, ptr %retval + ret i32 %t121 } define ptr @fn_emit_bind(ptr %arg_rest) { @@ -11645,13 +11614,13 @@ entry: store ptr %arg_rest, ptr %t0 %t1 = call ptr @fn_nreg() store ptr %t1, ptr %t2 - call void @fn_emit(ptr @.str342) + call void @fn_emit(ptr @.str341) %t3 = load ptr, ptr %t2 call void @fn_emit(ptr %t3) - call void @fn_emit(ptr @.str343) + call void @fn_emit(ptr @.str342) %t4 = load ptr, ptr %t0 call void @fn_emit(ptr %t4) - call void @fn_emit(ptr @.str344) + call void @fn_emit(ptr @.str343) %t5 = load ptr, ptr %t2 store ptr %t5, ptr %retval br label %ret @@ -11693,550 +11662,518 @@ entry: %retval = alloca ptr %t0 = alloca ptr %t1 = alloca ptr - %t11 = alloca ptr - %t16 = alloca ptr - %t27 = alloca ptr - %t30 = alloca ptr - %t35 = alloca ptr - %t49 = alloca ptr + %t7 = alloca ptr + %t12 = alloca ptr + %t23 = alloca ptr + %t26 = alloca ptr + %t31 = alloca ptr + %t45 = alloca ptr + %t48 = alloca ptr %t52 = alloca ptr %t56 = alloca ptr - %t60 = alloca ptr - %t71 = alloca ptr - %t74 = alloca ptr + %t67 = alloca ptr + %t70 = alloca ptr + %t73 = alloca ptr %t77 = alloca ptr - %t81 = alloca ptr - %t86 = alloca ptr - %t95 = alloca ptr - %t100 = alloca ptr - %t111 = alloca ptr - %t114 = alloca ptr - %t123 = alloca i32 - %t136 = alloca ptr - %t139 = alloca ptr - %t142 = alloca ptr - %t147 = alloca ptr - %t148 = alloca ptr - %t165 = alloca ptr - %t176 = alloca ptr - %t179 = alloca ptr - %t182 = alloca ptr - %t187 = alloca ptr - %t204 = alloca ptr - %t209 = alloca ptr - %t220 = alloca ptr - %t228 = alloca ptr - %t236 = alloca ptr - %t249 = alloca ptr - %t251 = alloca ptr - %t258 = alloca ptr - %t268 = alloca ptr - %t281 = alloca ptr - %t292 = alloca ptr - %t303 = alloca ptr - %t306 = alloca ptr - %t308 = alloca ptr - %t321 = alloca ptr - %t324 = alloca ptr - %t327 = alloca ptr - %t329 = alloca ptr + %t82 = alloca ptr + %t91 = alloca ptr + %t94 = alloca ptr + %t103 = alloca i32 + %t116 = alloca ptr + %t119 = alloca ptr + %t122 = alloca ptr + %t127 = alloca ptr + %t128 = alloca ptr + %t145 = alloca ptr + %t156 = alloca ptr + %t159 = alloca ptr + %t162 = alloca ptr + %t167 = alloca ptr + %t184 = alloca ptr + %t189 = alloca ptr + %t200 = alloca ptr + %t208 = alloca ptr + %t216 = alloca ptr + %t229 = alloca ptr + %t231 = alloca ptr + %t238 = alloca ptr + %t248 = alloca ptr + %t261 = alloca ptr + %t272 = alloca ptr + %t283 = alloca ptr + %t286 = alloca ptr + %t288 = alloca ptr + %t301 = alloca ptr + %t304 = alloca ptr + %t307 = alloca ptr + %t309 = 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_streq(ptr %t2, ptr @.str345) + %t3 = call i32 @fn_streq(ptr %t2, ptr @.str344) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: - %t5 = call ptr @fn_val(ptr @.str346, ptr @.str347) - store ptr %t5, ptr %retval + %t5 = load ptr, ptr %t1 + %t6 = call ptr @fn_arg_code(ptr %t5, i32 0) + store ptr %t6, ptr %t7 + %t8 = load ptr, ptr %t7 + %t9 = call ptr @fn_sconcat(ptr %t8, ptr @.str346) + %t10 = call ptr @fn_sconcat(ptr @.str345, ptr %t9) + %t11 = call ptr @fn_emit_bind(ptr %t10) + store ptr %t11, ptr %t12 + %t13 = load ptr, ptr %t12 + %t14 = call ptr @fn_sconcat(ptr %t13, ptr @.str348) + %t15 = call ptr @fn_sconcat(ptr @.str347, ptr %t14) + %t16 = call ptr @fn_emit_bind(ptr %t15) + %t17 = call ptr @fn_val(ptr %t16, ptr @.str349) + store ptr %t17, ptr %retval br label %ret ifend2: - %t6 = load ptr, ptr %t0 - %t7 = call i32 @fn_streq(ptr %t6, ptr @.str348) - %t8 = icmp ne i32 %t7, 0 - br i1 %t8, label %then3, label %ifend5 + %t18 = load ptr, ptr %t0 + %t19 = call i32 @fn_streq(ptr %t18, ptr @.str350) + %t20 = icmp ne i32 %t19, 0 + br i1 %t20, label %then3, label %ifend5 then3: - %t9 = load ptr, ptr %t1 - %t10 = call ptr @fn_arg_code(ptr %t9, i32 0) - store ptr %t10, ptr %t11 - %t12 = load ptr, ptr %t11 - %t13 = call ptr @fn_sconcat(ptr %t12, ptr @.str350) - %t14 = call ptr @fn_sconcat(ptr @.str349, ptr %t13) - %t15 = call ptr @fn_emit_bind(ptr %t14) - store ptr %t15, ptr %t16 - %t17 = load ptr, ptr %t16 - %t18 = call ptr @fn_sconcat(ptr %t17, ptr @.str352) - %t19 = call ptr @fn_sconcat(ptr @.str351, ptr %t18) - %t20 = call ptr @fn_emit_bind(ptr %t19) - %t21 = call ptr @fn_val(ptr %t20, ptr @.str353) - store ptr %t21, ptr %retval + %t21 = load ptr, ptr %t1 + %t22 = call ptr @fn_arg_code(ptr %t21, i32 0) + store ptr %t22, ptr %t23 + %t24 = load ptr, ptr %t1 + %t25 = call ptr @fn_arg_code(ptr %t24, i32 1) + store ptr %t25, ptr %t26 + %t27 = load ptr, ptr %t26 + %t28 = call ptr @fn_sconcat(ptr %t27, ptr @.str352) + %t29 = call ptr @fn_sconcat(ptr @.str351, ptr %t28) + %t30 = call ptr @fn_emit_bind(ptr %t29) + store ptr %t30, ptr %t31 + %t32 = load ptr, ptr %t23 + %t33 = load ptr, ptr %t31 + %t34 = call ptr @fn_sconcat(ptr %t33, ptr @.str355) + %t35 = call ptr @fn_sconcat(ptr @.str354, ptr %t34) + %t36 = call ptr @fn_sconcat(ptr %t32, ptr %t35) + %t37 = call ptr @fn_sconcat(ptr @.str353, ptr %t36) + %t38 = call ptr @fn_emit_bind(ptr %t37) + %t39 = call ptr @fn_val(ptr %t38, ptr @.str356) + store ptr %t39, ptr %retval br label %ret ifend5: - %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_streq(ptr %t22, ptr @.str354) - %t24 = icmp ne i32 %t23, 0 - br i1 %t24, label %then6, label %ifend8 + %t40 = load ptr, ptr %t0 + %t41 = call i32 @fn_streq(ptr %t40, ptr @.str357) + %t42 = icmp ne i32 %t41, 0 + br i1 %t42, label %then6, label %ifend8 then6: - %t25 = load ptr, ptr %t1 - %t26 = call ptr @fn_arg_code(ptr %t25, i32 0) - store ptr %t26, ptr %t27 - %t28 = load ptr, ptr %t1 - %t29 = call ptr @fn_arg_code(ptr %t28, i32 1) - store ptr %t29, ptr %t30 - %t31 = load ptr, ptr %t30 - %t32 = call ptr @fn_sconcat(ptr %t31, ptr @.str356) - %t33 = call ptr @fn_sconcat(ptr @.str355, ptr %t32) - %t34 = call ptr @fn_emit_bind(ptr %t33) - store ptr %t34, ptr %t35 - %t36 = load ptr, ptr %t27 - %t37 = load ptr, ptr %t35 - %t38 = call ptr @fn_sconcat(ptr %t37, ptr @.str359) - %t39 = call ptr @fn_sconcat(ptr @.str358, ptr %t38) - %t40 = call ptr @fn_sconcat(ptr %t36, ptr %t39) - %t41 = call ptr @fn_sconcat(ptr @.str357, ptr %t40) - %t42 = call ptr @fn_emit_bind(ptr %t41) - %t43 = call ptr @fn_val(ptr %t42, ptr @.str360) - store ptr %t43, ptr %retval - br label %ret -ifend8: - %t44 = load ptr, ptr %t0 - %t45 = call i32 @fn_streq(ptr %t44, ptr @.str361) - %t46 = icmp ne i32 %t45, 0 - br i1 %t46, label %then9, label %ifend11 -then9: - %t47 = load ptr, ptr %t1 - %t48 = call ptr @fn_arg_code(ptr %t47, i32 0) - store ptr %t48, ptr %t49 - %t50 = load ptr, ptr %t1 - %t51 = call ptr @fn_arg_code(ptr %t50, i32 1) + %t43 = load ptr, ptr %t1 + %t44 = call ptr @fn_arg_code(ptr %t43, i32 0) + store ptr %t44, ptr %t45 + %t46 = load ptr, ptr %t1 + %t47 = call ptr @fn_arg_code(ptr %t46, i32 1) + store ptr %t47, ptr %t48 + %t49 = load ptr, ptr %t45 + %t50 = load ptr, ptr %t48 + %t51 = call ptr @fn_emit_gep_i8(ptr %t49, ptr %t50) store ptr %t51, ptr %t52 - %t53 = load ptr, ptr %t49 - %t54 = load ptr, ptr %t52 - %t55 = call ptr @fn_emit_gep_i8(ptr %t53, ptr %t54) + %t53 = load ptr, ptr %t52 + %t54 = call ptr @fn_sconcat(ptr @.str358, ptr %t53) + %t55 = call ptr @fn_emit_bind(ptr %t54) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t56 - %t58 = call ptr @fn_sconcat(ptr @.str362, ptr %t57) - %t59 = call ptr @fn_emit_bind(ptr %t58) - store ptr %t59, ptr %t60 - %t61 = load ptr, ptr %t60 - %t62 = call ptr @fn_sconcat(ptr %t61, ptr @.str364) - %t63 = call ptr @fn_sconcat(ptr @.str363, ptr %t62) - %t64 = call ptr @fn_emit_bind(ptr %t63) - %t65 = call ptr @fn_val(ptr %t64, ptr @.str365) - store ptr %t65, ptr %retval + %t58 = call ptr @fn_sconcat(ptr %t57, ptr @.str360) + %t59 = call ptr @fn_sconcat(ptr @.str359, ptr %t58) + %t60 = call ptr @fn_emit_bind(ptr %t59) + %t61 = call ptr @fn_val(ptr %t60, ptr @.str361) + store ptr %t61, ptr %retval + br label %ret +ifend8: + %t62 = load ptr, ptr %t0 + %t63 = call i32 @fn_streq(ptr %t62, ptr @.str362) + %t64 = icmp ne i32 %t63, 0 + br i1 %t64, label %then9, label %ifend11 +then9: + %t65 = load ptr, ptr %t1 + %t66 = call ptr @fn_arg_code(ptr %t65, i32 0) + store ptr %t66, ptr %t67 + %t68 = load ptr, ptr %t1 + %t69 = call ptr @fn_arg_code(ptr %t68, i32 1) + store ptr %t69, ptr %t70 + %t71 = load ptr, ptr %t1 + %t72 = call ptr @fn_arg_code(ptr %t71, i32 2) + store ptr %t72, ptr %t73 + %t74 = load ptr, ptr %t67 + %t75 = load ptr, ptr %t70 + %t76 = call ptr @fn_emit_gep_i8(ptr %t74, ptr %t75) + store ptr %t76, ptr %t77 + %t78 = load ptr, ptr %t73 + %t79 = call ptr @fn_sconcat(ptr %t78, ptr @.str364) + %t80 = call ptr @fn_sconcat(ptr @.str363, ptr %t79) + %t81 = call ptr @fn_emit_bind(ptr %t80) + store ptr %t81, ptr %t82 + call void @fn_emit(ptr @.str365) + %t83 = load ptr, ptr %t82 + call void @fn_emit(ptr %t83) + call void @fn_emit(ptr @.str366) + %t84 = load ptr, ptr %t77 + call void @fn_emit(ptr %t84) + call void @fn_emit(ptr @.str367) + %t85 = call ptr @fn_val(ptr @.str368, ptr @.str369) + store ptr %t85, ptr %retval br label %ret ifend11: - %t66 = load ptr, ptr %t0 - %t67 = call i32 @fn_streq(ptr %t66, ptr @.str366) - %t68 = icmp ne i32 %t67, 0 - br i1 %t68, label %then12, label %ifend14 + %t86 = load ptr, ptr %t0 + %t87 = call i32 @fn_streq(ptr %t86, ptr @.str370) + %t88 = icmp ne i32 %t87, 0 + br i1 %t88, label %then12, label %ifend14 then12: - %t69 = load ptr, ptr %t1 - %t70 = call ptr @fn_arg_code(ptr %t69, i32 0) - store ptr %t70, ptr %t71 - %t72 = load ptr, ptr %t1 - %t73 = call ptr @fn_arg_code(ptr %t72, i32 1) - store ptr %t73, ptr %t74 - %t75 = load ptr, ptr %t1 - %t76 = call ptr @fn_arg_code(ptr %t75, i32 2) - store ptr %t76, ptr %t77 - %t78 = load ptr, ptr %t71 - %t79 = load ptr, ptr %t74 - %t80 = call ptr @fn_emit_gep_i8(ptr %t78, ptr %t79) - store ptr %t80, ptr %t81 - %t82 = load ptr, ptr %t77 - %t83 = call ptr @fn_sconcat(ptr %t82, ptr @.str368) - %t84 = call ptr @fn_sconcat(ptr @.str367, ptr %t83) - %t85 = call ptr @fn_emit_bind(ptr %t84) - store ptr %t85, ptr %t86 - call void @fn_emit(ptr @.str369) - %t87 = load ptr, ptr %t86 - call void @fn_emit(ptr %t87) - call void @fn_emit(ptr @.str370) - %t88 = load ptr, ptr %t81 - call void @fn_emit(ptr %t88) - call void @fn_emit(ptr @.str371) - %t89 = call ptr @fn_val(ptr @.str372, ptr @.str373) - store ptr %t89, ptr %retval + %t89 = load ptr, ptr %t1 + %t90 = call ptr @fn_arg_code(ptr %t89, i32 0) + store ptr %t90, ptr %t91 + %t92 = load ptr, ptr %t1 + %t93 = call ptr @fn_arg_code(ptr %t92, i32 1) + store ptr %t93, ptr %t94 + %t95 = load ptr, ptr %t91 + %t96 = load ptr, ptr %t94 + %t97 = call ptr @fn_sconcat(ptr %t96, ptr @.str373) + %t98 = call ptr @fn_sconcat(ptr @.str372, ptr %t97) + %t99 = call ptr @fn_sconcat(ptr %t95, ptr %t98) + %t100 = call ptr @fn_sconcat(ptr @.str371, ptr %t99) + %t101 = call ptr @fn_emit_bind(ptr %t100) + %t102 = call ptr @fn_val(ptr %t101, ptr @.str374) + store ptr %t102, ptr %retval br label %ret ifend14: - %t90 = load ptr, ptr %t0 - %t91 = call i32 @fn_streq(ptr %t90, ptr @.str374) - %t92 = icmp ne i32 %t91, 0 - br i1 %t92, label %then15, label %ifend17 -then15: - %t93 = load ptr, ptr %t1 - %t94 = call ptr @fn_arg_code(ptr %t93, i32 0) - store ptr %t94, ptr %t95 - %t96 = load ptr, ptr %t95 - %t97 = call ptr @fn_sconcat(ptr %t96, ptr @.str376) - %t98 = call ptr @fn_sconcat(ptr @.str375, ptr %t97) - %t99 = call ptr @fn_emit_bind(ptr %t98) - store ptr %t99, ptr %t100 - %t101 = load ptr, ptr %t100 - %t102 = call ptr @fn_sconcat(ptr %t101, ptr @.str378) - %t103 = call ptr @fn_sconcat(ptr @.str377, ptr %t102) - %t104 = call ptr @fn_emit_bind(ptr %t103) - %t105 = call ptr @fn_val(ptr %t104, ptr @.str379) - store ptr %t105, ptr %retval + %t104 = load ptr, ptr %t0 + %t105 = call i32 @fn_streq(ptr %t104, ptr @.str375) + %t106 = icmp ne i32 %t105, 0 + %t107 = zext i1 %t106 to i32 + store i32 %t107, ptr %t103 + br i1 %t106, label %scend16, label %sc15 +sc15: + %t108 = load ptr, ptr %t0 + %t109 = call i32 @fn_streq(ptr %t108, ptr @.str376) + %t110 = icmp ne i32 %t109, 0 + %t111 = zext i1 %t110 to i32 + store i32 %t111, ptr %t103 + br label %scend16 +scend16: + %t112 = load i32, ptr %t103 + %t113 = icmp ne i32 %t112, 0 + br i1 %t113, label %then17, label %ifend19 +then17: + %t114 = load ptr, ptr %t1 + %t115 = call ptr @fn_arg_code(ptr %t114, i32 0) + store ptr %t115, ptr %t116 + %t117 = load ptr, ptr %t1 + %t118 = call ptr @fn_arg_code(ptr %t117, i32 1) + store ptr %t118, ptr %t119 + %t120 = load ptr, ptr %t1 + %t121 = call ptr @fn_arg_code(ptr %t120, i32 2) + store ptr %t121, ptr %t122 + %t123 = load ptr, ptr %t122 + %t124 = call ptr @fn_sconcat(ptr %t123, ptr @.str378) + %t125 = call ptr @fn_sconcat(ptr @.str377, ptr %t124) + %t126 = call ptr @fn_emit_bind(ptr %t125) + store ptr %t126, ptr %t127 + store ptr @.str379, ptr %t128 + %t129 = load ptr, ptr %t0 + %t130 = call i32 @fn_streq(ptr %t129, ptr @.str380) + %t131 = icmp ne i32 %t130, 0 + br i1 %t131, label %then20, label %ifend22 +then20: + store ptr @.str381, ptr %t128 + br label %ifend22 +ifend22: + %t132 = load ptr, ptr %t128 + %t133 = load ptr, ptr %t119 + %t134 = load ptr, ptr %t127 + %t135 = load ptr, ptr %t116 + %t136 = call ptr @fn_sconcat(ptr %t135, ptr @.str386) + %t137 = call ptr @fn_sconcat(ptr @.str385, ptr %t136) + %t138 = call ptr @fn_sconcat(ptr %t134, ptr %t137) + %t139 = call ptr @fn_sconcat(ptr @.str384, ptr %t138) + %t140 = call ptr @fn_sconcat(ptr %t133, ptr %t139) + %t141 = call ptr @fn_sconcat(ptr @.str383, ptr %t140) + %t142 = call ptr @fn_sconcat(ptr %t132, ptr %t141) + %t143 = call ptr @fn_sconcat(ptr @.str382, ptr %t142) + %t144 = call ptr @fn_emit_bind(ptr %t143) + store ptr %t144, ptr %t145 + %t146 = load ptr, ptr %t145 + %t147 = call ptr @fn_sconcat(ptr %t146, ptr @.str388) + %t148 = call ptr @fn_sconcat(ptr @.str387, ptr %t147) + %t149 = call ptr @fn_emit_bind(ptr %t148) + %t150 = call ptr @fn_val(ptr %t149, ptr @.str389) + store ptr %t150, ptr %retval br label %ret -ifend17: - %t106 = load ptr, ptr %t0 - %t107 = call i32 @fn_streq(ptr %t106, ptr @.str380) - %t108 = icmp ne i32 %t107, 0 - br i1 %t108, label %then18, label %ifend20 -then18: - %t109 = load ptr, ptr %t1 - %t110 = call ptr @fn_arg_code(ptr %t109, i32 0) - store ptr %t110, ptr %t111 - %t112 = load ptr, ptr %t1 - %t113 = call ptr @fn_arg_code(ptr %t112, i32 1) - store ptr %t113, ptr %t114 - %t115 = load ptr, ptr %t111 - %t116 = load ptr, ptr %t114 - %t117 = call ptr @fn_sconcat(ptr %t116, ptr @.str383) - %t118 = call ptr @fn_sconcat(ptr @.str382, ptr %t117) - %t119 = call ptr @fn_sconcat(ptr %t115, ptr %t118) - %t120 = call ptr @fn_sconcat(ptr @.str381, ptr %t119) - %t121 = call ptr @fn_emit_bind(ptr %t120) - %t122 = call ptr @fn_val(ptr %t121, ptr @.str384) - store ptr %t122, ptr %retval - br label %ret -ifend20: - %t124 = load ptr, ptr %t0 - %t125 = call i32 @fn_streq(ptr %t124, ptr @.str385) - %t126 = icmp ne i32 %t125, 0 - %t127 = zext i1 %t126 to i32 - store i32 %t127, ptr %t123 - br i1 %t126, label %scend22, label %sc21 -sc21: - %t128 = load ptr, ptr %t0 - %t129 = call i32 @fn_streq(ptr %t128, ptr @.str386) - %t130 = icmp ne i32 %t129, 0 - %t131 = zext i1 %t130 to i32 - store i32 %t131, ptr %t123 - br label %scend22 -scend22: - %t132 = load i32, ptr %t123 - %t133 = icmp ne i32 %t132, 0 - br i1 %t133, label %then23, label %ifend25 +ifend19: + %t151 = load ptr, ptr %t0 + %t152 = call i32 @fn_streq(ptr %t151, ptr @.str390) + %t153 = icmp ne i32 %t152, 0 + br i1 %t153, label %then23, label %ifend25 then23: - %t134 = load ptr, ptr %t1 - %t135 = call ptr @fn_arg_code(ptr %t134, i32 0) - store ptr %t135, ptr %t136 - %t137 = load ptr, ptr %t1 - %t138 = call ptr @fn_arg_code(ptr %t137, i32 1) - store ptr %t138, ptr %t139 - %t140 = load ptr, ptr %t1 - %t141 = call ptr @fn_arg_code(ptr %t140, i32 2) - store ptr %t141, ptr %t142 - %t143 = load ptr, ptr %t142 - %t144 = call ptr @fn_sconcat(ptr %t143, ptr @.str388) - %t145 = call ptr @fn_sconcat(ptr @.str387, ptr %t144) - %t146 = call ptr @fn_emit_bind(ptr %t145) - store ptr %t146, ptr %t147 - store ptr @.str389, ptr %t148 - %t149 = load ptr, ptr %t0 - %t150 = call i32 @fn_streq(ptr %t149, ptr @.str390) - %t151 = icmp ne i32 %t150, 0 - br i1 %t151, label %then26, label %ifend28 -then26: - store ptr @.str391, ptr %t148 - br label %ifend28 -ifend28: - %t152 = load ptr, ptr %t148 - %t153 = load ptr, ptr %t139 - %t154 = load ptr, ptr %t147 - %t155 = load ptr, ptr %t136 - %t156 = call ptr @fn_sconcat(ptr %t155, ptr @.str396) - %t157 = call ptr @fn_sconcat(ptr @.str395, ptr %t156) - %t158 = call ptr @fn_sconcat(ptr %t154, ptr %t157) - %t159 = call ptr @fn_sconcat(ptr @.str394, ptr %t158) - %t160 = call ptr @fn_sconcat(ptr %t153, ptr %t159) - %t161 = call ptr @fn_sconcat(ptr @.str393, ptr %t160) - %t162 = call ptr @fn_sconcat(ptr %t152, ptr %t161) - %t163 = call ptr @fn_sconcat(ptr @.str392, ptr %t162) - %t164 = call ptr @fn_emit_bind(ptr %t163) - store ptr %t164, ptr %t165 - %t166 = load ptr, ptr %t165 - %t167 = call ptr @fn_sconcat(ptr %t166, ptr @.str398) - %t168 = call ptr @fn_sconcat(ptr @.str397, ptr %t167) - %t169 = call ptr @fn_emit_bind(ptr %t168) - %t170 = call ptr @fn_val(ptr %t169, ptr @.str399) - store ptr %t170, ptr %retval + %t154 = load ptr, ptr %t1 + %t155 = call ptr @fn_arg_code(ptr %t154, i32 0) + store ptr %t155, ptr %t156 + %t157 = load ptr, ptr %t1 + %t158 = call ptr @fn_arg_code(ptr %t157, i32 1) + store ptr %t158, ptr %t159 + %t160 = load ptr, ptr %t1 + %t161 = call ptr @fn_arg_code(ptr %t160, i32 2) + store ptr %t161, ptr %t162 + %t163 = load ptr, ptr %t159 + %t164 = call ptr @fn_sconcat(ptr %t163, ptr @.str392) + %t165 = call ptr @fn_sconcat(ptr @.str391, ptr %t164) + %t166 = call ptr @fn_emit_bind(ptr %t165) + store ptr %t166, ptr %t167 + %t168 = load ptr, ptr %t156 + %t169 = load ptr, ptr %t167 + %t170 = load ptr, ptr %t162 + %t171 = call ptr @fn_sconcat(ptr %t170, ptr @.str396) + %t172 = call ptr @fn_sconcat(ptr @.str395, ptr %t171) + %t173 = call ptr @fn_sconcat(ptr %t169, ptr %t172) + %t174 = call ptr @fn_sconcat(ptr @.str394, ptr %t173) + %t175 = call ptr @fn_sconcat(ptr %t168, ptr %t174) + %t176 = call ptr @fn_sconcat(ptr @.str393, ptr %t175) + %t177 = call ptr @fn_emit_bind(ptr %t176) + %t178 = call ptr @fn_val(ptr %t177, ptr @.str397) + store ptr %t178, ptr %retval br label %ret ifend25: - %t171 = load ptr, ptr %t0 - %t172 = call i32 @fn_streq(ptr %t171, ptr @.str400) - %t173 = icmp ne i32 %t172, 0 - br i1 %t173, label %then29, label %ifend31 + %t179 = load ptr, ptr %t0 + %t180 = call i32 @fn_streq(ptr %t179, ptr @.str398) + %t181 = icmp ne i32 %t180, 0 + br i1 %t181, label %then26, label %ifend28 +then26: + %t182 = load ptr, ptr %t1 + %t183 = call ptr @fn_arg_code(ptr %t182, i32 0) + store ptr %t183, ptr %t184 + %t185 = load ptr, ptr %t184 + %t186 = call ptr @fn_sconcat(ptr %t185, ptr @.str400) + %t187 = call ptr @fn_sconcat(ptr @.str399, ptr %t186) + %t188 = call ptr @fn_emit_bind(ptr %t187) + store ptr %t188, ptr %t189 + %t190 = load ptr, ptr %t189 + %t191 = call ptr @fn_sconcat(ptr %t190, ptr @.str402) + %t192 = call ptr @fn_sconcat(ptr @.str401, ptr %t191) + %t193 = call ptr @fn_emit_bind(ptr %t192) + %t194 = call ptr @fn_val(ptr %t193, ptr @.str403) + store ptr %t194, ptr %retval + br label %ret +ifend28: + %t195 = load ptr, ptr %t0 + %t196 = call i32 @fn_streq(ptr %t195, ptr @.str404) + %t197 = icmp ne i32 %t196, 0 + br i1 %t197, label %then29, label %ifend31 then29: - %t174 = load ptr, ptr %t1 - %t175 = call ptr @fn_arg_code(ptr %t174, i32 0) - store ptr %t175, ptr %t176 - %t177 = load ptr, ptr %t1 - %t178 = call ptr @fn_arg_code(ptr %t177, i32 1) - store ptr %t178, ptr %t179 - %t180 = load ptr, ptr %t1 - %t181 = call ptr @fn_arg_code(ptr %t180, i32 2) - store ptr %t181, ptr %t182 - %t183 = load ptr, ptr %t179 - %t184 = call ptr @fn_sconcat(ptr %t183, ptr @.str402) - %t185 = call ptr @fn_sconcat(ptr @.str401, ptr %t184) - %t186 = call ptr @fn_emit_bind(ptr %t185) - store ptr %t186, ptr %t187 - %t188 = load ptr, ptr %t176 - %t189 = load ptr, ptr %t187 - %t190 = load ptr, ptr %t182 - %t191 = call ptr @fn_sconcat(ptr %t190, ptr @.str406) - %t192 = call ptr @fn_sconcat(ptr @.str405, ptr %t191) - %t193 = call ptr @fn_sconcat(ptr %t189, ptr %t192) - %t194 = call ptr @fn_sconcat(ptr @.str404, ptr %t193) - %t195 = call ptr @fn_sconcat(ptr %t188, ptr %t194) - %t196 = call ptr @fn_sconcat(ptr @.str403, ptr %t195) - %t197 = call ptr @fn_emit_bind(ptr %t196) - %t198 = call ptr @fn_val(ptr %t197, ptr @.str407) - store ptr %t198, ptr %retval + %t198 = load ptr, ptr %t1 + %t199 = call ptr @fn_arg_code(ptr %t198, i32 0) + store ptr %t199, ptr %t200 + call void @fn_emit(ptr @.str405) + %t201 = load ptr, ptr %t200 + call void @fn_emit(ptr %t201) + call void @fn_emit(ptr @.str406) + %t202 = call ptr @fn_val(ptr @.str407, ptr @.str408) + store ptr %t202, ptr %retval br label %ret ifend31: - %t199 = load ptr, ptr %t0 - %t200 = call i32 @fn_streq(ptr %t199, ptr @.str408) - %t201 = icmp ne i32 %t200, 0 - br i1 %t201, label %then32, label %ifend34 + %t203 = load ptr, ptr %t0 + %t204 = call i32 @fn_streq(ptr %t203, ptr @.str409) + %t205 = icmp ne i32 %t204, 0 + br i1 %t205, label %then32, label %ifend34 then32: - %t202 = load ptr, ptr %t1 - %t203 = call ptr @fn_arg_code(ptr %t202, i32 0) - store ptr %t203, ptr %t204 - %t205 = load ptr, ptr %t204 - %t206 = call ptr @fn_sconcat(ptr %t205, ptr @.str410) - %t207 = call ptr @fn_sconcat(ptr @.str409, ptr %t206) - %t208 = call ptr @fn_emit_bind(ptr %t207) - store ptr %t208, ptr %t209 - %t210 = load ptr, ptr %t209 - %t211 = call ptr @fn_sconcat(ptr %t210, ptr @.str412) - %t212 = call ptr @fn_sconcat(ptr @.str411, ptr %t211) - %t213 = call ptr @fn_emit_bind(ptr %t212) - %t214 = call ptr @fn_val(ptr %t213, ptr @.str413) - store ptr %t214, ptr %retval + %t206 = load ptr, ptr %t1 + %t207 = call ptr @fn_arg_code(ptr %t206, i32 0) + store ptr %t207, ptr %t208 + call void @fn_emit(ptr @.str410) + %t209 = load ptr, ptr %t208 + call void @fn_emit(ptr %t209) + call void @fn_emit(ptr @.str411) + %t210 = call ptr @fn_val(ptr @.str412, ptr @.str413) + store ptr %t210, ptr %retval br label %ret ifend34: - %t215 = load ptr, ptr %t0 - %t216 = call i32 @fn_streq(ptr %t215, ptr @.str414) - %t217 = icmp ne i32 %t216, 0 - br i1 %t217, label %then35, label %ifend37 + %t211 = load ptr, ptr %t0 + %t212 = call i32 @fn_streq(ptr %t211, ptr @.str414) + %t213 = icmp ne i32 %t212, 0 + br i1 %t213, label %then35, label %ifend37 then35: - %t218 = load ptr, ptr %t1 - %t219 = call ptr @fn_arg_code(ptr %t218, i32 0) - store ptr %t219, ptr %t220 + %t214 = load ptr, ptr %t1 + %t215 = call ptr @fn_arg_code(ptr %t214, i32 0) + store ptr %t215, ptr %t216 call void @fn_emit(ptr @.str415) - %t221 = load ptr, ptr %t220 - call void @fn_emit(ptr %t221) + %t217 = load ptr, ptr %t216 + call void @fn_emit(ptr %t217) call void @fn_emit(ptr @.str416) - %t222 = call ptr @fn_val(ptr @.str417, ptr @.str418) - store ptr %t222, ptr %retval + %t218 = call ptr @fn_val(ptr @.str417, ptr @.str418) + store ptr %t218, ptr %retval br label %ret ifend37: - %t223 = load ptr, ptr %t0 - %t224 = call i32 @fn_streq(ptr %t223, ptr @.str419) - %t225 = icmp ne i32 %t224, 0 - br i1 %t225, label %then38, label %ifend40 + %t219 = load ptr, ptr %t0 + %t220 = call i32 @fn_streq(ptr %t219, ptr @.str419) + %t221 = icmp ne i32 %t220, 0 + br i1 %t221, label %then38, label %ifend40 then38: - %t226 = load ptr, ptr %t1 - %t227 = call ptr @fn_arg_code(ptr %t226, i32 0) - store ptr %t227, ptr %t228 - call void @fn_emit(ptr @.str420) - %t229 = load ptr, ptr %t228 - call void @fn_emit(ptr %t229) - call void @fn_emit(ptr @.str421) - %t230 = call ptr @fn_val(ptr @.str422, ptr @.str423) - store ptr %t230, ptr %retval + %t222 = call ptr @fn_emit_bind(ptr @.str420) + %t223 = call ptr @fn_val(ptr %t222, ptr @.str421) + store ptr %t223, ptr %retval br label %ret ifend40: - %t231 = load ptr, ptr %t0 - %t232 = call i32 @fn_streq(ptr %t231, ptr @.str424) - %t233 = icmp ne i32 %t232, 0 - br i1 %t233, label %then41, label %ifend43 + %t224 = load ptr, ptr %t0 + %t225 = call i32 @fn_streq(ptr %t224, ptr @.str422) + %t226 = icmp ne i32 %t225, 0 + br i1 %t226, label %then41, label %ifend43 then41: - %t234 = load ptr, ptr %t1 - %t235 = call ptr @fn_arg_code(ptr %t234, i32 0) - store ptr %t235, ptr %t236 - call void @fn_emit(ptr @.str425) - %t237 = load ptr, ptr %t236 - call void @fn_emit(ptr %t237) - call void @fn_emit(ptr @.str426) - %t238 = call ptr @fn_val(ptr @.str427, ptr @.str428) - store ptr %t238, ptr %retval + %t227 = load ptr, ptr %t1 + %t228 = call ptr @fn_arg_code(ptr %t227, i32 0) + store ptr %t228, ptr %t229 + %t230 = call ptr @fn_emit_bind(ptr @.str423) + store ptr %t230, ptr %t231 + %t232 = load ptr, ptr %t231 + %t233 = load ptr, ptr %t229 + %t234 = call ptr @fn_sconcat(ptr @.str425, ptr %t233) + %t235 = call ptr @fn_sconcat(ptr %t232, ptr %t234) + %t236 = call ptr @fn_sconcat(ptr @.str424, ptr %t235) + %t237 = call ptr @fn_emit_bind(ptr %t236) + store ptr %t237, ptr %t238 + %t239 = load ptr, ptr %t238 + %t240 = call ptr @fn_sconcat(ptr @.str426, ptr %t239) + %t241 = call ptr @fn_emit_bind(ptr %t240) + %t242 = call ptr @fn_val(ptr %t241, ptr @.str427) + store ptr %t242, ptr %retval br label %ret ifend43: - %t239 = load ptr, ptr %t0 - %t240 = call i32 @fn_streq(ptr %t239, ptr @.str429) - %t241 = icmp ne i32 %t240, 0 - br i1 %t241, label %then44, label %ifend46 + %t243 = load ptr, ptr %t0 + %t244 = call i32 @fn_streq(ptr %t243, ptr @.str428) + %t245 = icmp ne i32 %t244, 0 + br i1 %t245, label %then44, label %ifend46 then44: - %t242 = call ptr @fn_emit_bind(ptr @.str430) - %t243 = call ptr @fn_val(ptr %t242, ptr @.str431) - store ptr %t243, ptr %retval + %t246 = load ptr, ptr %t1 + %t247 = call ptr @fn_arg_code(ptr %t246, i32 0) + store ptr %t247, ptr %t248 + call void @fn_emit(ptr @.str429) + %t249 = load ptr, ptr %t248 + call void @fn_emit(ptr %t249) + call void @fn_emit(ptr @.str430) + call void @fn_emit(ptr @.str431) + store i32 1, ptr @g_g_term + %t250 = call ptr @fn_val(ptr @.str432, ptr @.str433) + store ptr %t250, ptr %retval br label %ret ifend46: - %t244 = load ptr, ptr %t0 - %t245 = call i32 @fn_streq(ptr %t244, ptr @.str432) - %t246 = icmp ne i32 %t245, 0 - br i1 %t246, label %then47, label %ifend49 + %t251 = load ptr, ptr %t0 + %t252 = call i32 @fn_streq(ptr %t251, ptr @.str434) + %t253 = icmp ne i32 %t252, 0 + br i1 %t253, label %then47, label %ifend49 then47: - %t247 = load ptr, ptr %t1 - %t248 = call ptr @fn_arg_code(ptr %t247, i32 0) - store ptr %t248, ptr %t249 - %t250 = call ptr @fn_emit_bind(ptr @.str433) - store ptr %t250, ptr %t251 - %t252 = load ptr, ptr %t251 - %t253 = load ptr, ptr %t249 - %t254 = call ptr @fn_sconcat(ptr @.str435, ptr %t253) - %t255 = call ptr @fn_sconcat(ptr %t252, ptr %t254) - %t256 = call ptr @fn_sconcat(ptr @.str434, ptr %t255) - %t257 = call ptr @fn_emit_bind(ptr %t256) - store ptr %t257, ptr %t258 - %t259 = load ptr, ptr %t258 - %t260 = call ptr @fn_sconcat(ptr @.str436, ptr %t259) - %t261 = call ptr @fn_emit_bind(ptr %t260) - %t262 = call ptr @fn_val(ptr %t261, ptr @.str437) - store ptr %t262, ptr %retval + %t254 = call ptr @fn_emit_bind(ptr @.str435) + %t255 = call ptr @fn_val(ptr %t254, ptr @.str436) + store ptr %t255, ptr %retval br label %ret ifend49: - %t263 = load ptr, ptr %t0 - %t264 = call i32 @fn_streq(ptr %t263, ptr @.str438) - %t265 = icmp ne i32 %t264, 0 - br i1 %t265, label %then50, label %ifend52 + %t256 = load ptr, ptr %t0 + %t257 = call i32 @fn_streq(ptr %t256, ptr @.str437) + %t258 = icmp ne i32 %t257, 0 + br i1 %t258, label %then50, label %ifend52 then50: - %t266 = load ptr, ptr %t1 - %t267 = call ptr @fn_arg_code(ptr %t266, i32 0) - store ptr %t267, ptr %t268 - call void @fn_emit(ptr @.str439) - %t269 = load ptr, ptr %t268 - call void @fn_emit(ptr %t269) - call void @fn_emit(ptr @.str440) - call void @fn_emit(ptr @.str441) - store i32 1, ptr @g_g_term - %t270 = call ptr @fn_val(ptr @.str442, ptr @.str443) - store ptr %t270, ptr %retval + %t259 = load ptr, ptr %t1 + %t260 = call ptr @fn_arg_code(ptr %t259, i32 0) + store ptr %t260, ptr %t261 + %t262 = load ptr, ptr %t261 + %t263 = call ptr @fn_sconcat(ptr %t262, ptr @.str439) + %t264 = call ptr @fn_sconcat(ptr @.str438, ptr %t263) + %t265 = call ptr @fn_emit_bind(ptr %t264) + %t266 = call ptr @fn_val(ptr %t265, ptr @.str440) + store ptr %t266, ptr %retval br label %ret ifend52: - %t271 = load ptr, ptr %t0 - %t272 = call i32 @fn_streq(ptr %t271, ptr @.str444) - %t273 = icmp ne i32 %t272, 0 - br i1 %t273, label %then53, label %ifend55 + %t267 = load ptr, ptr %t0 + %t268 = call i32 @fn_streq(ptr %t267, ptr @.str441) + %t269 = icmp ne i32 %t268, 0 + br i1 %t269, label %then53, label %ifend55 then53: - %t274 = call ptr @fn_emit_bind(ptr @.str445) - %t275 = call ptr @fn_val(ptr %t274, ptr @.str446) - store ptr %t275, ptr %retval + %t270 = load ptr, ptr %t1 + %t271 = call ptr @fn_arg_code(ptr %t270, i32 0) + store ptr %t271, ptr %t272 + %t273 = load ptr, ptr %t272 + %t274 = call ptr @fn_sconcat(ptr %t273, ptr @.str443) + %t275 = call ptr @fn_sconcat(ptr @.str442, ptr %t274) + %t276 = call ptr @fn_emit_bind(ptr %t275) + %t277 = call ptr @fn_val(ptr %t276, ptr @.str444) + store ptr %t277, ptr %retval br label %ret ifend55: - %t276 = load ptr, ptr %t0 - %t277 = call i32 @fn_streq(ptr %t276, ptr @.str447) - %t278 = icmp ne i32 %t277, 0 - br i1 %t278, label %then56, label %ifend58 + %t278 = load ptr, ptr %t0 + %t279 = call i32 @fn_streq(ptr %t278, ptr @.str445) + %t280 = icmp ne i32 %t279, 0 + br i1 %t280, label %then56, label %ifend58 then56: - %t279 = load ptr, ptr %t1 - %t280 = call ptr @fn_arg_code(ptr %t279, i32 0) - store ptr %t280, ptr %t281 - %t282 = load ptr, ptr %t281 - %t283 = call ptr @fn_sconcat(ptr %t282, ptr @.str449) - %t284 = call ptr @fn_sconcat(ptr @.str448, ptr %t283) - %t285 = call ptr @fn_emit_bind(ptr %t284) - %t286 = call ptr @fn_val(ptr %t285, ptr @.str450) - store ptr %t286, ptr %retval + %t281 = load ptr, ptr %t1 + %t282 = call ptr @fn_arg_code(ptr %t281, i32 0) + store ptr %t282, ptr %t283 + %t284 = load ptr, ptr %t1 + %t285 = call ptr @fn_arg_code(ptr %t284, i32 1) + store ptr %t285, ptr %t286 + %t287 = call ptr @fn_nreg() + store ptr %t287, ptr %t288 + call void @fn_emit(ptr @.str446) + %t289 = load ptr, ptr %t288 + call void @fn_emit(ptr %t289) + call void @fn_emit(ptr @.str447) + %t290 = load ptr, ptr %t283 + call void @fn_emit(ptr %t290) + call void @fn_emit(ptr @.str448) + %t291 = load ptr, ptr %t286 + call void @fn_emit(ptr %t291) + call void @fn_emit(ptr @.str449) + %t292 = load ptr, ptr %t288 + %t293 = call ptr @fn_sconcat(ptr @.str450, ptr %t292) + %t294 = call ptr @fn_emit_bind(ptr %t293) + %t295 = call ptr @fn_val(ptr %t294, ptr @.str451) + store ptr %t295, ptr %retval br label %ret ifend58: - %t287 = load ptr, ptr %t0 - %t288 = call i32 @fn_streq(ptr %t287, ptr @.str451) - %t289 = icmp ne i32 %t288, 0 - br i1 %t289, label %then59, label %ifend61 + %t296 = load ptr, ptr %t0 + %t297 = call i32 @fn_streq(ptr %t296, ptr @.str452) + %t298 = icmp ne i32 %t297, 0 + br i1 %t298, label %then59, label %ifend61 then59: - %t290 = load ptr, ptr %t1 - %t291 = call ptr @fn_arg_code(ptr %t290, i32 0) - store ptr %t291, ptr %t292 - %t293 = load ptr, ptr %t292 - %t294 = call ptr @fn_sconcat(ptr %t293, ptr @.str453) - %t295 = call ptr @fn_sconcat(ptr @.str452, ptr %t294) - %t296 = call ptr @fn_emit_bind(ptr %t295) - %t297 = call ptr @fn_val(ptr %t296, ptr @.str454) - store ptr %t297, ptr %retval - br label %ret -ifend61: - %t298 = load ptr, ptr %t0 - %t299 = call i32 @fn_streq(ptr %t298, ptr @.str455) - %t300 = icmp ne i32 %t299, 0 - br i1 %t300, label %then62, label %ifend64 -then62: - %t301 = load ptr, ptr %t1 - %t302 = call ptr @fn_arg_code(ptr %t301, i32 0) - store ptr %t302, ptr %t303 - %t304 = load ptr, ptr %t1 - %t305 = call ptr @fn_arg_code(ptr %t304, i32 1) - store ptr %t305, ptr %t306 - %t307 = call ptr @fn_nreg() - store ptr %t307, ptr %t308 - call void @fn_emit(ptr @.str456) - %t309 = load ptr, ptr %t308 - call void @fn_emit(ptr %t309) - call void @fn_emit(ptr @.str457) - %t310 = load ptr, ptr %t303 + %t299 = load ptr, ptr %t1 + %t300 = call ptr @fn_arg_code(ptr %t299, i32 0) + store ptr %t300, ptr %t301 + %t302 = load ptr, ptr %t1 + %t303 = call ptr @fn_arg_code(ptr %t302, i32 1) + store ptr %t303, ptr %t304 + %t305 = load ptr, ptr %t1 + %t306 = call ptr @fn_arg_code(ptr %t305, i32 2) + store ptr %t306, ptr %t307 + %t308 = call ptr @fn_nreg() + store ptr %t308, ptr %t309 + call void @fn_emit(ptr @.str453) + %t310 = load ptr, ptr %t309 call void @fn_emit(ptr %t310) - call void @fn_emit(ptr @.str458) - %t311 = load ptr, ptr %t306 + call void @fn_emit(ptr @.str454) + %t311 = load ptr, ptr %t301 call void @fn_emit(ptr %t311) + call void @fn_emit(ptr @.str455) + %t312 = load ptr, ptr %t304 + call void @fn_emit(ptr %t312) + call void @fn_emit(ptr @.str456) + call void @fn_emit(ptr @.str457) + %t313 = load ptr, ptr %t307 + call void @fn_emit(ptr %t313) + call void @fn_emit(ptr @.str458) + %t314 = load ptr, ptr %t309 + call void @fn_emit(ptr %t314) call void @fn_emit(ptr @.str459) - %t312 = load ptr, ptr %t308 - %t313 = call ptr @fn_sconcat(ptr @.str460, ptr %t312) - %t314 = call ptr @fn_emit_bind(ptr %t313) - %t315 = call ptr @fn_val(ptr %t314, ptr @.str461) + %t315 = call ptr @fn_val(ptr @.str460, ptr @.str461) store ptr %t315, ptr %retval br label %ret -ifend64: - %t316 = load ptr, ptr %t0 - %t317 = call i32 @fn_streq(ptr %t316, ptr @.str462) - %t318 = icmp ne i32 %t317, 0 - br i1 %t318, label %then65, label %ifend67 -then65: - %t319 = load ptr, ptr %t1 - %t320 = call ptr @fn_arg_code(ptr %t319, i32 0) - store ptr %t320, ptr %t321 - %t322 = load ptr, ptr %t1 - %t323 = call ptr @fn_arg_code(ptr %t322, i32 1) - store ptr %t323, ptr %t324 - %t325 = load ptr, ptr %t1 - %t326 = call ptr @fn_arg_code(ptr %t325, i32 2) - store ptr %t326, ptr %t327 - %t328 = call ptr @fn_nreg() - store ptr %t328, ptr %t329 - call void @fn_emit(ptr @.str463) - %t330 = load ptr, ptr %t329 - call void @fn_emit(ptr %t330) - call void @fn_emit(ptr @.str464) - %t331 = load ptr, ptr %t321 - call void @fn_emit(ptr %t331) - call void @fn_emit(ptr @.str465) - %t332 = load ptr, ptr %t324 - call void @fn_emit(ptr %t332) - call void @fn_emit(ptr @.str466) - call void @fn_emit(ptr @.str467) - %t333 = load ptr, ptr %t327 - call void @fn_emit(ptr %t333) - call void @fn_emit(ptr @.str468) - %t334 = load ptr, ptr %t329 - call void @fn_emit(ptr %t334) - call void @fn_emit(ptr @.str469) - %t335 = call ptr @fn_val(ptr @.str470, ptr @.str471) - store ptr %t335, ptr %retval - br label %ret -ifend67: +ifend61: store i32 0, ptr @g_g_intrin_ok - %t336 = call ptr @fn_val(ptr @.str472, ptr @.str473) - store ptr %t336, ptr %retval + %t316 = call ptr @fn_val(ptr @.str462, ptr @.str463) + store ptr %t316, ptr %retval br label %ret ret: - %t337 = load ptr, ptr %retval - ret ptr %t337 + %t317 = load ptr, ptr %retval + ret ptr %t317 } define i32 @fn_is_intrinsic2(ptr %arg_name) { @@ -12258,14 +12195,14 @@ entry: %t118 = alloca i32 store ptr %arg_name, ptr %t0 %t3 = load ptr, ptr %t0 - %t4 = call i32 @fn_streq(ptr %t3, ptr @.str474) + %t4 = call i32 @fn_streq(ptr %t3, ptr @.str464) %t5 = icmp ne i32 %t4, 0 %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t2 br i1 %t5, label %scend1, label %sc0 sc0: %t7 = load ptr, ptr %t0 - %t8 = call i32 @fn_streq(ptr %t7, ptr @.str475) + %t8 = call i32 @fn_streq(ptr %t7, ptr @.str465) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 @@ -12278,7 +12215,7 @@ scend1: br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 - %t15 = call i32 @fn_streq(ptr %t14, ptr @.str476) + %t15 = call i32 @fn_streq(ptr %t14, ptr @.str466) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 @@ -12292,14 +12229,14 @@ then4: br label %ret ifend6: %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_streq(ptr %t22, ptr @.str477) + %t23 = call i32 @fn_streq(ptr %t22, ptr @.str467) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t21 br i1 %t24, label %scend8, label %sc7 sc7: %t26 = load ptr, ptr %t0 - %t27 = call i32 @fn_streq(ptr %t26, ptr @.str478) + %t27 = call i32 @fn_streq(ptr %t26, ptr @.str468) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t21 @@ -12312,7 +12249,7 @@ scend8: br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 - %t34 = call i32 @fn_streq(ptr %t33, ptr @.str479) + %t34 = call i32 @fn_streq(ptr %t33, ptr @.str469) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t20 @@ -12326,14 +12263,14 @@ then11: br label %ret ifend13: %t40 = load ptr, ptr %t0 - %t41 = call i32 @fn_streq(ptr %t40, ptr @.str480) + %t41 = call i32 @fn_streq(ptr %t40, ptr @.str470) %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t39 br i1 %t42, label %scend15, label %sc14 sc14: %t44 = load ptr, ptr %t0 - %t45 = call i32 @fn_streq(ptr %t44, ptr @.str481) + %t45 = call i32 @fn_streq(ptr %t44, ptr @.str471) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t39 @@ -12347,14 +12284,14 @@ then16: br label %ret ifend18: %t53 = load ptr, ptr %t0 - %t54 = call i32 @fn_streq(ptr %t53, ptr @.str482) + %t54 = call i32 @fn_streq(ptr %t53, ptr @.str472) %t55 = icmp ne i32 %t54, 0 %t56 = zext i1 %t55 to i32 store i32 %t56, ptr %t52 br i1 %t55, label %scend20, label %sc19 sc19: %t57 = load ptr, ptr %t0 - %t58 = call i32 @fn_streq(ptr %t57, ptr @.str483) + %t58 = call i32 @fn_streq(ptr %t57, ptr @.str473) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t52 @@ -12367,7 +12304,7 @@ scend20: br i1 %t62, label %scend22, label %sc21 sc21: %t64 = load ptr, ptr %t0 - %t65 = call i32 @fn_streq(ptr %t64, ptr @.str484) + %t65 = call i32 @fn_streq(ptr %t64, ptr @.str474) %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t51 @@ -12380,7 +12317,7 @@ scend22: br i1 %t69, label %scend24, label %sc23 sc23: %t71 = load ptr, ptr %t0 - %t72 = call i32 @fn_streq(ptr %t71, ptr @.str485) + %t72 = call i32 @fn_streq(ptr %t71, ptr @.str475) %t73 = icmp ne i32 %t72, 0 %t74 = zext i1 %t73 to i32 store i32 %t74, ptr %t50 @@ -12394,14 +12331,14 @@ then25: br label %ret ifend27: %t78 = load ptr, ptr %t0 - %t79 = call i32 @fn_streq(ptr %t78, ptr @.str486) + %t79 = call i32 @fn_streq(ptr %t78, ptr @.str476) %t80 = icmp ne i32 %t79, 0 %t81 = zext i1 %t80 to i32 store i32 %t81, ptr %t77 br i1 %t80, label %scend29, label %sc28 sc28: %t82 = load ptr, ptr %t0 - %t83 = call i32 @fn_streq(ptr %t82, ptr @.str487) + %t83 = call i32 @fn_streq(ptr %t82, ptr @.str477) %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t77 @@ -12415,14 +12352,14 @@ then30: br label %ret ifend32: %t89 = load ptr, ptr %t0 - %t90 = call i32 @fn_streq(ptr %t89, ptr @.str488) + %t90 = call i32 @fn_streq(ptr %t89, ptr @.str478) %t91 = icmp ne i32 %t90, 0 %t92 = zext i1 %t91 to i32 store i32 %t92, ptr %t88 br i1 %t91, label %scend34, label %sc33 sc33: %t93 = load ptr, ptr %t0 - %t94 = call i32 @fn_streq(ptr %t93, ptr @.str489) + %t94 = call i32 @fn_streq(ptr %t93, ptr @.str479) %t95 = icmp ne i32 %t94, 0 %t96 = zext i1 %t95 to i32 store i32 %t96, ptr %t88 @@ -12436,14 +12373,14 @@ then35: br label %ret ifend37: %t101 = load ptr, ptr %t0 - %t102 = call i32 @fn_streq(ptr %t101, ptr @.str490) + %t102 = call i32 @fn_streq(ptr %t101, ptr @.str480) %t103 = icmp ne i32 %t102, 0 %t104 = zext i1 %t103 to i32 store i32 %t104, ptr %t100 br i1 %t103, label %scend39, label %sc38 sc38: %t105 = load ptr, ptr %t0 - %t106 = call i32 @fn_streq(ptr %t105, ptr @.str491) + %t106 = call i32 @fn_streq(ptr %t105, ptr @.str481) %t107 = icmp ne i32 %t106, 0 %t108 = zext i1 %t107 to i32 store i32 %t108, ptr %t100 @@ -12456,7 +12393,7 @@ scend39: br i1 %t110, label %scend41, label %sc40 sc40: %t112 = load ptr, ptr %t0 - %t113 = call i32 @fn_streq(ptr %t112, ptr @.str492) + %t113 = call i32 @fn_streq(ptr %t112, ptr @.str482) %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t99 @@ -12470,14 +12407,14 @@ then42: br label %ret ifend44: %t119 = load ptr, ptr %t0 - %t120 = call i32 @fn_streq(ptr %t119, ptr @.str493) + %t120 = call i32 @fn_streq(ptr %t119, ptr @.str483) %t121 = icmp ne i32 %t120, 0 %t122 = zext i1 %t121 to i32 store i32 %t122, ptr %t118 br i1 %t121, label %scend46, label %sc45 sc45: %t123 = load ptr, ptr %t0 - %t124 = call i32 @fn_streq(ptr %t123, ptr @.str494) + %t124 = call i32 @fn_streq(ptr %t123, ptr @.str484) %t125 = icmp ne i32 %t124, 0 %t126 = zext i1 %t125 to i32 store i32 %t126, ptr %t118 @@ -12544,23 +12481,23 @@ entry: store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 - %t3 = call i32 @fn_streq(ptr %t2, ptr @.str495) + %t3 = call i32 @fn_streq(ptr %t2, ptr @.str485) %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 @.str496) + call void @fn_emit(ptr @.str486) %t8 = load ptr, ptr %t7 call void @fn_emit(ptr %t8) - call void @fn_emit(ptr @.str497) - %t9 = call ptr @fn_val(ptr @.str498, ptr @.str499) + call void @fn_emit(ptr @.str487) + %t9 = call ptr @fn_val(ptr @.str488, ptr @.str489) store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t0 - %t11 = call i32 @fn_streq(ptr %t10, ptr @.str500) + %t11 = call i32 @fn_streq(ptr %t10, ptr @.str490) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: @@ -12574,26 +12511,26 @@ then3: %t20 = call ptr @fn_arg_code(ptr %t19, i32 2) store ptr %t20, ptr %t21 %t22 = load ptr, ptr %t21 - %t23 = call ptr @fn_sconcat(ptr %t22, ptr @.str502) - %t24 = call ptr @fn_sconcat(ptr @.str501, ptr %t23) + %t23 = call ptr @fn_sconcat(ptr %t22, ptr @.str492) + %t24 = call ptr @fn_sconcat(ptr @.str491, ptr %t23) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 - call void @fn_emit(ptr @.str503) + call void @fn_emit(ptr @.str493) %t27 = load ptr, ptr %t15 call void @fn_emit(ptr %t27) - call void @fn_emit(ptr @.str504) + call void @fn_emit(ptr @.str494) %t28 = load ptr, ptr %t18 call void @fn_emit(ptr %t28) - call void @fn_emit(ptr @.str505) + call void @fn_emit(ptr @.str495) %t29 = load ptr, ptr %t26 call void @fn_emit(ptr %t29) - call void @fn_emit(ptr @.str506) - %t30 = call ptr @fn_val(ptr @.str507, ptr @.str508) + call void @fn_emit(ptr @.str496) + %t30 = call ptr @fn_val(ptr @.str497, ptr @.str498) store ptr %t30, ptr %retval br label %ret ifend5: %t31 = load ptr, ptr %t0 - %t32 = call i32 @fn_streq(ptr %t31, ptr @.str509) + %t32 = call i32 @fn_streq(ptr %t31, ptr @.str499) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then6, label %ifend8 then6: @@ -12607,26 +12544,26 @@ then6: %t41 = call ptr @fn_arg_code(ptr %t40, i32 2) store ptr %t41, ptr %t42 %t43 = load ptr, ptr %t42 - %t44 = call ptr @fn_sconcat(ptr %t43, ptr @.str511) - %t45 = call ptr @fn_sconcat(ptr @.str510, ptr %t44) + %t44 = call ptr @fn_sconcat(ptr %t43, ptr @.str501) + %t45 = call ptr @fn_sconcat(ptr @.str500, ptr %t44) %t46 = call ptr @fn_emit_bind(ptr %t45) store ptr %t46, ptr %t47 - call void @fn_emit(ptr @.str512) + call void @fn_emit(ptr @.str502) %t48 = load ptr, ptr %t36 call void @fn_emit(ptr %t48) - call void @fn_emit(ptr @.str513) + call void @fn_emit(ptr @.str503) %t49 = load ptr, ptr %t39 call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str514) + call void @fn_emit(ptr @.str504) %t50 = load ptr, ptr %t47 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str515) - %t51 = call ptr @fn_val(ptr @.str516, ptr @.str517) + call void @fn_emit(ptr @.str505) + %t51 = call ptr @fn_val(ptr @.str506, ptr @.str507) store ptr %t51, ptr %retval br label %ret ifend8: %t52 = load ptr, ptr %t0 - %t53 = call i32 @fn_streq(ptr %t52, ptr @.str518) + %t53 = call i32 @fn_streq(ptr %t52, ptr @.str508) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then9, label %ifend11 then9: @@ -12638,49 +12575,49 @@ then9: store ptr %t59, ptr %t60 %t61 = call ptr @fn_nreg() store ptr %t61, ptr %t62 - call void @fn_emit(ptr @.str519) + call void @fn_emit(ptr @.str509) %t63 = load ptr, ptr %t62 call void @fn_emit(ptr %t63) - call void @fn_emit(ptr @.str520) + call void @fn_emit(ptr @.str510) %t64 = load ptr, ptr %t57 call void @fn_emit(ptr %t64) - call void @fn_emit(ptr @.str521) + call void @fn_emit(ptr @.str511) %t65 = load ptr, ptr %t60 call void @fn_emit(ptr %t65) - call void @fn_emit(ptr @.str522) + call void @fn_emit(ptr @.str512) %t66 = load ptr, ptr %t62 - %t67 = call ptr @fn_val(ptr %t66, ptr @.str523) + %t67 = call ptr @fn_val(ptr %t66, ptr @.str513) store ptr %t67, ptr %retval br label %ret ifend11: %t68 = load ptr, ptr %t0 - %t69 = call i32 @fn_streq(ptr %t68, ptr @.str524) + %t69 = call i32 @fn_streq(ptr %t68, ptr @.str514) %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then12, label %ifend14 then12: - %t71 = call ptr @fn_emit_bind(ptr @.str525) - %t72 = call ptr @fn_val(ptr %t71, ptr @.str526) + %t71 = call ptr @fn_emit_bind(ptr @.str515) + %t72 = call ptr @fn_val(ptr %t71, ptr @.str516) store ptr %t72, ptr %retval br label %ret ifend14: %t73 = load ptr, ptr %t0 - %t74 = call i32 @fn_streq(ptr %t73, ptr @.str527) + %t74 = call i32 @fn_streq(ptr %t73, ptr @.str517) %t75 = icmp ne i32 %t74, 0 br i1 %t75, label %then15, label %ifend17 then15: %t76 = load ptr, ptr %t1 %t77 = call ptr @fn_arg_code(ptr %t76, i32 0) store ptr %t77, ptr %t78 - call void @fn_emit(ptr @.str528) + call void @fn_emit(ptr @.str518) %t79 = load ptr, ptr %t78 call void @fn_emit(ptr %t79) - call void @fn_emit(ptr @.str529) - %t80 = call ptr @fn_val(ptr @.str530, ptr @.str531) + call void @fn_emit(ptr @.str519) + %t80 = call ptr @fn_val(ptr @.str520, ptr @.str521) store ptr %t80, ptr %retval br label %ret ifend17: %t81 = load ptr, ptr %t0 - %t82 = call i32 @fn_streq(ptr %t81, ptr @.str532) + %t82 = call i32 @fn_streq(ptr %t81, ptr @.str522) %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then18, label %ifend20 then18: @@ -12688,35 +12625,35 @@ then18: %t85 = call ptr @fn_arg_code(ptr %t84, i32 0) store ptr %t85, ptr %t86 %t87 = load ptr, ptr %t86 - %t88 = call ptr @fn_sconcat(ptr %t87, ptr @.str534) - %t89 = call ptr @fn_sconcat(ptr @.str533, ptr %t88) + %t88 = call ptr @fn_sconcat(ptr %t87, ptr @.str524) + %t89 = call ptr @fn_sconcat(ptr @.str523, ptr %t88) %t90 = call ptr @fn_emit_bind(ptr %t89) store ptr %t90, ptr %t91 %t92 = load ptr, ptr %t91 - %t93 = call ptr @fn_sconcat(ptr %t92, ptr @.str536) - %t94 = call ptr @fn_sconcat(ptr @.str535, ptr %t93) + %t93 = call ptr @fn_sconcat(ptr %t92, ptr @.str526) + %t94 = call ptr @fn_sconcat(ptr @.str525, ptr %t93) %t95 = call ptr @fn_emit_bind(ptr %t94) - %t96 = call ptr @fn_val(ptr %t95, ptr @.str537) + %t96 = call ptr @fn_val(ptr %t95, ptr @.str527) store ptr %t96, ptr %retval br label %ret ifend20: %t97 = load ptr, ptr %t0 - %t98 = call i32 @fn_streq(ptr %t97, ptr @.str538) + %t98 = call i32 @fn_streq(ptr %t97, ptr @.str528) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then21, label %ifend23 then21: - %t100 = call ptr @fn_emit_bind(ptr @.str539) + %t100 = call ptr @fn_emit_bind(ptr @.str529) store ptr %t100, ptr %t101 %t102 = load ptr, ptr %t101 - %t103 = call ptr @fn_sconcat(ptr %t102, ptr @.str541) - %t104 = call ptr @fn_sconcat(ptr @.str540, ptr %t103) + %t103 = call ptr @fn_sconcat(ptr %t102, ptr @.str531) + %t104 = call ptr @fn_sconcat(ptr @.str530, ptr %t103) %t105 = call ptr @fn_emit_bind(ptr %t104) - %t106 = call ptr @fn_val(ptr %t105, ptr @.str542) + %t106 = call ptr @fn_val(ptr %t105, ptr @.str532) store ptr %t106, ptr %retval br label %ret ifend23: %t107 = load ptr, ptr %t0 - %t108 = call i32 @fn_streq(ptr %t107, ptr @.str543) + %t108 = call i32 @fn_streq(ptr %t107, ptr @.str533) %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then24, label %ifend26 then24: @@ -12728,25 +12665,25 @@ then24: store ptr %t114, ptr %t115 %t116 = call ptr @fn_nreg() store ptr %t116, ptr %t117 - call void @fn_emit(ptr @.str544) + call void @fn_emit(ptr @.str534) %t118 = load ptr, ptr %t117 call void @fn_emit(ptr %t118) - call void @fn_emit(ptr @.str545) + call void @fn_emit(ptr @.str535) %t119 = load ptr, ptr %t112 call void @fn_emit(ptr %t119) - call void @fn_emit(ptr @.str546) + call void @fn_emit(ptr @.str536) %t120 = load ptr, ptr %t115 call void @fn_emit(ptr %t120) - call void @fn_emit(ptr @.str547) + call void @fn_emit(ptr @.str537) %t121 = load ptr, ptr %t117 - %t122 = call ptr @fn_sconcat(ptr @.str548, ptr %t121) + %t122 = call ptr @fn_sconcat(ptr @.str538, ptr %t121) %t123 = call ptr @fn_emit_bind(ptr %t122) - %t124 = call ptr @fn_val(ptr %t123, ptr @.str549) + %t124 = call ptr @fn_val(ptr %t123, ptr @.str539) store ptr %t124, ptr %retval br label %ret ifend26: %t125 = load ptr, ptr %t0 - %t126 = call i32 @fn_streq(ptr %t125, ptr @.str550) + %t126 = call i32 @fn_streq(ptr %t125, ptr @.str540) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then27, label %ifend29 then27: @@ -12761,29 +12698,29 @@ then27: store ptr %t135, ptr %t136 %t137 = call ptr @fn_nreg() store ptr %t137, ptr %t138 - call void @fn_emit(ptr @.str551) + call void @fn_emit(ptr @.str541) %t139 = load ptr, ptr %t138 call void @fn_emit(ptr %t139) - call void @fn_emit(ptr @.str552) + call void @fn_emit(ptr @.str542) %t140 = load ptr, ptr %t130 call void @fn_emit(ptr %t140) - call void @fn_emit(ptr @.str553) + call void @fn_emit(ptr @.str543) %t141 = load ptr, ptr %t133 call void @fn_emit(ptr %t141) - call void @fn_emit(ptr @.str554) - call void @fn_emit(ptr @.str555) + call void @fn_emit(ptr @.str544) + call void @fn_emit(ptr @.str545) %t142 = load ptr, ptr %t136 call void @fn_emit(ptr %t142) - call void @fn_emit(ptr @.str556) + call void @fn_emit(ptr @.str546) %t143 = load ptr, ptr %t138 call void @fn_emit(ptr %t143) - call void @fn_emit(ptr @.str557) - %t144 = call ptr @fn_val(ptr @.str558, ptr @.str559) + call void @fn_emit(ptr @.str547) + %t144 = call ptr @fn_val(ptr @.str548, ptr @.str549) store ptr %t144, ptr %retval br label %ret ifend29: %t145 = load ptr, ptr %t0 - %t146 = call i32 @fn_streq(ptr %t145, ptr @.str560) + %t146 = call i32 @fn_streq(ptr %t145, ptr @.str550) %t147 = icmp ne i32 %t146, 0 br i1 %t147, label %then30, label %ifend32 then30: @@ -12795,25 +12732,25 @@ then30: store ptr %t152, ptr %t153 %t154 = call ptr @fn_nreg() store ptr %t154, ptr %t155 - call void @fn_emit(ptr @.str561) + call void @fn_emit(ptr @.str551) %t156 = load ptr, ptr %t155 call void @fn_emit(ptr %t156) - call void @fn_emit(ptr @.str562) + call void @fn_emit(ptr @.str552) %t157 = load ptr, ptr %t150 call void @fn_emit(ptr %t157) - call void @fn_emit(ptr @.str563) + call void @fn_emit(ptr @.str553) %t158 = load ptr, ptr %t153 call void @fn_emit(ptr %t158) - call void @fn_emit(ptr @.str564) + call void @fn_emit(ptr @.str554) %t159 = load ptr, ptr %t155 - %t160 = call ptr @fn_sconcat(ptr @.str565, ptr %t159) + %t160 = call ptr @fn_sconcat(ptr @.str555, ptr %t159) %t161 = call ptr @fn_emit_bind(ptr %t160) - %t162 = call ptr @fn_val(ptr %t161, ptr @.str566) + %t162 = call ptr @fn_val(ptr %t161, ptr @.str556) store ptr %t162, ptr %retval br label %ret ifend32: %t163 = load ptr, ptr %t0 - %t164 = call i32 @fn_streq(ptr %t163, ptr @.str567) + %t164 = call i32 @fn_streq(ptr %t163, ptr @.str557) %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then33, label %ifend35 then33: @@ -12828,29 +12765,29 @@ then33: store ptr %t173, ptr %t174 %t175 = call ptr @fn_nreg() store ptr %t175, ptr %t176 - call void @fn_emit(ptr @.str568) + call void @fn_emit(ptr @.str558) %t177 = load ptr, ptr %t176 call void @fn_emit(ptr %t177) - call void @fn_emit(ptr @.str569) + call void @fn_emit(ptr @.str559) %t178 = load ptr, ptr %t168 call void @fn_emit(ptr %t178) - call void @fn_emit(ptr @.str570) + call void @fn_emit(ptr @.str560) %t179 = load ptr, ptr %t171 call void @fn_emit(ptr %t179) - call void @fn_emit(ptr @.str571) - call void @fn_emit(ptr @.str572) + call void @fn_emit(ptr @.str561) + call void @fn_emit(ptr @.str562) %t180 = load ptr, ptr %t174 call void @fn_emit(ptr %t180) - call void @fn_emit(ptr @.str573) + call void @fn_emit(ptr @.str563) %t181 = load ptr, ptr %t176 call void @fn_emit(ptr %t181) - call void @fn_emit(ptr @.str574) - %t182 = call ptr @fn_val(ptr @.str575, ptr @.str576) + call void @fn_emit(ptr @.str564) + %t182 = call ptr @fn_val(ptr @.str565, ptr @.str566) store ptr %t182, ptr %retval br label %ret ifend35: %t183 = load ptr, ptr %t0 - %t184 = call i32 @fn_streq(ptr %t183, ptr @.str577) + %t184 = call i32 @fn_streq(ptr %t183, ptr @.str567) %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then36, label %ifend38 then36: @@ -12866,12 +12803,12 @@ then36: %t195 = load ptr, ptr %t194 %t196 = getelementptr inbounds %Cmp_Val, ptr %t195, i32 0, i32 0 %t197 = load ptr, ptr %t196 - %t198 = call ptr @fn_val(ptr %t197, ptr @.str578) + %t198 = call ptr @fn_val(ptr %t197, ptr @.str568) store ptr %t198, ptr %retval br label %ret ifend38: %t199 = load ptr, ptr %t0 - %t200 = call i32 @fn_streq(ptr %t199, ptr @.str579) + %t200 = call i32 @fn_streq(ptr %t199, ptr @.str569) %t201 = icmp ne i32 %t200, 0 br i1 %t201, label %then39, label %ifend41 then39: @@ -12887,12 +12824,12 @@ then39: %t211 = load ptr, ptr %t210 %t212 = getelementptr inbounds %Cmp_Val, ptr %t211, i32 0, i32 0 %t213 = load ptr, ptr %t212 - %t214 = call ptr @fn_val(ptr %t213, ptr @.str580) + %t214 = call ptr @fn_val(ptr %t213, ptr @.str570) store ptr %t214, ptr %retval br label %ret ifend41: %t215 = load ptr, ptr %t0 - %t216 = call i32 @fn_streq(ptr %t215, ptr @.str581) + %t216 = call i32 @fn_streq(ptr %t215, ptr @.str571) %t217 = icmp ne i32 %t216, 0 br i1 %t217, label %then42, label %ifend44 then42: @@ -12900,45 +12837,45 @@ then42: %t219 = icmp ne i32 %t218, 0 br i1 %t219, label %then45, label %ifend47 then45: - %t220 = call ptr @fn_val(ptr @.str582, ptr @.str583) + %t220 = call ptr @fn_val(ptr @.str572, ptr @.str573) store ptr %t220, ptr %retval br label %ret ifend47: - %t221 = call ptr @fn_val(ptr @.str584, ptr @.str585) + %t221 = call ptr @fn_val(ptr @.str574, ptr @.str575) store ptr %t221, ptr %retval br label %ret ifend44: %t222 = load ptr, ptr %t0 - %t223 = call i32 @fn_streq(ptr %t222, ptr @.str586) + %t223 = call i32 @fn_streq(ptr %t222, ptr @.str576) %t224 = icmp ne i32 %t223, 0 br i1 %t224, label %then48, label %ifend50 then48: - %t225 = call ptr @fn_val(ptr @.str587, ptr @.str588) + %t225 = call ptr @fn_val(ptr @.str577, ptr @.str578) store ptr %t225, ptr %retval br label %ret ifend50: %t226 = load ptr, ptr %t0 - %t227 = call i32 @fn_streq(ptr %t226, ptr @.str589) + %t227 = call i32 @fn_streq(ptr %t226, ptr @.str579) %t228 = icmp ne i32 %t227, 0 br i1 %t228, label %then51, label %ifend53 then51: - %t229 = call ptr @fn_emit_bind(ptr @.str590) - %t230 = call ptr @fn_val(ptr %t229, ptr @.str591) + %t229 = call ptr @fn_emit_bind(ptr @.str580) + %t230 = call ptr @fn_val(ptr %t229, ptr @.str581) store ptr %t230, ptr %retval br label %ret ifend53: %t231 = load ptr, ptr %t0 - %t232 = call i32 @fn_streq(ptr %t231, ptr @.str592) + %t232 = call i32 @fn_streq(ptr %t231, ptr @.str582) %t233 = icmp ne i32 %t232, 0 br i1 %t233, label %then54, label %ifend56 then54: - %t234 = call ptr @fn_emit_bind(ptr @.str593) - %t235 = call ptr @fn_val(ptr %t234, ptr @.str594) + %t234 = call ptr @fn_emit_bind(ptr @.str583) + %t235 = call ptr @fn_val(ptr %t234, ptr @.str584) store ptr %t235, ptr %retval br label %ret ifend56: %t236 = load ptr, ptr %t0 - %t237 = call i32 @fn_streq(ptr %t236, ptr @.str595) + %t237 = call i32 @fn_streq(ptr %t236, ptr @.str585) %t238 = icmp ne i32 %t237, 0 br i1 %t238, label %then57, label %ifend59 then57: @@ -12954,25 +12891,25 @@ then57: %t248 = load ptr, ptr %t1 %t249 = call ptr @fn_arg_code(ptr %t248, i32 3) store ptr %t249, ptr %t250 - call void @fn_emit(ptr @.str596) + call void @fn_emit(ptr @.str586) %t251 = load ptr, ptr %t241 call void @fn_emit(ptr %t251) - call void @fn_emit(ptr @.str597) + call void @fn_emit(ptr @.str587) %t252 = load ptr, ptr %t244 call void @fn_emit(ptr %t252) - call void @fn_emit(ptr @.str598) + call void @fn_emit(ptr @.str588) %t253 = load ptr, ptr %t247 call void @fn_emit(ptr %t253) - call void @fn_emit(ptr @.str599) + call void @fn_emit(ptr @.str589) %t254 = load ptr, ptr %t250 call void @fn_emit(ptr %t254) - call void @fn_emit(ptr @.str600) - %t255 = call ptr @fn_val(ptr @.str601, ptr @.str602) + call void @fn_emit(ptr @.str590) + %t255 = call ptr @fn_val(ptr @.str591, ptr @.str592) store ptr %t255, ptr %retval br label %ret ifend59: %t256 = load ptr, ptr %t0 - %t257 = call i32 @fn_streq(ptr %t256, ptr @.str603) + %t257 = call i32 @fn_streq(ptr %t256, ptr @.str593) %t258 = icmp ne i32 %t257, 0 br i1 %t258, label %then60, label %ifend62 then60: @@ -12985,31 +12922,31 @@ then60: %t265 = load ptr, ptr %t1 %t266 = call ptr @fn_arg_code(ptr %t265, i32 2) store ptr %t266, ptr %t267 - call void @fn_emit(ptr @.str604) + call void @fn_emit(ptr @.str594) %t268 = load ptr, ptr %t261 call void @fn_emit(ptr %t268) - call void @fn_emit(ptr @.str605) + call void @fn_emit(ptr @.str595) %t269 = load ptr, ptr %t264 call void @fn_emit(ptr %t269) - call void @fn_emit(ptr @.str606) + call void @fn_emit(ptr @.str596) %t270 = load ptr, ptr %t267 call void @fn_emit(ptr %t270) - call void @fn_emit(ptr @.str607) - %t271 = call ptr @fn_val(ptr @.str608, ptr @.str609) + call void @fn_emit(ptr @.str597) + %t271 = call ptr @fn_val(ptr @.str598, ptr @.str599) store ptr %t271, ptr %retval br label %ret ifend62: %t272 = load ptr, ptr %t0 - %t273 = call i32 @fn_streq(ptr %t272, ptr @.str610) + %t273 = call i32 @fn_streq(ptr %t272, ptr @.str600) %t274 = icmp ne i32 %t273, 0 br i1 %t274, label %then63, label %ifend65 then63: - call void @fn_emit(ptr @.str611) - %t275 = call ptr @fn_val(ptr @.str612, ptr @.str613) + call void @fn_emit(ptr @.str601) + %t275 = call ptr @fn_val(ptr @.str602, ptr @.str603) store ptr %t275, ptr %retval br label %ret ifend65: - %t276 = call ptr @fn_val(ptr @.str614, ptr @.str615) + %t276 = call ptr @fn_val(ptr @.str604, ptr @.str605) store ptr %t276, ptr %retval br label %ret ret: @@ -13026,14 +12963,14 @@ entry: %t3 = alloca i32 store ptr %arg_name, ptr %t0 %t4 = load ptr, ptr %t0 - %t5 = call i32 @fn_streq(ptr %t4, ptr @.str616) + %t5 = call i32 @fn_streq(ptr %t4, ptr @.str606) %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_streq(ptr %t8, ptr @.str617) + %t9 = call i32 @fn_streq(ptr %t8, ptr @.str607) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 @@ -13046,7 +12983,7 @@ scend1: br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 - %t16 = call i32 @fn_streq(ptr %t15, ptr @.str618) + %t16 = call i32 @fn_streq(ptr %t15, ptr @.str608) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 @@ -13059,7 +12996,7 @@ scend3: br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_streq(ptr %t22, ptr @.str619) + %t23 = call i32 @fn_streq(ptr %t22, ptr @.str609) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 @@ -13095,7 +13032,7 @@ entry: store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 - %t3 = call i32 @fn_streq(ptr %t2, ptr @.str620) + %t3 = call i32 @fn_streq(ptr %t2, ptr @.str610) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: @@ -13111,14 +13048,14 @@ then0: %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_sconcat(ptr %t16, ptr @.str622) - %t18 = call ptr @fn_sconcat(ptr @.str621, ptr %t17) + %t17 = call ptr @fn_sconcat(ptr %t16, ptr @.str612) + %t18 = call ptr @fn_sconcat(ptr @.str611, ptr %t17) %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_sconcat(ptr @.str623, ptr %t23) + %t24 = call ptr @fn_sconcat(ptr @.str613, ptr %t23) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t20 @@ -13126,25 +13063,25 @@ then0: %t29 = load ptr, ptr %t13 %t30 = getelementptr inbounds %Cmp_Val, ptr %t29, i32 0, i32 0 %t31 = load ptr, ptr %t30 - %t32 = call ptr @fn_sconcat(ptr @.str626, ptr %t31) + %t32 = call ptr @fn_sconcat(ptr @.str616, ptr %t31) %t33 = call ptr @fn_sconcat(ptr %t28, ptr %t32) - %t34 = call ptr @fn_sconcat(ptr @.str625, ptr %t33) + %t34 = call ptr @fn_sconcat(ptr @.str615, ptr %t33) %t35 = call ptr @fn_sconcat(ptr %t27, ptr %t34) - %t36 = call ptr @fn_sconcat(ptr @.str624, ptr %t35) + %t36 = call ptr @fn_sconcat(ptr @.str614, ptr %t35) %t37 = call ptr @fn_emit_bind(ptr %t36) - %t38 = call ptr @fn_val(ptr %t37, ptr @.str627) + %t38 = call ptr @fn_val(ptr %t37, ptr @.str617) store ptr %t38, ptr %retval br label %ret ifend2: %t40 = load ptr, ptr %t0 - %t41 = call i32 @fn_streq(ptr %t40, ptr @.str628) + %t41 = call i32 @fn_streq(ptr %t40, ptr @.str618) %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_streq(ptr %t44, ptr @.str629) + %t45 = call i32 @fn_streq(ptr %t44, ptr @.str619) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t39 @@ -13172,13 +13109,13 @@ then5: %t65 = load ptr, ptr %t64 %t66 = call ptr @fn_emit_expr(ptr %t65) store ptr %t66, ptr %t67 - store ptr @.str630, ptr %t68 + store ptr @.str620, ptr %t68 %t69 = load ptr, ptr %t0 - %t70 = call i32 @fn_streq(ptr %t69, ptr @.str631) + %t70 = call i32 @fn_streq(ptr %t69, ptr @.str621) %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then8, label %ifend10 then8: - store ptr @.str632, ptr %t68 + store ptr @.str622, ptr %t68 br label %ifend10 ifend10: %t72 = load ptr, ptr %t68 @@ -13188,11 +13125,11 @@ ifend10: %t76 = load ptr, ptr %t67 %t77 = getelementptr inbounds %Cmp_Val, ptr %t76, i32 0, i32 0 %t78 = load ptr, ptr %t77 - %t79 = call ptr @fn_sconcat(ptr @.str635, ptr %t78) + %t79 = call ptr @fn_sconcat(ptr @.str625, ptr %t78) %t80 = call ptr @fn_sconcat(ptr %t75, ptr %t79) - %t81 = call ptr @fn_sconcat(ptr @.str634, ptr %t80) + %t81 = call ptr @fn_sconcat(ptr @.str624, ptr %t80) %t82 = call ptr @fn_sconcat(ptr %t72, ptr %t81) - %t83 = call ptr @fn_sconcat(ptr @.str633, ptr %t82) + %t83 = call ptr @fn_sconcat(ptr @.str623, ptr %t82) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 @@ -13202,13 +13139,13 @@ ifend10: %t90 = load ptr, ptr %t67 %t91 = getelementptr inbounds %Cmp_Val, ptr %t90, i32 0, i32 0 %t92 = load ptr, ptr %t91 - %t93 = call ptr @fn_sconcat(ptr @.str638, ptr %t92) + %t93 = call ptr @fn_sconcat(ptr @.str628, ptr %t92) %t94 = call ptr @fn_sconcat(ptr %t89, ptr %t93) - %t95 = call ptr @fn_sconcat(ptr @.str637, ptr %t94) + %t95 = call ptr @fn_sconcat(ptr @.str627, ptr %t94) %t96 = call ptr @fn_sconcat(ptr %t86, ptr %t95) - %t97 = call ptr @fn_sconcat(ptr @.str636, ptr %t96) + %t97 = call ptr @fn_sconcat(ptr @.str626, ptr %t96) %t98 = call ptr @fn_emit_bind(ptr %t97) - %t99 = call ptr @fn_val(ptr %t98, ptr @.str639) + %t99 = call ptr @fn_val(ptr %t98, ptr @.str629) store ptr %t99, ptr %retval br label %ret ifend7: @@ -13245,9 +13182,9 @@ ifend7: %t130 = load ptr, ptr %t126 %t131 = getelementptr inbounds %Cmp_Val, ptr %t130, i32 0, i32 0 %t132 = load ptr, ptr %t131 - %t133 = call ptr @fn_sconcat(ptr @.str641, ptr %t132) + %t133 = call ptr @fn_sconcat(ptr @.str631, ptr %t132) %t134 = call ptr @fn_sconcat(ptr %t129, ptr %t133) - %t135 = call ptr @fn_sconcat(ptr @.str640, ptr %t134) + %t135 = call ptr @fn_sconcat(ptr @.str630, ptr %t134) %t136 = call ptr @fn_emit_bind(ptr %t135) store ptr %t136, ptr %t137 %t138 = load ptr, ptr %t137 @@ -13257,20 +13194,20 @@ ifend7: %t142 = load ptr, ptr %t126 %t143 = getelementptr inbounds %Cmp_Val, ptr %t142, i32 0, i32 0 %t144 = load ptr, ptr %t143 - %t145 = call ptr @fn_sconcat(ptr @.str644, ptr %t144) + %t145 = call ptr @fn_sconcat(ptr @.str634, ptr %t144) %t146 = call ptr @fn_sconcat(ptr %t141, ptr %t145) - %t147 = call ptr @fn_sconcat(ptr @.str643, ptr %t146) + %t147 = call ptr @fn_sconcat(ptr @.str633, ptr %t146) %t148 = call ptr @fn_sconcat(ptr %t138, ptr %t147) - %t149 = call ptr @fn_sconcat(ptr @.str642, ptr %t148) + %t149 = call ptr @fn_sconcat(ptr @.str632, 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 = load ptr, ptr %t151 - %t156 = call ptr @fn_sconcat(ptr @.str646, ptr %t155) + %t156 = call ptr @fn_sconcat(ptr @.str636, ptr %t155) %t157 = call ptr @fn_sconcat(ptr %t154, ptr %t156) - %t158 = call ptr @fn_sconcat(ptr @.str645, ptr %t157) + %t158 = call ptr @fn_sconcat(ptr @.str635, ptr %t157) %t159 = call ptr @fn_emit_bind(ptr %t158) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t160 @@ -13278,13 +13215,13 @@ ifend7: %t163 = getelementptr inbounds %Cmp_Val, ptr %t162, i32 0, i32 0 %t164 = load ptr, ptr %t163 %t165 = load ptr, ptr %t151 - %t166 = call ptr @fn_sconcat(ptr @.str649, ptr %t165) + %t166 = call ptr @fn_sconcat(ptr @.str639, ptr %t165) %t167 = call ptr @fn_sconcat(ptr %t164, ptr %t166) - %t168 = call ptr @fn_sconcat(ptr @.str648, ptr %t167) + %t168 = call ptr @fn_sconcat(ptr @.str638, ptr %t167) %t169 = call ptr @fn_sconcat(ptr %t161, ptr %t168) - %t170 = call ptr @fn_sconcat(ptr @.str647, ptr %t169) + %t170 = call ptr @fn_sconcat(ptr @.str637, ptr %t169) %t171 = call ptr @fn_emit_bind(ptr %t170) - %t172 = call ptr @fn_val(ptr %t171, ptr @.str650) + %t172 = call ptr @fn_val(ptr %t171, ptr @.str640) store ptr %t172, ptr %retval br label %ret ret: @@ -13299,13 +13236,13 @@ entry: %t5 = alloca ptr store ptr %arg_llt, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call ptr @fn_sconcat(ptr %t1, ptr @.str652) - %t3 = call ptr @fn_sconcat(ptr @.str651, ptr %t2) + %t2 = call ptr @fn_sconcat(ptr %t1, ptr @.str642) + %t3 = call ptr @fn_sconcat(ptr @.str641, ptr %t2) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 - %t7 = call ptr @fn_sconcat(ptr %t6, ptr @.str654) - %t8 = call ptr @fn_sconcat(ptr @.str653, ptr %t7) + %t7 = call ptr @fn_sconcat(ptr %t6, ptr @.str644) + %t8 = call ptr @fn_sconcat(ptr @.str643, ptr %t7) %t9 = call ptr @fn_emit_bind(ptr %t8) store ptr %t9, ptr %retval br label %ret @@ -13327,7 +13264,7 @@ entry: %t39 = alloca ptr %t49 = alloca ptr %t50 = alloca ptr - %t66 = alloca ptr + %t64 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = call ptr @fn_layout_node(ptr %t1) @@ -13338,7 +13275,7 @@ entry: %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: - call void @fn_perr(ptr @.str655) + call void @fn_perr(ptr @.str645) br label %ifend2 ifend2: %t8 = load ptr, ptr %t0 @@ -13348,8 +13285,8 @@ ifend2: %t12 = call ptr @fn_emit_sizeof(ptr %t11) store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t13 - %t15 = call ptr @fn_sconcat(ptr %t14, ptr @.str657) - %t16 = call ptr @fn_sconcat(ptr @.str656, ptr %t15) + %t15 = call ptr @fn_sconcat(ptr %t14, ptr @.str647) + %t16 = call ptr @fn_sconcat(ptr @.str646, ptr %t15) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t18 store i32 0, ptr %t19 @@ -13377,78 +13314,76 @@ wbody4: store ptr %t36, ptr %t37 %t38 = call ptr @fn_nreg() store ptr %t38, ptr %t39 - call void @fn_emit(ptr @.str658) + call void @fn_emit(ptr @.str648) %t40 = load ptr, ptr %t39 call void @fn_emit(ptr %t40) - call void @fn_emit(ptr @.str659) + call void @fn_emit(ptr @.str649) %t41 = load ptr, ptr %t10 call void @fn_emit(ptr %t41) - call void @fn_emit(ptr @.str660) + call void @fn_emit(ptr @.str650) %t42 = load ptr, ptr %t18 call void @fn_emit(ptr %t42) - call void @fn_emit(ptr @.str661) + call void @fn_emit(ptr @.str651) %t43 = load i32, ptr %t19 %t44 = call ptr @fn_itoa(i32 %t43) call void @fn_emit(ptr %t44) - call void @fn_emit(ptr @.str662) + call void @fn_emit(ptr @.str652) %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 @.str663, ptr %t50 + store ptr @.str653, ptr %t50 %t51 = load ptr, ptr %t49 - %t52 = call i32 @fn_streq(ptr %t51, ptr @.str664) + %t52 = call i32 @fn_streq(ptr %t51, ptr @.str654) %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then6, label %ifend8 then6: - store ptr @.str665, ptr %t50 + store ptr @.str655, 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 eq ptr %t56, null + %t57 = icmp ne ptr %t56, null %t58 = zext i1 %t57 to i32 - %t59 = icmp eq i32 %t58, 0 - %t60 = zext i1 %t59 to i32 - %t61 = icmp ne i32 %t60, 0 - br i1 %t61, label %then9, label %ifend11 + %t59 = icmp ne i32 %t58, 0 + br i1 %t59, label %then9, label %ifend11 then9: - %t62 = load ptr, ptr %t37 - %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 4 - %t64 = load ptr, ptr %t63 - %t65 = call ptr @fn_emit_expr(ptr %t64) - store ptr %t65, ptr %t66 + %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 - %t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 0 - %t69 = load ptr, ptr %t68 - store ptr %t69, ptr %t50 + store ptr %t67, ptr %t50 br label %ifend11 ifend11: - call void @fn_emit(ptr @.str666) - %t70 = load ptr, ptr %t49 + call void @fn_emit(ptr @.str656) + %t68 = load ptr, ptr %t49 + call void @fn_emit(ptr %t68) + call void @fn_emit(ptr @.str657) + %t69 = load ptr, ptr %t50 + call void @fn_emit(ptr %t69) + call void @fn_emit(ptr @.str658) + %t70 = load ptr, ptr %t39 call void @fn_emit(ptr %t70) - call void @fn_emit(ptr @.str667) - %t71 = load ptr, ptr %t50 - call void @fn_emit(ptr %t71) - call void @fn_emit(ptr @.str668) - %t72 = load ptr, ptr %t39 - call void @fn_emit(ptr %t72) - call void @fn_emit(ptr @.str669) - %t73 = load i32, ptr %t19 - %t74 = add i32 %t73, 1 - store i32 %t74, ptr %t19 + call void @fn_emit(ptr @.str659) + %t71 = load i32, ptr %t19 + %t72 = add i32 %t71, 1 + store i32 %t72, ptr %t19 br label %wcond3 wend5: - %t75 = load ptr, ptr %t18 - %t76 = load ptr, ptr %t0 - %t77 = call ptr @fn_val(ptr %t75, ptr %t76) - store ptr %t77, ptr %retval + %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: - %t78 = load ptr, ptr %retval - ret ptr %t78 + %t76 = load ptr, ptr %retval + ret ptr %t76 } define ptr @fn_emit_new_slice(ptr %arg_ty) { @@ -13461,52 +13396,52 @@ entry: %t14 = alloca ptr %t19 = alloca ptr store ptr %arg_ty, ptr %t0 - %t1 = call ptr @fn_emit_sizeof(ptr @.str670) + %t1 = call ptr @fn_emit_sizeof(ptr @.str660) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t2 - %t4 = call ptr @fn_sconcat(ptr %t3, ptr @.str672) - %t5 = call ptr @fn_sconcat(ptr @.str671, ptr %t4) + %t4 = call ptr @fn_sconcat(ptr %t3, ptr @.str662) + %t5 = call ptr @fn_sconcat(ptr @.str661, ptr %t4) %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 @.str673) + call void @fn_emit(ptr @.str663) %t10 = load ptr, ptr %t9 call void @fn_emit(ptr %t10) - call void @fn_emit(ptr @.str674) + call void @fn_emit(ptr @.str664) %t11 = load ptr, ptr %t7 call void @fn_emit(ptr %t11) - call void @fn_emit(ptr @.str675) - call void @fn_emit(ptr @.str676) + call void @fn_emit(ptr @.str665) + call void @fn_emit(ptr @.str666) %t12 = load ptr, ptr %t9 call void @fn_emit(ptr %t12) - call void @fn_emit(ptr @.str677) + call void @fn_emit(ptr @.str667) %t13 = call ptr @fn_nreg() store ptr %t13, ptr %t14 - call void @fn_emit(ptr @.str678) + call void @fn_emit(ptr @.str668) %t15 = load ptr, ptr %t14 call void @fn_emit(ptr %t15) - call void @fn_emit(ptr @.str679) + call void @fn_emit(ptr @.str669) %t16 = load ptr, ptr %t7 call void @fn_emit(ptr %t16) - call void @fn_emit(ptr @.str680) - call void @fn_emit(ptr @.str681) + call void @fn_emit(ptr @.str670) + call void @fn_emit(ptr @.str671) %t17 = load ptr, ptr %t14 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str682) + call void @fn_emit(ptr @.str672) %t18 = call ptr @fn_nreg() store ptr %t18, ptr %t19 - call void @fn_emit(ptr @.str683) + call void @fn_emit(ptr @.str673) %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) - call void @fn_emit(ptr @.str684) + call void @fn_emit(ptr @.str674) %t21 = load ptr, ptr %t7 call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str685) - call void @fn_emit(ptr @.str686) + call void @fn_emit(ptr @.str675) + call void @fn_emit(ptr @.str676) %t22 = load ptr, ptr %t19 call void @fn_emit(ptr %t22) - call void @fn_emit(ptr @.str687) + call void @fn_emit(ptr @.str677) %t23 = load ptr, ptr %t7 %t24 = load ptr, ptr %t0 %t25 = call ptr @fn_val(ptr %t23, ptr %t24) @@ -13527,17 +13462,17 @@ entry: store i32 %arg_i, ptr %t1 %t2 = call ptr @fn_nreg() store ptr %t2, ptr %t3 - call void @fn_emit(ptr @.str688) + call void @fn_emit(ptr @.str678) %t4 = load ptr, ptr %t3 call void @fn_emit(ptr %t4) - call void @fn_emit(ptr @.str689) + call void @fn_emit(ptr @.str679) %t5 = load ptr, ptr %t0 call void @fn_emit(ptr %t5) - call void @fn_emit(ptr @.str690) + call void @fn_emit(ptr @.str680) %t6 = load i32, ptr %t1 %t7 = call ptr @fn_itoa(i32 %t6) call void @fn_emit(ptr %t7) - call void @fn_emit(ptr @.str691) + call void @fn_emit(ptr @.str681) %t8 = load ptr, ptr %t3 store ptr %t8, ptr %retval br label %ret @@ -13568,9 +13503,9 @@ entry: %t13 = call ptr @fn_slice_field(ptr %t12, i32 1) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 - %t16 = call ptr @fn_sconcat(ptr @.str692, ptr %t15) + %t16 = call ptr @fn_sconcat(ptr @.str682, ptr %t15) %t17 = call ptr @fn_emit_bind(ptr %t16) - %t18 = call ptr @fn_val(ptr %t17, ptr @.str693) + %t18 = call ptr @fn_val(ptr %t17, ptr @.str683) store ptr %t18, ptr %retval br label %ret ret: @@ -13638,102 +13573,102 @@ entry: %t29 = call ptr @fn_slice_field(ptr %t28, i32 0) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t24 - %t32 = call ptr @fn_sconcat(ptr @.str694, ptr %t31) + %t32 = call ptr @fn_sconcat(ptr @.str684, ptr %t31) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t27 - %t36 = call ptr @fn_sconcat(ptr @.str695, ptr %t35) + %t36 = call ptr @fn_sconcat(ptr @.str685, ptr %t35) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t34 %t40 = load ptr, ptr %t38 - %t41 = call ptr @fn_sconcat(ptr @.str697, ptr %t40) + %t41 = call ptr @fn_sconcat(ptr @.str687, ptr %t40) %t42 = call ptr @fn_sconcat(ptr %t39, ptr %t41) - %t43 = call ptr @fn_sconcat(ptr @.str696, ptr %t42) + %t43 = call ptr @fn_sconcat(ptr @.str686, ptr %t42) %t44 = call ptr @fn_emit_bind(ptr %t43) store ptr %t44, ptr %t45 - %t46 = call ptr @fn_lbl(ptr @.str698) + %t46 = call ptr @fn_lbl(ptr @.str688) store ptr %t46, ptr %t47 - %t48 = call ptr @fn_lbl(ptr @.str699) + %t48 = call ptr @fn_lbl(ptr @.str689) store ptr %t48, ptr %t49 - call void @fn_emit(ptr @.str700) + call void @fn_emit(ptr @.str690) %t50 = load ptr, ptr %t45 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str701) + call void @fn_emit(ptr @.str691) %t51 = load ptr, ptr %t47 call void @fn_emit(ptr %t51) - call void @fn_emit(ptr @.str702) + call void @fn_emit(ptr @.str692) %t52 = load ptr, ptr %t49 call void @fn_emit(ptr %t52) - call void @fn_emit(ptr @.str703) + call void @fn_emit(ptr @.str693) %t53 = load ptr, ptr %t47 call void @fn_emit(ptr %t53) - call void @fn_emit(ptr @.str704) + call void @fn_emit(ptr @.str694) %t54 = load ptr, ptr %t38 - %t55 = call ptr @fn_sconcat(ptr %t54, ptr @.str706) - %t56 = call ptr @fn_sconcat(ptr @.str705, ptr %t55) + %t55 = call ptr @fn_sconcat(ptr %t54, ptr @.str696) + %t56 = call ptr @fn_sconcat(ptr @.str695, ptr %t55) %t57 = call ptr @fn_emit_bind(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t38 - %t60 = call ptr @fn_sconcat(ptr %t59, ptr @.str708) - %t61 = call ptr @fn_sconcat(ptr @.str707, ptr %t60) + %t60 = call ptr @fn_sconcat(ptr %t59, ptr @.str698) + %t61 = call ptr @fn_sconcat(ptr @.str697, ptr %t60) %t62 = call ptr @fn_emit_bind(ptr %t61) store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t63 %t65 = load ptr, ptr %t58 - %t66 = call ptr @fn_sconcat(ptr @.str710, ptr %t65) + %t66 = call ptr @fn_sconcat(ptr @.str700, ptr %t65) %t67 = call ptr @fn_sconcat(ptr %t64, ptr %t66) - %t68 = call ptr @fn_sconcat(ptr @.str709, ptr %t67) + %t68 = call ptr @fn_sconcat(ptr @.str699, 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_sconcat(ptr %t74, ptr @.str712) - %t76 = call ptr @fn_sconcat(ptr @.str711, ptr %t75) + %t75 = call ptr @fn_sconcat(ptr %t74, ptr @.str702) + %t76 = call ptr @fn_sconcat(ptr @.str701, ptr %t75) %t77 = call ptr @fn_emit_bind(ptr %t76) store ptr %t77, ptr %t78 %t79 = load ptr, ptr %t78 %t80 = load ptr, ptr %t73 - %t81 = call ptr @fn_sconcat(ptr @.str714, ptr %t80) + %t81 = call ptr @fn_sconcat(ptr @.str704, ptr %t80) %t82 = call ptr @fn_sconcat(ptr %t79, ptr %t81) - %t83 = call ptr @fn_sconcat(ptr @.str713, ptr %t82) + %t83 = call ptr @fn_sconcat(ptr @.str703, ptr %t82) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t30 - %t87 = call ptr @fn_sconcat(ptr @.str715, ptr %t86) + %t87 = call ptr @fn_sconcat(ptr @.str705, ptr %t86) %t88 = call ptr @fn_emit_bind(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 %t91 = load ptr, ptr %t85 - %t92 = call ptr @fn_sconcat(ptr %t91, ptr @.str718) - %t93 = call ptr @fn_sconcat(ptr @.str717, ptr %t92) + %t92 = call ptr @fn_sconcat(ptr %t91, ptr @.str708) + %t93 = call ptr @fn_sconcat(ptr @.str707, ptr %t92) %t94 = call ptr @fn_sconcat(ptr %t90, ptr %t93) - %t95 = call ptr @fn_sconcat(ptr @.str716, ptr %t94) + %t95 = call ptr @fn_sconcat(ptr @.str706, ptr %t94) %t96 = call ptr @fn_emit_bind(ptr %t95) store ptr %t96, ptr %t97 - call void @fn_emit(ptr @.str719) + call void @fn_emit(ptr @.str709) %t98 = load ptr, ptr %t97 call void @fn_emit(ptr %t98) - call void @fn_emit(ptr @.str720) + call void @fn_emit(ptr @.str710) %t99 = load ptr, ptr %t30 call void @fn_emit(ptr %t99) - call void @fn_emit(ptr @.str721) - call void @fn_emit(ptr @.str722) + call void @fn_emit(ptr @.str711) + call void @fn_emit(ptr @.str712) %t100 = load ptr, ptr %t70 call void @fn_emit(ptr %t100) - call void @fn_emit(ptr @.str723) + call void @fn_emit(ptr @.str713) %t101 = load ptr, ptr %t27 call void @fn_emit(ptr %t101) - call void @fn_emit(ptr @.str724) - call void @fn_emit(ptr @.str725) + call void @fn_emit(ptr @.str714) + call void @fn_emit(ptr @.str715) %t102 = load ptr, ptr %t49 call void @fn_emit(ptr %t102) - call void @fn_emit(ptr @.str726) + call void @fn_emit(ptr @.str716) %t103 = load ptr, ptr %t49 call void @fn_emit(ptr %t103) - call void @fn_emit(ptr @.str727) + call void @fn_emit(ptr @.str717) %t104 = load ptr, ptr %t0 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 7 %t106 = load ptr, ptr %t105 @@ -13744,49 +13679,49 @@ entry: %t111 = call ptr @fn_emit_expr(ptr %t110) store ptr %t111, ptr %t112 %t113 = load ptr, ptr %t30 - %t114 = call ptr @fn_sconcat(ptr @.str728, ptr %t113) + %t114 = call ptr @fn_sconcat(ptr @.str718, 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 @.str729) + call void @fn_emit(ptr @.str719) %t119 = load ptr, ptr %t118 call void @fn_emit(ptr %t119) - call void @fn_emit(ptr @.str730) + call void @fn_emit(ptr @.str720) %t120 = load ptr, ptr %t17 call void @fn_emit(ptr %t120) - call void @fn_emit(ptr @.str731) + call void @fn_emit(ptr @.str721) %t121 = load ptr, ptr %t116 call void @fn_emit(ptr %t121) - call void @fn_emit(ptr @.str732) + call void @fn_emit(ptr @.str722) %t122 = load ptr, ptr %t34 call void @fn_emit(ptr %t122) - call void @fn_emit(ptr @.str733) - call void @fn_emit(ptr @.str734) + call void @fn_emit(ptr @.str723) + call void @fn_emit(ptr @.str724) %t123 = load ptr, ptr %t17 call void @fn_emit(ptr %t123) - call void @fn_emit(ptr @.str735) + call void @fn_emit(ptr @.str725) %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 @.str736) + call void @fn_emit(ptr @.str726) %t127 = load ptr, ptr %t118 call void @fn_emit(ptr %t127) - call void @fn_emit(ptr @.str737) + call void @fn_emit(ptr @.str727) %t128 = load ptr, ptr %t34 - %t129 = call ptr @fn_sconcat(ptr %t128, ptr @.str739) - %t130 = call ptr @fn_sconcat(ptr @.str738, ptr %t129) + %t129 = call ptr @fn_sconcat(ptr %t128, ptr @.str729) + %t130 = call ptr @fn_sconcat(ptr @.str728, ptr %t129) %t131 = call ptr @fn_emit_bind(ptr %t130) store ptr %t131, ptr %t132 - call void @fn_emit(ptr @.str740) + call void @fn_emit(ptr @.str730) %t133 = load ptr, ptr %t132 call void @fn_emit(ptr %t133) - call void @fn_emit(ptr @.str741) + call void @fn_emit(ptr @.str731) %t134 = load ptr, ptr %t24 call void @fn_emit(ptr %t134) - call void @fn_emit(ptr @.str742) - %t135 = call ptr @fn_val(ptr @.str743, ptr @.str744) + call void @fn_emit(ptr @.str732) + %t135 = call ptr @fn_val(ptr @.str733, ptr @.str734) store ptr %t135, ptr %retval br label %ret ret: @@ -13805,9 +13740,9 @@ entry: %t2 = load ptr, ptr %t1 %t3 = call ptr @fn_llty(ptr %t2) %t4 = load ptr, ptr %t0 - %t5 = call ptr @fn_sconcat(ptr @.str746, ptr %t4) + %t5 = call ptr @fn_sconcat(ptr @.str736, ptr %t4) %t6 = call ptr @fn_sconcat(ptr %t3, ptr %t5) - %t7 = call ptr @fn_sconcat(ptr @.str745, ptr %t6) + %t7 = call ptr @fn_sconcat(ptr @.str735, ptr %t6) %t8 = call ptr @fn_emit_bind(ptr %t7) store ptr %t8, ptr %t9 %t10 = load ptr, ptr %t9 @@ -13834,7 +13769,7 @@ entry: %t49 = alloca ptr %t54 = alloca ptr store ptr %arg_e, ptr %t0 - %t1 = call ptr @fn_emit_alloca(ptr @.str747) + %t1 = call ptr @fn_emit_alloca(ptr @.str737) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4 @@ -13844,60 +13779,60 @@ entry: %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_sconcat(ptr %t10, ptr @.str749) - %t12 = call ptr @fn_sconcat(ptr @.str748, ptr %t11) + %t11 = call ptr @fn_sconcat(ptr %t10, ptr @.str739) + %t12 = call ptr @fn_sconcat(ptr @.str738, ptr %t11) %t13 = call ptr @fn_emit_bind(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 - %t16 = call ptr @fn_sconcat(ptr %t15, ptr @.str751) - %t17 = call ptr @fn_sconcat(ptr @.str750, ptr %t16) + %t16 = call ptr @fn_sconcat(ptr %t15, ptr @.str741) + %t17 = call ptr @fn_sconcat(ptr @.str740, ptr %t16) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %t19 - call void @fn_emit(ptr @.str752) + call void @fn_emit(ptr @.str742) %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) - call void @fn_emit(ptr @.str753) + call void @fn_emit(ptr @.str743) %t21 = load ptr, ptr %t2 call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str754) - %t22 = call ptr @fn_lbl(ptr @.str755) + call void @fn_emit(ptr @.str744) + %t22 = call ptr @fn_lbl(ptr @.str745) store ptr %t22, ptr %t23 - %t24 = call ptr @fn_lbl(ptr @.str756) + %t24 = call ptr @fn_lbl(ptr @.str746) 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_streq(ptr %t28, ptr @.str757) + %t29 = call i32 @fn_streq(ptr %t28, ptr @.str747) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then0, label %else1 then0: - call void @fn_emit(ptr @.str758) + call void @fn_emit(ptr @.str748) %t31 = load ptr, ptr %t14 call void @fn_emit(ptr %t31) - call void @fn_emit(ptr @.str759) + call void @fn_emit(ptr @.str749) %t32 = load ptr, ptr %t23 call void @fn_emit(ptr %t32) - call void @fn_emit(ptr @.str760) + call void @fn_emit(ptr @.str750) %t33 = load ptr, ptr %t25 call void @fn_emit(ptr %t33) - call void @fn_emit(ptr @.str761) + call void @fn_emit(ptr @.str751) br label %ifend2 else1: - call void @fn_emit(ptr @.str762) + call void @fn_emit(ptr @.str752) %t34 = load ptr, ptr %t14 call void @fn_emit(ptr %t34) - call void @fn_emit(ptr @.str763) + call void @fn_emit(ptr @.str753) %t35 = load ptr, ptr %t25 call void @fn_emit(ptr %t35) - call void @fn_emit(ptr @.str764) + call void @fn_emit(ptr @.str754) %t36 = load ptr, ptr %t23 call void @fn_emit(ptr %t36) - call void @fn_emit(ptr @.str765) + call void @fn_emit(ptr @.str755) br label %ifend2 ifend2: %t37 = load ptr, ptr %t23 call void @fn_emit(ptr %t37) - call void @fn_emit(ptr @.str766) + call void @fn_emit(ptr @.str756) %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 5 %t40 = load ptr, ptr %t39 @@ -13906,33 +13841,33 @@ ifend2: %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_sconcat(ptr %t45, ptr @.str768) - %t47 = call ptr @fn_sconcat(ptr @.str767, ptr %t46) + %t46 = call ptr @fn_sconcat(ptr %t45, ptr @.str758) + %t47 = call ptr @fn_sconcat(ptr @.str757, ptr %t46) %t48 = call ptr @fn_emit_bind(ptr %t47) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t49 - %t51 = call ptr @fn_sconcat(ptr %t50, ptr @.str770) - %t52 = call ptr @fn_sconcat(ptr @.str769, ptr %t51) + %t51 = call ptr @fn_sconcat(ptr %t50, ptr @.str760) + %t52 = call ptr @fn_sconcat(ptr @.str759, ptr %t51) %t53 = call ptr @fn_emit_bind(ptr %t52) store ptr %t53, ptr %t54 - call void @fn_emit(ptr @.str771) + call void @fn_emit(ptr @.str761) %t55 = load ptr, ptr %t54 call void @fn_emit(ptr %t55) - call void @fn_emit(ptr @.str772) + call void @fn_emit(ptr @.str762) %t56 = load ptr, ptr %t2 call void @fn_emit(ptr %t56) - call void @fn_emit(ptr @.str773) - call void @fn_emit(ptr @.str774) + call void @fn_emit(ptr @.str763) + call void @fn_emit(ptr @.str764) %t57 = load ptr, ptr %t25 call void @fn_emit(ptr %t57) - call void @fn_emit(ptr @.str775) + call void @fn_emit(ptr @.str765) %t58 = load ptr, ptr %t25 call void @fn_emit(ptr %t58) - call void @fn_emit(ptr @.str776) + call void @fn_emit(ptr @.str766) %t59 = load ptr, ptr %t2 - %t60 = call ptr @fn_sconcat(ptr @.str777, ptr %t59) + %t60 = call ptr @fn_sconcat(ptr @.str767, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) - %t62 = call ptr @fn_val(ptr %t61, ptr @.str778) + %t62 = call ptr @fn_val(ptr %t61, ptr @.str768) store ptr %t62, ptr %retval br label %ret ret: @@ -13946,46 +13881,46 @@ entry: %t0 = alloca ptr store ptr %arg_op, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call i32 @fn_streq(ptr %t1, ptr @.str779) + %t2 = call i32 @fn_streq(ptr %t1, ptr @.str769) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: - store ptr @.str780, ptr %retval + store ptr @.str770, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 - %t5 = call i32 @fn_streq(ptr %t4, ptr @.str781) + %t5 = call i32 @fn_streq(ptr %t4, ptr @.str771) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: - store ptr @.str782, ptr %retval + store ptr @.str772, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 - %t8 = call i32 @fn_streq(ptr %t7, ptr @.str783) + %t8 = call i32 @fn_streq(ptr %t7, ptr @.str773) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: - store ptr @.str784, ptr %retval + store ptr @.str774, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 - %t11 = call i32 @fn_streq(ptr %t10, ptr @.str785) + %t11 = call i32 @fn_streq(ptr %t10, ptr @.str775) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: - store ptr @.str786, ptr %retval + store ptr @.str776, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 - %t14 = call i32 @fn_streq(ptr %t13, ptr @.str787) + %t14 = call i32 @fn_streq(ptr %t13, ptr @.str777) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: - store ptr @.str788, ptr %retval + store ptr @.str778, ptr %retval br label %ret ifend14: - store ptr @.str789, ptr %retval + store ptr @.str779, ptr %retval br label %ret ret: %t16 = load ptr, ptr %retval @@ -14003,14 +13938,14 @@ entry: %t5 = alloca i32 store ptr %arg_op, ptr %t0 %t6 = load ptr, ptr %t0 - %t7 = call i32 @fn_streq(ptr %t6, ptr @.str790) + %t7 = call i32 @fn_streq(ptr %t6, ptr @.str780) %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_streq(ptr %t10, ptr @.str791) + %t11 = call i32 @fn_streq(ptr %t10, ptr @.str781) %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t5 @@ -14023,7 +13958,7 @@ scend1: br i1 %t15, label %scend3, label %sc2 sc2: %t17 = load ptr, ptr %t0 - %t18 = call i32 @fn_streq(ptr %t17, ptr @.str792) + %t18 = call i32 @fn_streq(ptr %t17, ptr @.str782) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t4 @@ -14036,7 +13971,7 @@ scend3: br i1 %t22, label %scend5, label %sc4 sc4: %t24 = load ptr, ptr %t0 - %t25 = call i32 @fn_streq(ptr %t24, ptr @.str793) + %t25 = call i32 @fn_streq(ptr %t24, ptr @.str783) %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t3 @@ -14049,7 +13984,7 @@ scend5: br i1 %t29, label %scend7, label %sc6 sc6: %t31 = load ptr, ptr %t0 - %t32 = call i32 @fn_streq(ptr %t31, ptr @.str794) + %t32 = call i32 @fn_streq(ptr %t31, ptr @.str784) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t2 @@ -14062,7 +13997,7 @@ scend7: br i1 %t36, label %scend9, label %sc8 sc8: %t38 = load ptr, ptr %t0 - %t39 = call i32 @fn_streq(ptr %t38, ptr @.str795) + %t39 = call i32 @fn_streq(ptr %t38, ptr @.str785) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t1 @@ -14082,78 +14017,78 @@ entry: %t0 = alloca ptr store ptr %arg_op, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call i32 @fn_streq(ptr %t1, ptr @.str796) + %t2 = call i32 @fn_streq(ptr %t1, ptr @.str786) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: - store ptr @.str797, ptr %retval + store ptr @.str787, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 - %t5 = call i32 @fn_streq(ptr %t4, ptr @.str798) + %t5 = call i32 @fn_streq(ptr %t4, ptr @.str788) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: - store ptr @.str799, ptr %retval + store ptr @.str789, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 - %t8 = call i32 @fn_streq(ptr %t7, ptr @.str800) + %t8 = call i32 @fn_streq(ptr %t7, ptr @.str790) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: - store ptr @.str801, ptr %retval + store ptr @.str791, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 - %t11 = call i32 @fn_streq(ptr %t10, ptr @.str802) + %t11 = call i32 @fn_streq(ptr %t10, ptr @.str792) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: - store ptr @.str803, ptr %retval + store ptr @.str793, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 - %t14 = call i32 @fn_streq(ptr %t13, ptr @.str804) + %t14 = call i32 @fn_streq(ptr %t13, ptr @.str794) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: - store ptr @.str805, ptr %retval + store ptr @.str795, ptr %retval br label %ret ifend14: %t16 = load ptr, ptr %t0 - %t17 = call i32 @fn_streq(ptr %t16, ptr @.str806) + %t17 = call i32 @fn_streq(ptr %t16, ptr @.str796) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: - store ptr @.str807, ptr %retval + store ptr @.str797, ptr %retval br label %ret ifend17: %t19 = load ptr, ptr %t0 - %t20 = call i32 @fn_streq(ptr %t19, ptr @.str808) + %t20 = call i32 @fn_streq(ptr %t19, ptr @.str798) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: - store ptr @.str809, ptr %retval + store ptr @.str799, ptr %retval br label %ret ifend20: %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_streq(ptr %t22, ptr @.str810) + %t23 = call i32 @fn_streq(ptr %t22, ptr @.str800) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: - store ptr @.str811, ptr %retval + store ptr @.str801, ptr %retval br label %ret ifend23: %t25 = load ptr, ptr %t0 - %t26 = call i32 @fn_streq(ptr %t25, ptr @.str812) + %t26 = call i32 @fn_streq(ptr %t25, ptr @.str802) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then24, label %ifend26 then24: - store ptr @.str813, ptr %retval + store ptr @.str803, ptr %retval br label %ret ifend26: - store ptr @.str814, ptr %retval + store ptr @.str804, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval @@ -14168,7 +14103,7 @@ entry: %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_streq(ptr %t3, ptr @.str815) + %t4 = call i32 @fn_streq(ptr %t3, ptr @.str805) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: @@ -14181,8 +14116,8 @@ 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_sconcat(ptr %t11, ptr @.str817) - %t13 = call ptr @fn_sconcat(ptr @.str816, ptr %t12) + %t12 = call ptr @fn_sconcat(ptr %t11, ptr @.str807) + %t13 = call ptr @fn_sconcat(ptr @.str806, ptr %t12) %t14 = call ptr @fn_emit_bind(ptr %t13) store ptr %t14, ptr %retval br label %ret @@ -14202,24 +14137,26 @@ entry: %t42 = alloca i32 %t51 = alloca ptr %t55 = alloca ptr - %t74 = alloca ptr - %t84 = alloca ptr - %t87 = alloca ptr - %t97 = alloca ptr - %t102 = alloca ptr - %t109 = alloca ptr - %t114 = alloca ptr - %t129 = alloca ptr - %t134 = alloca ptr - %t139 = alloca ptr - %t146 = alloca ptr - %t163 = alloca ptr - %t181 = alloca ptr + %t56 = alloca ptr + %t63 = alloca i32 + %t95 = alloca ptr + %t105 = alloca ptr + %t108 = alloca ptr + %t118 = alloca ptr + %t123 = alloca ptr + %t130 = alloca ptr + %t135 = alloca ptr + %t150 = alloca ptr + %t155 = alloca ptr + %t160 = alloca ptr + %t167 = alloca ptr + %t184 = alloca ptr + %t202 = 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_streq(ptr %t4, ptr @.str818) + %t5 = call i32 @fn_streq(ptr %t4, ptr @.str808) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t1 @@ -14228,7 +14165,7 @@ 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_streq(ptr %t10, ptr @.str819) + %t11 = call i32 @fn_streq(ptr %t10, ptr @.str809) %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 @@ -14256,7 +14193,7 @@ ifend4: %t29 = load ptr, ptr %t22 %t30 = getelementptr inbounds %Cmp_Val, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t30 - %t32 = call i32 @fn_streq(ptr %t31, ptr @.str820) + %t32 = call i32 @fn_streq(ptr %t31, ptr @.str810) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t28 @@ -14265,7 +14202,7 @@ sc5: %t35 = load ptr, ptr %t27 %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 1 %t37 = load ptr, ptr %t36 - %t38 = call i32 @fn_streq(ptr %t37, ptr @.str821) + %t38 = call i32 @fn_streq(ptr %t37, ptr @.str811) %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t28 @@ -14288,163 +14225,196 @@ then7: %t53 = getelementptr inbounds %Cmp_Val, ptr %t52, i32 0, i32 0 %t54 = load ptr, ptr %t53 store ptr %t54, ptr %t55 - %t56 = load i32, ptr %t42 - %t57 = icmp ne i32 %t56, 0 - br i1 %t57, label %then10, label %ifend12 + store ptr @.str812, ptr %t56 + %t57 = load i32, ptr %t42 + %t58 = icmp ne i32 %t57, 0 + br i1 %t58, label %then10, label %else11 then10: - %t58 = load ptr, ptr %t22 - %t59 = call ptr @fn_to_fixed(ptr %t58) - store ptr %t59, ptr %t51 - %t60 = load ptr, ptr %t27 - %t61 = call ptr @fn_to_fixed(ptr %t60) - store ptr %t61, ptr %t55 + %t59 = load ptr, ptr %t22 + %t60 = call ptr @fn_to_fixed(ptr %t59) + store ptr %t60, ptr %t51 + %t61 = load ptr, ptr %t27 + %t62 = call ptr @fn_to_fixed(ptr %t61) + store ptr %t62, ptr %t55 + br label %ifend12 +else11: + %t64 = load ptr, ptr %t22 + %t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 1 + %t66 = load ptr, ptr %t65 + %t67 = call ptr @fn_llty(ptr %t66) + %t68 = call i32 @fn_streq(ptr %t67, ptr @.str813) + %t69 = icmp ne i32 %t68, 0 + %t70 = zext i1 %t69 to i32 + store i32 %t70, ptr %t63 + br i1 %t69, label %scend14, label %sc13 +sc13: + %t71 = load ptr, ptr %t27 + %t72 = getelementptr inbounds %Cmp_Val, ptr %t71, i32 0, i32 1 + %t73 = load ptr, ptr %t72 + %t74 = call ptr @fn_llty(ptr %t73) + %t75 = call i32 @fn_streq(ptr %t74, ptr @.str814) + %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 + br i1 %t79, label %then15, label %ifend17 +then15: + store ptr @.str815, ptr %t56 + br label %ifend17 +ifend17: br label %ifend12 ifend12: - %t62 = load ptr, ptr %t0 - %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 - %t64 = load ptr, ptr %t63 - %t65 = call ptr @fn_cmp_code(ptr %t64) - %t66 = load ptr, ptr %t51 - %t67 = load ptr, ptr %t55 - %t68 = call ptr @fn_sconcat(ptr @.str824, ptr %t67) - %t69 = call ptr @fn_sconcat(ptr %t66, ptr %t68) - %t70 = call ptr @fn_sconcat(ptr @.str823, ptr %t69) - %t71 = call ptr @fn_sconcat(ptr %t65, ptr %t70) - %t72 = call ptr @fn_sconcat(ptr @.str822, ptr %t71) - %t73 = call ptr @fn_emit_bind(ptr %t72) - store ptr %t73, ptr %t74 - %t75 = load ptr, ptr %t74 - %t76 = call ptr @fn_sconcat(ptr %t75, ptr @.str826) - %t77 = call ptr @fn_sconcat(ptr @.str825, ptr %t76) - %t78 = call ptr @fn_emit_bind(ptr %t77) - %t79 = call ptr @fn_val(ptr %t78, ptr @.str827) - store ptr %t79, ptr %retval + %t80 = load ptr, ptr %t0 + %t81 = getelementptr inbounds %Cmp_Node, ptr %t80, i32 0, i32 1 + %t82 = load ptr, ptr %t81 + %t83 = call ptr @fn_cmp_code(ptr %t82) + %t84 = load ptr, ptr %t56 + %t85 = call ptr @fn_sconcat(ptr %t84, ptr @.str818) + %t86 = call ptr @fn_sconcat(ptr @.str817, ptr %t85) + %t87 = load ptr, ptr %t51 + %t88 = load ptr, ptr %t55 + %t89 = call ptr @fn_sconcat(ptr @.str819, ptr %t88) + %t90 = call ptr @fn_sconcat(ptr %t87, ptr %t89) + %t91 = call ptr @fn_sconcat(ptr %t86, ptr %t90) + %t92 = call ptr @fn_sconcat(ptr %t83, ptr %t91) + %t93 = call ptr @fn_sconcat(ptr @.str816, ptr %t92) + %t94 = call ptr @fn_emit_bind(ptr %t93) + store ptr %t94, ptr %t95 + %t96 = load ptr, ptr %t95 + %t97 = call ptr @fn_sconcat(ptr %t96, ptr @.str821) + %t98 = call ptr @fn_sconcat(ptr @.str820, ptr %t97) + %t99 = call ptr @fn_emit_bind(ptr %t98) + %t100 = call ptr @fn_val(ptr %t99, ptr @.str822) + store ptr %t100, ptr %retval br label %ret ifend9: - %t80 = load i32, ptr %t42 - %t81 = icmp ne i32 %t80, 0 - br i1 %t81, label %then13, label %ifend15 -then13: - %t82 = load ptr, ptr %t22 - %t83 = call ptr @fn_to_fixed(ptr %t82) - store ptr %t83, ptr %t84 - %t85 = load ptr, ptr %t27 - %t86 = call ptr @fn_to_fixed(ptr %t85) - store ptr %t86, ptr %t87 - %t88 = load ptr, ptr %t0 - %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1 - %t90 = load ptr, ptr %t89 - %t91 = call i32 @fn_streq(ptr %t90, ptr @.str828) - %t92 = icmp ne i32 %t91, 0 - br i1 %t92, label %then16, label %ifend18 -then16: - %t93 = load ptr, ptr %t84 - %t94 = call ptr @fn_sconcat(ptr %t93, ptr @.str830) - %t95 = call ptr @fn_sconcat(ptr @.str829, ptr %t94) - %t96 = call ptr @fn_emit_bind(ptr %t95) - store ptr %t96, ptr %t97 - %t98 = load ptr, ptr %t87 - %t99 = call ptr @fn_sconcat(ptr %t98, ptr @.str832) - %t100 = call ptr @fn_sconcat(ptr @.str831, ptr %t99) - %t101 = call ptr @fn_emit_bind(ptr %t100) - store ptr %t101, ptr %t102 - %t103 = load ptr, ptr %t97 - %t104 = load ptr, ptr %t102 - %t105 = call ptr @fn_sconcat(ptr @.str834, ptr %t104) - %t106 = call ptr @fn_sconcat(ptr %t103, ptr %t105) - %t107 = call ptr @fn_sconcat(ptr @.str833, ptr %t106) - %t108 = call ptr @fn_emit_bind(ptr %t107) - store ptr %t108, ptr %t109 - %t110 = load ptr, ptr %t109 - %t111 = call ptr @fn_sconcat(ptr %t110, ptr @.str836) - %t112 = call ptr @fn_sconcat(ptr @.str835, ptr %t111) - %t113 = call ptr @fn_emit_bind(ptr %t112) - store ptr %t113, ptr %t114 - %t115 = load ptr, ptr %t114 - %t116 = call ptr @fn_sconcat(ptr %t115, ptr @.str838) - %t117 = call ptr @fn_sconcat(ptr @.str837, ptr %t116) - %t118 = call ptr @fn_emit_bind(ptr %t117) - %t119 = call ptr @fn_val(ptr %t118, ptr @.str839) - store ptr %t119, ptr %retval + %t101 = load i32, ptr %t42 + %t102 = icmp ne i32 %t101, 0 + br i1 %t102, label %then18, label %ifend20 +then18: + %t103 = load ptr, ptr %t22 + %t104 = call ptr @fn_to_fixed(ptr %t103) + store ptr %t104, ptr %t105 + %t106 = load ptr, ptr %t27 + %t107 = call ptr @fn_to_fixed(ptr %t106) + store ptr %t107, ptr %t108 + %t109 = load ptr, ptr %t0 + %t110 = getelementptr inbounds %Cmp_Node, ptr %t109, i32 0, i32 1 + %t111 = load ptr, ptr %t110 + %t112 = call i32 @fn_streq(ptr %t111, ptr @.str823) + %t113 = icmp ne i32 %t112, 0 + br i1 %t113, label %then21, label %ifend23 +then21: + %t114 = load ptr, ptr %t105 + %t115 = call ptr @fn_sconcat(ptr %t114, ptr @.str825) + %t116 = call ptr @fn_sconcat(ptr @.str824, ptr %t115) + %t117 = call ptr @fn_emit_bind(ptr %t116) + store ptr %t117, ptr %t118 + %t119 = load ptr, ptr %t108 + %t120 = call ptr @fn_sconcat(ptr %t119, ptr @.str827) + %t121 = call ptr @fn_sconcat(ptr @.str826, ptr %t120) + %t122 = call ptr @fn_emit_bind(ptr %t121) + store ptr %t122, ptr %t123 + %t124 = load ptr, ptr %t118 + %t125 = load ptr, ptr %t123 + %t126 = call ptr @fn_sconcat(ptr @.str829, ptr %t125) + %t127 = call ptr @fn_sconcat(ptr %t124, ptr %t126) + %t128 = call ptr @fn_sconcat(ptr @.str828, ptr %t127) + %t129 = call ptr @fn_emit_bind(ptr %t128) + store ptr %t129, ptr %t130 + %t131 = load ptr, ptr %t130 + %t132 = call ptr @fn_sconcat(ptr %t131, ptr @.str831) + %t133 = call ptr @fn_sconcat(ptr @.str830, ptr %t132) + %t134 = call ptr @fn_emit_bind(ptr %t133) + store ptr %t134, ptr %t135 + %t136 = load ptr, ptr %t135 + %t137 = call ptr @fn_sconcat(ptr %t136, ptr @.str833) + %t138 = call ptr @fn_sconcat(ptr @.str832, ptr %t137) + %t139 = call ptr @fn_emit_bind(ptr %t138) + %t140 = call ptr @fn_val(ptr %t139, ptr @.str834) + store ptr %t140, ptr %retval br label %ret -ifend18: - %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_streq(ptr %t122, ptr @.str840) - %t124 = icmp ne i32 %t123, 0 - br i1 %t124, label %then19, label %ifend21 -then19: - %t125 = load ptr, ptr %t84 - %t126 = call ptr @fn_sconcat(ptr %t125, ptr @.str842) - %t127 = call ptr @fn_sconcat(ptr @.str841, ptr %t126) - %t128 = call ptr @fn_emit_bind(ptr %t127) - store ptr %t128, ptr %t129 - %t130 = load ptr, ptr %t129 - %t131 = call ptr @fn_sconcat(ptr %t130, ptr @.str844) - %t132 = call ptr @fn_sconcat(ptr @.str843, ptr %t131) - %t133 = call ptr @fn_emit_bind(ptr %t132) - store ptr %t133, ptr %t134 - %t135 = load ptr, ptr %t87 - %t136 = call ptr @fn_sconcat(ptr %t135, ptr @.str846) - %t137 = call ptr @fn_sconcat(ptr @.str845, ptr %t136) - %t138 = call ptr @fn_emit_bind(ptr %t137) - store ptr %t138, ptr %t139 - %t140 = load ptr, ptr %t134 - %t141 = load ptr, ptr %t139 - %t142 = call ptr @fn_sconcat(ptr @.str848, ptr %t141) - %t143 = call ptr @fn_sconcat(ptr %t140, ptr %t142) - %t144 = call ptr @fn_sconcat(ptr @.str847, ptr %t143) - %t145 = call ptr @fn_emit_bind(ptr %t144) - store ptr %t145, ptr %t146 - %t147 = load ptr, ptr %t146 - %t148 = call ptr @fn_sconcat(ptr %t147, ptr @.str850) - %t149 = call ptr @fn_sconcat(ptr @.str849, ptr %t148) - %t150 = call ptr @fn_emit_bind(ptr %t149) - %t151 = call ptr @fn_val(ptr %t150, ptr @.str851) - store ptr %t151, ptr %retval - br label %ret -ifend21: - %t152 = load ptr, ptr %t0 - %t153 = getelementptr inbounds %Cmp_Node, ptr %t152, i32 0, i32 1 - %t154 = load ptr, ptr %t153 - %t155 = call ptr @fn_arith_code(ptr %t154) - %t156 = load ptr, ptr %t84 - %t157 = load ptr, ptr %t87 - %t158 = call ptr @fn_sconcat(ptr @.str853, ptr %t157) - %t159 = call ptr @fn_sconcat(ptr %t156, ptr %t158) - %t160 = call ptr @fn_sconcat(ptr @.str852, ptr %t159) - %t161 = call ptr @fn_sconcat(ptr %t155, ptr %t160) - %t162 = call ptr @fn_emit_bind(ptr %t161) - store ptr %t162, ptr %t163 - %t164 = load ptr, ptr %t163 - %t165 = call ptr @fn_val(ptr %t164, ptr @.str854) - store ptr %t165, ptr %retval - br label %ret -ifend15: - %t166 = load ptr, ptr %t0 - %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 1 +ifend23: + %t141 = load ptr, ptr %t0 + %t142 = getelementptr inbounds %Cmp_Node, ptr %t141, i32 0, i32 1 + %t143 = load ptr, ptr %t142 + %t144 = call i32 @fn_streq(ptr %t143, ptr @.str835) + %t145 = icmp ne i32 %t144, 0 + br i1 %t145, label %then24, label %ifend26 +then24: + %t146 = load ptr, ptr %t105 + %t147 = call ptr @fn_sconcat(ptr %t146, ptr @.str837) + %t148 = call ptr @fn_sconcat(ptr @.str836, ptr %t147) + %t149 = call ptr @fn_emit_bind(ptr %t148) + store ptr %t149, ptr %t150 + %t151 = load ptr, ptr %t150 + %t152 = call ptr @fn_sconcat(ptr %t151, ptr @.str839) + %t153 = call ptr @fn_sconcat(ptr @.str838, ptr %t152) + %t154 = call ptr @fn_emit_bind(ptr %t153) + store ptr %t154, ptr %t155 + %t156 = load ptr, ptr %t108 + %t157 = call ptr @fn_sconcat(ptr %t156, ptr @.str841) + %t158 = call ptr @fn_sconcat(ptr @.str840, ptr %t157) + %t159 = call ptr @fn_emit_bind(ptr %t158) + store ptr %t159, ptr %t160 + %t161 = load ptr, ptr %t155 + %t162 = load ptr, ptr %t160 + %t163 = call ptr @fn_sconcat(ptr @.str843, ptr %t162) + %t164 = call ptr @fn_sconcat(ptr %t161, ptr %t163) + %t165 = call ptr @fn_sconcat(ptr @.str842, ptr %t164) + %t166 = call ptr @fn_emit_bind(ptr %t165) + store ptr %t166, ptr %t167 %t168 = load ptr, ptr %t167 - %t169 = call ptr @fn_arith_code(ptr %t168) - %t170 = load ptr, ptr %t22 - %t171 = getelementptr inbounds %Cmp_Val, ptr %t170, i32 0, i32 0 - %t172 = load ptr, ptr %t171 - %t173 = load ptr, ptr %t27 - %t174 = getelementptr inbounds %Cmp_Val, ptr %t173, i32 0, i32 0 + %t169 = call ptr @fn_sconcat(ptr %t168, ptr @.str845) + %t170 = call ptr @fn_sconcat(ptr @.str844, ptr %t169) + %t171 = call ptr @fn_emit_bind(ptr %t170) + %t172 = call ptr @fn_val(ptr %t171, ptr @.str846) + store ptr %t172, ptr %retval + br label %ret +ifend26: + %t173 = load ptr, ptr %t0 + %t174 = getelementptr inbounds %Cmp_Node, ptr %t173, i32 0, i32 1 %t175 = load ptr, ptr %t174 - %t176 = call ptr @fn_sconcat(ptr @.str856, ptr %t175) - %t177 = call ptr @fn_sconcat(ptr %t172, ptr %t176) - %t178 = call ptr @fn_sconcat(ptr @.str855, ptr %t177) - %t179 = call ptr @fn_sconcat(ptr %t169, ptr %t178) - %t180 = call ptr @fn_emit_bind(ptr %t179) - store ptr %t180, ptr %t181 - %t182 = load ptr, ptr %t181 - %t183 = call ptr @fn_val(ptr %t182, ptr @.str857) - store ptr %t183, ptr %retval + %t176 = call ptr @fn_arith_code(ptr %t175) + %t177 = load ptr, ptr %t105 + %t178 = load ptr, ptr %t108 + %t179 = call ptr @fn_sconcat(ptr @.str848, ptr %t178) + %t180 = call ptr @fn_sconcat(ptr %t177, ptr %t179) + %t181 = call ptr @fn_sconcat(ptr @.str847, ptr %t180) + %t182 = call ptr @fn_sconcat(ptr %t176, ptr %t181) + %t183 = call ptr @fn_emit_bind(ptr %t182) + store ptr %t183, ptr %t184 + %t185 = load ptr, ptr %t184 + %t186 = call ptr @fn_val(ptr %t185, ptr @.str849) + store ptr %t186, ptr %retval + br label %ret +ifend20: + %t187 = load ptr, ptr %t0 + %t188 = getelementptr inbounds %Cmp_Node, ptr %t187, i32 0, i32 1 + %t189 = load ptr, ptr %t188 + %t190 = call ptr @fn_arith_code(ptr %t189) + %t191 = load ptr, ptr %t22 + %t192 = getelementptr inbounds %Cmp_Val, ptr %t191, i32 0, i32 0 + %t193 = load ptr, ptr %t192 + %t194 = load ptr, ptr %t27 + %t195 = getelementptr inbounds %Cmp_Val, ptr %t194, i32 0, i32 0 + %t196 = load ptr, ptr %t195 + %t197 = call ptr @fn_sconcat(ptr @.str851, ptr %t196) + %t198 = call ptr @fn_sconcat(ptr %t193, ptr %t197) + %t199 = call ptr @fn_sconcat(ptr @.str850, ptr %t198) + %t200 = call ptr @fn_sconcat(ptr %t190, ptr %t199) + %t201 = call ptr @fn_emit_bind(ptr %t200) + store ptr %t201, ptr %t202 + %t203 = load ptr, ptr %t202 + %t204 = call ptr @fn_val(ptr %t203, ptr @.str852) + store ptr %t204, ptr %retval br label %ret ret: - %t184 = load ptr, ptr %retval - ret ptr %t184 + %t205 = load ptr, ptr %retval + ret ptr %t205 } define ptr @fn_emit_call(ptr %arg_e) { @@ -14471,7 +14441,7 @@ entry: %t5 = load ptr, ptr %t4 store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 - %t8 = call i32 @fn_streq(ptr %t7, ptr @.str858) + %t8 = call i32 @fn_streq(ptr %t7, ptr @.str853) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: @@ -14481,7 +14451,7 @@ then0: %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then3, label %ifend5 then3: - %t14 = call ptr @fn_val(ptr @.str859, ptr @.str860) + %t14 = call ptr @fn_val(ptr @.str854, ptr @.str855) store ptr %t14, ptr %retval br label %ret ifend5: @@ -14492,64 +14462,64 @@ ifend5: %t19 = sub i32 %t18, 1 %t20 = getelementptr inbounds ptr, ptr %t17, i32 %t19 %t21 = load ptr, ptr %t20 - %t22 = call ptr @fn_sconcat(ptr @.str861, ptr %t21) + %t22 = call ptr @fn_sconcat(ptr @.str856, ptr %t21) %t23 = call ptr @fn_emit_bind(ptr %t22) - %t24 = call ptr @fn_val(ptr %t23, ptr @.str862) + %t24 = call ptr @fn_val(ptr %t23, ptr @.str857) store ptr %t24, ptr %retval br label %ret ifend2: %t25 = load ptr, ptr %t6 - %t26 = call i32 @fn_streq(ptr %t25, ptr @.str863) + %t26 = call i32 @fn_streq(ptr %t25, ptr @.str858) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: - %t28 = call ptr @fn_emit_bind(ptr @.str864) - %t29 = call ptr @fn_val(ptr %t28, ptr @.str865) + %t28 = call ptr @fn_emit_bind(ptr @.str859) + %t29 = call ptr @fn_val(ptr %t28, ptr @.str860) store ptr %t29, ptr %retval br label %ret ifend8: %t30 = load ptr, ptr %t6 - %t31 = call i32 @fn_streq(ptr %t30, ptr @.str866) + %t31 = call i32 @fn_streq(ptr %t30, ptr @.str861) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then9, label %ifend11 then9: - call void @fn_emit(ptr @.str867) - %t33 = call ptr @fn_val(ptr @.str868, ptr @.str869) + call void @fn_emit(ptr @.str862) + %t33 = call ptr @fn_val(ptr @.str863, ptr @.str864) store ptr %t33, ptr %retval br label %ret ifend11: %t34 = load ptr, ptr %t6 - %t35 = call i32 @fn_streq(ptr %t34, ptr @.str870) + %t35 = call i32 @fn_streq(ptr %t34, ptr @.str865) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then12, label %ifend14 then12: - call void @fn_emit(ptr @.str871) - %t37 = call ptr @fn_val(ptr @.str872, ptr @.str873) + call void @fn_emit(ptr @.str866) + %t37 = call ptr @fn_val(ptr @.str867, ptr @.str868) store ptr %t37, ptr %retval br label %ret ifend14: %t38 = load ptr, ptr %t6 - %t39 = call i32 @fn_streq(ptr %t38, ptr @.str874) + %t39 = call i32 @fn_streq(ptr %t38, ptr @.str869) %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then15, label %ifend17 then15: - %t41 = call ptr @fn_emit_bind(ptr @.str875) - %t42 = call ptr @fn_val(ptr %t41, ptr @.str876) + %t41 = call ptr @fn_emit_bind(ptr @.str870) + %t42 = call ptr @fn_val(ptr %t41, ptr @.str871) store ptr %t42, ptr %retval br label %ret ifend17: %t43 = load ptr, ptr %t6 - %t44 = call i32 @fn_streq(ptr %t43, ptr @.str877) + %t44 = call i32 @fn_streq(ptr %t43, ptr @.str872) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then18, label %ifend20 then18: - call void @fn_emit(ptr @.str878) - %t46 = call ptr @fn_val(ptr @.str879, ptr @.str880) + call void @fn_emit(ptr @.str873) + %t46 = call ptr @fn_val(ptr @.str874, ptr @.str875) store ptr %t46, ptr %retval br label %ret ifend20: %t47 = load ptr, ptr %t6 - %t48 = call i32 @fn_streq(ptr %t47, ptr @.str881) + %t48 = call i32 @fn_streq(ptr %t47, ptr @.str876) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then21, label %ifend23 then21: @@ -14559,7 +14529,7 @@ then21: br label %ret ifend23: %t52 = load ptr, ptr %t6 - %t53 = call i32 @fn_streq(ptr %t52, ptr @.str882) + %t53 = call i32 @fn_streq(ptr %t52, ptr @.str877) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then24, label %ifend26 then24: @@ -14569,7 +14539,7 @@ then24: br label %ret ifend26: %t57 = load ptr, ptr %t6 - %t58 = call i32 @fn_streq(ptr %t57, ptr @.str883) + %t58 = call i32 @fn_streq(ptr %t57, ptr @.str878) %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %then27, label %ifend29 then27: @@ -14585,15 +14555,15 @@ then27: %t69 = load ptr, ptr %t68 %t70 = getelementptr inbounds %Cmp_Val, ptr %t69, i32 0, i32 0 %t71 = load ptr, ptr %t70 - %t72 = call ptr @fn_sconcat(ptr %t71, ptr @.str885) - %t73 = call ptr @fn_sconcat(ptr @.str884, ptr %t72) + %t72 = call ptr @fn_sconcat(ptr %t71, ptr @.str880) + %t73 = call ptr @fn_sconcat(ptr @.str879, ptr %t72) %t74 = call ptr @fn_emit_bind(ptr %t73) - %t75 = call ptr @fn_val(ptr %t74, ptr @.str886) + %t75 = call ptr @fn_val(ptr %t74, ptr @.str881) store ptr %t75, ptr %retval br label %ret ifend29: %t76 = load ptr, ptr %t6 - %t77 = call i32 @fn_streq(ptr %t76, ptr @.str887) + %t77 = call i32 @fn_streq(ptr %t76, ptr @.str882) %t78 = icmp ne i32 %t77, 0 br i1 %t78, label %then30, label %ifend32 then30: @@ -14609,10 +14579,10 @@ then30: %t88 = load ptr, ptr %t87 %t89 = getelementptr inbounds %Cmp_Val, ptr %t88, i32 0, i32 0 %t90 = load ptr, ptr %t89 - %t91 = call ptr @fn_sconcat(ptr %t90, ptr @.str889) - %t92 = call ptr @fn_sconcat(ptr @.str888, ptr %t91) + %t91 = call ptr @fn_sconcat(ptr %t90, ptr @.str884) + %t92 = call ptr @fn_sconcat(ptr @.str883, ptr %t91) %t93 = call ptr @fn_emit_bind(ptr %t92) - %t94 = call ptr @fn_val(ptr %t93, ptr @.str890) + %t94 = call ptr @fn_val(ptr %t93, ptr @.str885) store ptr %t94, ptr %retval br label %ret ifend32: @@ -14661,7 +14631,7 @@ ifend41: br i1 %t121, label %then42, label %ifend44 then42: %t122 = load ptr, ptr %t6 - %t123 = call ptr @fn_sconcat(ptr @.str891, ptr %t122) + %t123 = call ptr @fn_sconcat(ptr @.str886, ptr %t122) store ptr %t123, ptr %t124 %t125 = load ptr, ptr %t124 %t126 = call ptr @fn_find_fn(ptr %t125) @@ -14673,7 +14643,7 @@ then42: br i1 %t130, label %then45, label %ifend47 then45: %t131 = load ptr, ptr %t6 - %t132 = call ptr @fn_sconcat(ptr @.str892, ptr %t131) + %t132 = call ptr @fn_sconcat(ptr @.str887, ptr %t131) call void @fn_perr(ptr %t132) br label %ifend47 ifend47: @@ -14795,10 +14765,10 @@ wend50: %t216 = load ptr, ptr %t215 %t217 = call ptr @fn_llty(ptr %t216) store ptr %t217, ptr %t218 - call void @fn_emit(ptr @.str893) - store ptr @.str894, ptr %t219 + call void @fn_emit(ptr @.str888) + store ptr @.str889, ptr %t219 %t220 = load ptr, ptr %t218 - %t221 = call i32 @fn_streq(ptr %t220, ptr @.str895) + %t221 = call i32 @fn_streq(ptr %t220, ptr @.str890) %t222 = icmp eq i32 %t221, 0 %t223 = zext i1 %t222 to i32 %t224 = icmp ne i32 %t223, 0 @@ -14808,16 +14778,16 @@ then55: store ptr %t225, ptr %t219 %t226 = load ptr, ptr %t219 call void @fn_emit(ptr %t226) - call void @fn_emit(ptr @.str896) + call void @fn_emit(ptr @.str891) br label %ifend57 ifend57: - call void @fn_emit(ptr @.str897) + call void @fn_emit(ptr @.str892) %t227 = load ptr, ptr %t218 call void @fn_emit(ptr %t227) - call void @fn_emit(ptr @.str898) + call void @fn_emit(ptr @.str893) %t228 = load ptr, ptr %t117 call void @fn_emit(ptr %t228) - call void @fn_emit(ptr @.str899) + call void @fn_emit(ptr @.str894) store i32 0, ptr %t148 br label %wcond58 wcond58: @@ -14836,7 +14806,7 @@ wbody59: %t239 = icmp ne i32 %t238, 0 br i1 %t239, label %then61, label %ifend63 then61: - call void @fn_emit(ptr @.str900) + call void @fn_emit(ptr @.str895) br label %ifend63 ifend63: %t240 = load ptr, ptr %t147 @@ -14847,7 +14817,7 @@ ifend63: %t245 = load ptr, ptr %t244 %t246 = call ptr @fn_llty(ptr %t245) call void @fn_emit(ptr %t246) - call void @fn_emit(ptr @.str901) + call void @fn_emit(ptr @.str896) %t247 = load ptr, ptr %t140 %t248 = getelementptr inbounds %LSlice, ptr %t247, i32 0, i32 0 %t249 = load ptr, ptr %t248 @@ -14860,7 +14830,7 @@ ifend63: store i32 %t254, ptr %t148 br label %wcond58 wend60: - call void @fn_emit(ptr @.str902) + call void @fn_emit(ptr @.str897) %t255 = load ptr, ptr %t219 %t256 = load ptr, ptr %t115 %t257 = getelementptr inbounds %Cmp_Node, ptr %t256, i32 0, i32 3 @@ -14877,16 +14847,16 @@ define ptr @fn_emit_expr(ptr %arg_e) { entry: %retval = alloca ptr %t0 = alloca ptr - %t79 = alloca i32 - %t101 = alloca ptr - %t132 = alloca ptr - %t176 = alloca i32 - %t188 = alloca ptr - %t200 = alloca ptr - %t215 = alloca ptr - %t227 = alloca ptr - %t257 = alloca ptr - %t287 = alloca ptr + %t86 = alloca i32 + %t108 = alloca ptr + %t137 = alloca ptr + %t181 = alloca i32 + %t193 = alloca ptr + %t203 = alloca ptr + %t216 = alloca ptr + %t228 = alloca ptr + %t258 = alloca ptr + %t288 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = icmp eq ptr %t1, null @@ -14894,7 +14864,7 @@ entry: %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: - %t5 = call ptr @fn_val(ptr @.str903, ptr @.str904) + %t5 = call ptr @fn_val(ptr @.str898, ptr @.str899) store ptr %t5, ptr %retval br label %ret ifend2: @@ -14910,7 +14880,7 @@ then3: %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 @.str905) + %t16 = call ptr @fn_val(ptr %t15, ptr @.str900) store ptr %t16, ptr %retval br label %ret ifend5: @@ -14926,7 +14896,7 @@ then6: %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 @.str906) + %t27 = call ptr @fn_val(ptr %t26, ptr @.str901) store ptr %t27, ptr %retval br label %ret ifend8: @@ -14942,364 +14912,370 @@ then9: %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 @.str907) + %t38 = call ptr @fn_val(ptr %t37, ptr @.str902) 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, 31 + %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 = load ptr, ptr %t0 - %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 - %t47 = load ptr, ptr %t46 - %t48 = call ptr @fn_emit_str_const(ptr %t47) - %t49 = call ptr @fn_val(ptr %t48, ptr @.str908) - store ptr %t49, ptr %retval + %t45 = call ptr @fn_val(ptr @.str903, ptr @.str904) + store ptr %t45, ptr %retval br label %ret ifend14: - %t50 = load ptr, ptr %t0 - %t51 = getelementptr inbounds %Cmp_Node, ptr %t50, i32 0, i32 0 - %t52 = load i32, ptr %t51 - %t53 = icmp eq i32 %t52, 39 - %t54 = zext i1 %t53 to i32 - %t55 = icmp ne i32 %t54, 0 - br i1 %t55, label %then15, label %ifend17 + %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, 31 + %t50 = zext i1 %t49 to i32 + %t51 = icmp ne i32 %t50, 0 + br i1 %t51, label %then15, label %ifend17 then15: - %t56 = load ptr, ptr %t0 - %t57 = getelementptr inbounds %Cmp_Node, ptr %t56, i32 0, i32 1 - %t58 = load ptr, ptr %t57 - %t59 = call i32 @fn_is_slice_ty(ptr %t58) - %t60 = icmp ne i32 %t59, 0 - br i1 %t60, label %then18, label %ifend20 -then18: - %t61 = load ptr, ptr %t0 - %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 1 - %t63 = load ptr, ptr %t62 - %t64 = call ptr @fn_emit_new_slice(ptr %t63) - store ptr %t64, ptr %retval - br label %ret -ifend20: - %t65 = load ptr, ptr %t0 - %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 1 - %t67 = load ptr, ptr %t66 - %t68 = call ptr @fn_emit_new_struct(ptr %t67) - store ptr %t68, ptr %retval + %t52 = load ptr, ptr %t0 + %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 1 + %t54 = load ptr, ptr %t53 + %t55 = call ptr @fn_emit_str_const(ptr %t54) + %t56 = call ptr @fn_val(ptr %t55, ptr @.str905) + store ptr %t56, ptr %retval br label %ret ifend17: - %t69 = load ptr, ptr %t0 - %t70 = getelementptr inbounds %Cmp_Node, ptr %t69, i32 0, i32 0 - %t71 = load i32, ptr %t70 - %t72 = icmp eq i32 %t71, 33 - %t73 = zext i1 %t72 to i32 - %t74 = icmp ne i32 %t73, 0 - br i1 %t74, label %then21, label %ifend23 + %t57 = load ptr, ptr %t0 + %t58 = getelementptr inbounds %Cmp_Node, ptr %t57, i32 0, i32 0 + %t59 = load i32, ptr %t58 + %t60 = icmp eq i32 %t59, 39 + %t61 = zext i1 %t60 to i32 + %t62 = icmp ne i32 %t61, 0 + br i1 %t62, label %then18, label %ifend20 +then18: + %t63 = load ptr, ptr %t0 + %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 1 + %t65 = load ptr, ptr %t64 + %t66 = call i32 @fn_is_slice_ty(ptr %t65) + %t67 = icmp ne i32 %t66, 0 + br i1 %t67, label %then21, label %ifend23 then21: - %t75 = load ptr, ptr %t0 - %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 1 - %t77 = load ptr, ptr %t76 - %t78 = call i32 @fn_loc_find(ptr %t77) - store i32 %t78, ptr %t79 - %t80 = load i32, ptr %t79 - %t81 = icmp sge i32 %t80, 0 - %t82 = zext i1 %t81 to i32 - %t83 = icmp ne i32 %t82, 0 - br i1 %t83, label %then24, label %ifend26 + %t68 = load ptr, ptr %t0 + %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 + %t70 = load ptr, ptr %t69 + %t71 = call ptr @fn_emit_new_slice(ptr %t70) + store ptr %t71, ptr %retval + br label %ret +ifend23: + %t72 = load ptr, ptr %t0 + %t73 = getelementptr inbounds %Cmp_Node, ptr %t72, i32 0, i32 1 + %t74 = load ptr, ptr %t73 + %t75 = call ptr @fn_emit_new_struct(ptr %t74) + store ptr %t75, ptr %retval + br label %ret +ifend20: + %t76 = load ptr, ptr %t0 + %t77 = getelementptr inbounds %Cmp_Node, ptr %t76, i32 0, i32 0 + %t78 = load i32, ptr %t77 + %t79 = icmp eq i32 %t78, 33 + %t80 = zext i1 %t79 to i32 + %t81 = icmp ne i32 %t80, 0 + br i1 %t81, label %then24, label %ifend26 then24: - %t84 = load ptr, ptr @g_loc_reg - %t85 = getelementptr inbounds %LSlice, ptr %t84, i32 0, i32 0 - %t86 = load ptr, ptr %t85 - %t87 = load i32, ptr %t79 - %t88 = getelementptr inbounds ptr, ptr %t86, i32 %t87 - %t89 = load ptr, ptr %t88 - %t90 = load ptr, ptr @g_loc_ty - %t91 = getelementptr inbounds %LSlice, ptr %t90, i32 0, i32 0 - %t92 = load ptr, ptr %t91 - %t93 = load i32, ptr %t79 - %t94 = getelementptr inbounds ptr, ptr %t92, i32 %t93 - %t95 = load ptr, ptr %t94 - %t96 = call ptr @fn_emit_load_at(ptr %t89, ptr %t95) - store ptr %t96, ptr %retval - br label %ret -ifend26: - %t97 = load ptr, ptr %t0 - %t98 = getelementptr inbounds %Cmp_Node, ptr %t97, i32 0, i32 1 - %t99 = load ptr, ptr %t98 - %t100 = call ptr @fn_find_global(ptr %t99) - store ptr %t100, ptr %t101 - %t102 = load ptr, ptr %t101 - %t103 = icmp eq ptr %t102, null - %t104 = zext i1 %t103 to i32 - %t105 = icmp eq i32 %t104, 0 - %t106 = zext i1 %t105 to i32 - %t107 = icmp ne i32 %t106, 0 - br i1 %t107, label %then27, label %ifend29 + %t82 = load ptr, ptr %t0 + %t83 = getelementptr inbounds %Cmp_Node, ptr %t82, i32 0, i32 1 + %t84 = load ptr, ptr %t83 + %t85 = call i32 @fn_loc_find(ptr %t84) + store i32 %t85, ptr %t86 + %t87 = load i32, ptr %t86 + %t88 = icmp sge i32 %t87, 0 + %t89 = zext i1 %t88 to i32 + %t90 = icmp ne i32 %t89, 0 + br i1 %t90, label %then27, label %ifend29 then27: - %t108 = load ptr, ptr %t101 - %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 0 - %t110 = load i32, ptr %t109 - %t111 = icmp eq i32 %t110, 3 - %t112 = zext i1 %t111 to i32 - %t113 = icmp ne i32 %t112, 0 - br i1 %t113, label %then30, label %ifend32 -then30: - %t114 = load ptr, ptr %t101 - %t115 = getelementptr inbounds %Cmp_Node, ptr %t114, i32 0, i32 4 - %t116 = load ptr, ptr %t115 - %t117 = getelementptr inbounds %Cmp_Node, ptr %t116, i32 0, i32 2 - %t118 = load i32, ptr %t117 - %t119 = call ptr @fn_itoa(i32 %t118) - %t120 = call ptr @fn_val(ptr %t119, ptr @.str909) - store ptr %t120, ptr %retval - br label %ret -ifend32: - %t121 = load ptr, ptr %t101 - %t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 3 - %t123 = load ptr, ptr %t122 - %t124 = call ptr @fn_llty(ptr %t123) - %t125 = load ptr, ptr %t0 - %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 1 - %t127 = load ptr, ptr %t126 - %t128 = call ptr @fn_sconcat(ptr @.str911, ptr %t127) - %t129 = call ptr @fn_sconcat(ptr %t124, ptr %t128) - %t130 = call ptr @fn_sconcat(ptr @.str910, ptr %t129) - %t131 = call ptr @fn_emit_bind(ptr %t130) - store ptr %t131, ptr %t132 - %t133 = load ptr, ptr %t132 - %t134 = load ptr, ptr %t101 - %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 3 - %t136 = load ptr, ptr %t135 - %t137 = call ptr @fn_val(ptr %t133, ptr %t136) - store ptr %t137, ptr %retval + %t91 = load ptr, ptr @g_loc_reg + %t92 = getelementptr inbounds %LSlice, ptr %t91, i32 0, i32 0 + %t93 = load ptr, ptr %t92 + %t94 = load i32, ptr %t86 + %t95 = getelementptr inbounds ptr, ptr %t93, i32 %t94 + %t96 = load ptr, ptr %t95 + %t97 = load ptr, ptr @g_loc_ty + %t98 = getelementptr inbounds %LSlice, ptr %t97, i32 0, i32 0 + %t99 = load ptr, ptr %t98 + %t100 = load i32, ptr %t86 + %t101 = getelementptr inbounds ptr, ptr %t99, i32 %t100 + %t102 = load ptr, ptr %t101 + %t103 = call ptr @fn_emit_load_at(ptr %t96, ptr %t102) + store ptr %t103, ptr %retval br label %ret ifend29: - %t138 = load ptr, ptr %t0 - %t139 = getelementptr inbounds %Cmp_Node, ptr %t138, i32 0, i32 1 - %t140 = load ptr, ptr %t139 - %t141 = call i32 @fn_is_ui_ident(ptr %t140) - %t142 = icmp ne i32 %t141, 0 - br i1 %t142, label %then33, label %ifend35 + %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_find_global(ptr %t106) + store ptr %t107, ptr %t108 + %t109 = load ptr, ptr %t108 + %t110 = icmp ne ptr %t109, null + %t111 = zext i1 %t110 to i32 + %t112 = icmp ne i32 %t111, 0 + br i1 %t112, label %then30, label %ifend32 +then30: + %t113 = load ptr, ptr %t108 + %t114 = getelementptr inbounds %Cmp_Node, ptr %t113, i32 0, i32 0 + %t115 = load i32, ptr %t114 + %t116 = icmp eq i32 %t115, 3 + %t117 = zext i1 %t116 to i32 + %t118 = icmp ne i32 %t117, 0 + br i1 %t118, label %then33, label %ifend35 then33: + %t119 = load ptr, ptr %t108 + %t120 = getelementptr inbounds %Cmp_Node, ptr %t119, i32 0, i32 4 + %t121 = load ptr, ptr %t120 + %t122 = getelementptr inbounds %Cmp_Node, ptr %t121, i32 0, i32 2 + %t123 = load i32, ptr %t122 + %t124 = call ptr @fn_itoa(i32 %t123) + %t125 = call ptr @fn_val(ptr %t124, ptr @.str906) + store ptr %t125, ptr %retval + br label %ret +ifend35: + %t126 = load ptr, ptr %t108 + %t127 = getelementptr inbounds %Cmp_Node, ptr %t126, i32 0, i32 3 + %t128 = load ptr, ptr %t127 + %t129 = call ptr @fn_llty(ptr %t128) + %t130 = load ptr, ptr %t0 + %t131 = getelementptr inbounds %Cmp_Node, ptr %t130, i32 0, i32 1 + %t132 = load ptr, ptr %t131 + %t133 = call ptr @fn_sconcat(ptr @.str908, ptr %t132) + %t134 = call ptr @fn_sconcat(ptr %t129, ptr %t133) + %t135 = call ptr @fn_sconcat(ptr @.str907, ptr %t134) + %t136 = call ptr @fn_emit_bind(ptr %t135) + store ptr %t136, ptr %t137 + %t138 = load ptr, ptr %t137 + %t139 = load ptr, ptr %t108 + %t140 = getelementptr inbounds %Cmp_Node, ptr %t139, i32 0, i32 3 + %t141 = load ptr, ptr %t140 + %t142 = call ptr @fn_val(ptr %t138, ptr %t141) + store ptr %t142, ptr %retval + br label %ret +ifend32: %t143 = load ptr, ptr %t0 %t144 = getelementptr inbounds %Cmp_Node, ptr %t143, i32 0, i32 1 %t145 = load ptr, ptr %t144 - %t146 = call i32 @fn_ui_index_of(ptr %t145) - %t147 = call ptr @fn_itoa(i32 %t146) - %t148 = call ptr @fn_val(ptr %t147, ptr @.str912) - store ptr %t148, ptr %retval - br label %ret -ifend35: - %t149 = load ptr, ptr %t0 - %t150 = getelementptr inbounds %Cmp_Node, ptr %t149, i32 0, i32 1 - %t151 = load ptr, ptr %t150 - %t152 = call ptr @fn_sconcat(ptr @.str913, ptr %t151) - call void @fn_perr(ptr %t152) - br label %ifend23 -ifend23: - %t153 = load ptr, ptr %t0 - %t154 = getelementptr inbounds %Cmp_Node, ptr %t153, i32 0, i32 0 - %t155 = load i32, ptr %t154 - %t156 = icmp eq i32 %t155, 35 - %t157 = zext i1 %t156 to i32 - %t158 = icmp ne i32 %t157, 0 - br i1 %t158, label %then36, label %ifend38 + %t146 = call i32 @fn_is_ui_ident(ptr %t145) + %t147 = icmp ne i32 %t146, 0 + br i1 %t147, label %then36, label %ifend38 then36: - %t159 = load ptr, ptr %t0 - %t160 = getelementptr inbounds %Cmp_Node, ptr %t159, i32 0, i32 4 - %t161 = load ptr, ptr %t160 - %t162 = getelementptr inbounds %Cmp_Node, ptr %t161, i32 0, i32 0 - %t163 = load i32, ptr %t162 - %t164 = icmp eq i32 %t163, 33 - %t165 = zext i1 %t164 to i32 - %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 4 - %t169 = load ptr, ptr %t168 - %t170 = getelementptr inbounds %Cmp_Node, ptr %t169, i32 0, i32 1 - %t171 = load ptr, ptr %t170 - %t172 = load ptr, ptr %t0 - %t173 = getelementptr inbounds %Cmp_Node, ptr %t172, i32 0, i32 1 - %t174 = load ptr, ptr %t173 - %t175 = call i32 @fn_enum_ordinal(ptr %t171, ptr %t174) - store i32 %t175, ptr %t176 - %t177 = load i32, ptr %t176 - %t178 = icmp sge i32 %t177, 0 - %t179 = zext i1 %t178 to i32 - %t180 = icmp ne i32 %t179, 0 - br i1 %t180, label %then42, label %ifend44 -then42: - %t181 = load i32, ptr %t176 - %t182 = call ptr @fn_itoa(i32 %t181) - %t183 = call ptr @fn_val(ptr %t182, ptr @.str914) - store ptr %t183, ptr %retval - br label %ret -ifend44: - br label %ifend41 -ifend41: - %t184 = load ptr, ptr %t0 - %t185 = getelementptr inbounds %Cmp_Node, ptr %t184, i32 0, i32 4 - %t186 = load ptr, ptr %t185 - %t187 = call ptr @fn_static_type(ptr %t186) - store ptr %t187, ptr %t188 - %t189 = load ptr, ptr %t188 - %t190 = icmp eq ptr %t189, null - %t191 = zext i1 %t190 to i32 - %t192 = icmp eq i32 %t191, 0 - %t193 = zext i1 %t192 to i32 - %t194 = icmp ne i32 %t193, 0 - br i1 %t194, label %then45, label %ifend47 -then45: - %t195 = load ptr, ptr %t188 - %t196 = load ptr, ptr %t0 - %t197 = getelementptr inbounds %Cmp_Node, ptr %t196, i32 0, i32 1 - %t198 = load ptr, ptr %t197 - %t199 = call ptr @fn_computed_expr(ptr %t195, ptr %t198) - store ptr %t199, ptr %t200 - %t201 = load ptr, ptr %t200 - %t202 = icmp eq ptr %t201, null - %t203 = zext i1 %t202 to i32 - %t204 = icmp eq i32 %t203, 0 - %t205 = zext i1 %t204 to i32 - %t206 = icmp ne i32 %t205, 0 - br i1 %t206, label %then48, label %ifend50 -then48: - %t207 = load ptr, ptr %t200 - %t208 = load ptr, ptr %t0 - %t209 = getelementptr inbounds %Cmp_Node, ptr %t208, i32 0, i32 4 - %t210 = load ptr, ptr %t209 - %t211 = call ptr @fn_qualify_fields(ptr %t207, ptr %t210) - %t212 = call ptr @fn_emit_expr(ptr %t211) - store ptr %t212, ptr %retval - br label %ret -ifend50: - br label %ifend47 -ifend47: - %t213 = load ptr, ptr %t0 - %t214 = call ptr @fn_emit_member_addr(ptr %t213) - store ptr %t214, ptr %t215 - %t216 = load ptr, ptr %t215 - %t217 = load ptr, ptr @g_g_addr_ty - %t218 = call ptr @fn_emit_load_at(ptr %t216, ptr %t217) - store ptr %t218, ptr %retval + %t148 = load ptr, ptr %t0 + %t149 = getelementptr inbounds %Cmp_Node, ptr %t148, i32 0, i32 1 + %t150 = load ptr, ptr %t149 + %t151 = call i32 @fn_ui_index_of(ptr %t150) + %t152 = call ptr @fn_itoa(i32 %t151) + %t153 = call ptr @fn_val(ptr %t152, ptr @.str909) + store ptr %t153, ptr %retval br label %ret ifend38: - %t219 = load ptr, ptr %t0 - %t220 = getelementptr inbounds %Cmp_Node, ptr %t219, i32 0, i32 0 - %t221 = load i32, ptr %t220 - %t222 = icmp eq i32 %t221, 36 - %t223 = zext i1 %t222 to i32 - %t224 = icmp ne i32 %t223, 0 - br i1 %t224, label %then51, label %ifend53 + %t154 = load ptr, ptr %t0 + %t155 = getelementptr inbounds %Cmp_Node, ptr %t154, i32 0, i32 1 + %t156 = load ptr, ptr %t155 + %t157 = call ptr @fn_sconcat(ptr @.str910, ptr %t156) + call void @fn_perr(ptr %t157) + br label %ifend26 +ifend26: + %t158 = load ptr, ptr %t0 + %t159 = getelementptr inbounds %Cmp_Node, ptr %t158, i32 0, i32 0 + %t160 = load i32, ptr %t159 + %t161 = icmp eq i32 %t160, 35 + %t162 = zext i1 %t161 to i32 + %t163 = icmp ne i32 %t162, 0 + br i1 %t163, label %then39, label %ifend41 +then39: + %t164 = load ptr, ptr %t0 + %t165 = getelementptr inbounds %Cmp_Node, ptr %t164, i32 0, i32 4 + %t166 = load ptr, ptr %t165 + %t167 = getelementptr inbounds %Cmp_Node, ptr %t166, i32 0, i32 0 + %t168 = load i32, ptr %t167 + %t169 = icmp eq i32 %t168, 33 + %t170 = zext i1 %t169 to i32 + %t171 = icmp ne i32 %t170, 0 + br i1 %t171, label %then42, label %ifend44 +then42: + %t172 = load ptr, ptr %t0 + %t173 = getelementptr inbounds %Cmp_Node, ptr %t172, i32 0, i32 4 + %t174 = load ptr, ptr %t173 + %t175 = getelementptr inbounds %Cmp_Node, ptr %t174, i32 0, i32 1 + %t176 = load ptr, ptr %t175 + %t177 = load ptr, ptr %t0 + %t178 = getelementptr inbounds %Cmp_Node, ptr %t177, i32 0, i32 1 + %t179 = load ptr, ptr %t178 + %t180 = call i32 @fn_enum_ordinal(ptr %t176, ptr %t179) + store i32 %t180, ptr %t181 + %t182 = load i32, ptr %t181 + %t183 = icmp sge i32 %t182, 0 + %t184 = zext i1 %t183 to i32 + %t185 = icmp ne i32 %t184, 0 + br i1 %t185, label %then45, label %ifend47 +then45: + %t186 = load i32, ptr %t181 + %t187 = call ptr @fn_itoa(i32 %t186) + %t188 = call ptr @fn_val(ptr %t187, ptr @.str911) + store ptr %t188, ptr %retval + br label %ret +ifend47: + br label %ifend44 +ifend44: + %t189 = load ptr, ptr %t0 + %t190 = getelementptr inbounds %Cmp_Node, ptr %t189, i32 0, i32 4 + %t191 = load ptr, ptr %t190 + %t192 = call ptr @fn_static_type(ptr %t191) + store ptr %t192, ptr %t193 + %t194 = load ptr, ptr %t193 + %t195 = icmp ne ptr %t194, null + %t196 = zext i1 %t195 to i32 + %t197 = icmp ne i32 %t196, 0 + br i1 %t197, label %then48, label %ifend50 +then48: + %t198 = load ptr, ptr %t193 + %t199 = load ptr, ptr %t0 + %t200 = getelementptr inbounds %Cmp_Node, ptr %t199, i32 0, i32 1 + %t201 = load ptr, ptr %t200 + %t202 = call ptr @fn_computed_expr(ptr %t198, ptr %t201) + store ptr %t202, ptr %t203 + %t204 = load ptr, ptr %t203 + %t205 = icmp ne ptr %t204, null + %t206 = zext i1 %t205 to i32 + %t207 = icmp ne i32 %t206, 0 + br i1 %t207, label %then51, label %ifend53 then51: - %t225 = load ptr, ptr %t0 - %t226 = call ptr @fn_emit_index_addr(ptr %t225) - store ptr %t226, ptr %t227 - %t228 = load ptr, ptr %t227 - %t229 = load ptr, ptr @g_g_addr_ty - %t230 = call ptr @fn_emit_load_at(ptr %t228, ptr %t229) - store ptr %t230, ptr %retval + %t208 = load ptr, ptr %t203 + %t209 = load ptr, ptr %t0 + %t210 = getelementptr inbounds %Cmp_Node, ptr %t209, i32 0, i32 4 + %t211 = load ptr, ptr %t210 + %t212 = call ptr @fn_qualify_fields(ptr %t208, ptr %t211) + %t213 = call ptr @fn_emit_expr(ptr %t212) + store ptr %t213, ptr %retval br label %ret ifend53: - %t231 = load ptr, ptr %t0 - %t232 = getelementptr inbounds %Cmp_Node, ptr %t231, i32 0, i32 0 - %t233 = load i32, ptr %t232 - %t234 = icmp eq i32 %t233, 34 - %t235 = zext i1 %t234 to i32 - %t236 = icmp ne i32 %t235, 0 - br i1 %t236, label %then54, label %ifend56 + br label %ifend50 +ifend50: + %t214 = load ptr, ptr %t0 + %t215 = call ptr @fn_emit_member_addr(ptr %t214) + store ptr %t215, ptr %t216 + %t217 = load ptr, ptr %t216 + %t218 = load ptr, ptr @g_g_addr_ty + %t219 = call ptr @fn_emit_load_at(ptr %t217, ptr %t218) + store ptr %t219, ptr %retval + br label %ret +ifend41: + %t220 = load ptr, ptr %t0 + %t221 = getelementptr inbounds %Cmp_Node, ptr %t220, i32 0, i32 0 + %t222 = load i32, ptr %t221 + %t223 = icmp eq i32 %t222, 36 + %t224 = zext i1 %t223 to i32 + %t225 = icmp ne i32 %t224, 0 + br i1 %t225, label %then54, label %ifend56 then54: - %t237 = load ptr, ptr %t0 - %t238 = call ptr @fn_emit_call(ptr %t237) - store ptr %t238, ptr %retval + %t226 = load ptr, ptr %t0 + %t227 = call ptr @fn_emit_index_addr(ptr %t226) + store ptr %t227, ptr %t228 + %t229 = load ptr, ptr %t228 + %t230 = load ptr, ptr @g_g_addr_ty + %t231 = call ptr @fn_emit_load_at(ptr %t229, ptr %t230) + store ptr %t231, ptr %retval br label %ret ifend56: - %t239 = load ptr, ptr %t0 - %t240 = getelementptr inbounds %Cmp_Node, ptr %t239, i32 0, i32 0 - %t241 = load i32, ptr %t240 - %t242 = icmp eq i32 %t241, 37 - %t243 = zext i1 %t242 to i32 - %t244 = icmp ne i32 %t243, 0 - br i1 %t244, label %then57, label %ifend59 + %t232 = load ptr, ptr %t0 + %t233 = getelementptr inbounds %Cmp_Node, ptr %t232, i32 0, i32 0 + %t234 = load i32, ptr %t233 + %t235 = icmp eq i32 %t234, 34 + %t236 = zext i1 %t235 to i32 + %t237 = icmp ne i32 %t236, 0 + br i1 %t237, label %then57, label %ifend59 then57: - %t245 = load ptr, ptr %t0 - %t246 = call ptr @fn_emit_bin(ptr %t245) - store ptr %t246, ptr %retval + %t238 = load ptr, ptr %t0 + %t239 = call ptr @fn_emit_call(ptr %t238) + store ptr %t239, ptr %retval br label %ret ifend59: - %t247 = load ptr, ptr %t0 - %t248 = getelementptr inbounds %Cmp_Node, ptr %t247, i32 0, i32 0 - %t249 = load i32, ptr %t248 - %t250 = icmp eq i32 %t249, 38 - %t251 = zext i1 %t250 to i32 - %t252 = icmp ne i32 %t251, 0 - br i1 %t252, label %then60, label %ifend62 + %t240 = load ptr, ptr %t0 + %t241 = getelementptr inbounds %Cmp_Node, ptr %t240, i32 0, i32 0 + %t242 = load i32, ptr %t241 + %t243 = icmp eq i32 %t242, 37 + %t244 = zext i1 %t243 to i32 + %t245 = icmp ne i32 %t244, 0 + br i1 %t245, label %then60, label %ifend62 then60: - %t253 = load ptr, ptr %t0 - %t254 = getelementptr inbounds %Cmp_Node, ptr %t253, i32 0, i32 4 - %t255 = load ptr, ptr %t254 - %t256 = call ptr @fn_emit_expr(ptr %t255) - store ptr %t256, ptr %t257 - %t258 = load ptr, ptr %t0 - %t259 = getelementptr inbounds %Cmp_Node, ptr %t258, i32 0, i32 1 - %t260 = load ptr, ptr %t259 - %t261 = call i32 @fn_streq(ptr %t260, ptr @.str915) - %t262 = icmp ne i32 %t261, 0 - br i1 %t262, label %then63, label %ifend65 -then63: - %t263 = load ptr, ptr %t257 - %t264 = getelementptr inbounds %Cmp_Val, ptr %t263, i32 0, i32 0 - %t265 = load ptr, ptr %t264 - %t266 = call ptr @fn_sconcat(ptr @.str916, ptr %t265) - %t267 = call ptr @fn_emit_bind(ptr %t266) - %t268 = call ptr @fn_val(ptr %t267, ptr @.str917) - store ptr %t268, ptr %retval - br label %ret -ifend65: - %t269 = load ptr, ptr %t0 - %t270 = getelementptr inbounds %Cmp_Node, ptr %t269, i32 0, i32 1 - %t271 = load ptr, ptr %t270 - %t272 = call i32 @fn_streq(ptr %t271, ptr @.str918) - %t273 = icmp ne i32 %t272, 0 - br i1 %t273, label %then66, label %ifend68 -then66: - %t274 = load ptr, ptr %t257 - %t275 = getelementptr inbounds %Cmp_Val, ptr %t274, i32 0, i32 0 - %t276 = load ptr, ptr %t275 - %t277 = call ptr @fn_sconcat(ptr %t276, ptr @.str920) - %t278 = call ptr @fn_sconcat(ptr @.str919, ptr %t277) - %t279 = call ptr @fn_emit_bind(ptr %t278) - %t280 = call ptr @fn_val(ptr %t279, ptr @.str921) - store ptr %t280, ptr %retval - br label %ret -ifend68: - %t281 = load ptr, ptr %t257 - %t282 = getelementptr inbounds %Cmp_Val, ptr %t281, i32 0, i32 0 - %t283 = load ptr, ptr %t282 - %t284 = call ptr @fn_sconcat(ptr %t283, ptr @.str923) - %t285 = call ptr @fn_sconcat(ptr @.str922, ptr %t284) - %t286 = call ptr @fn_emit_bind(ptr %t285) - store ptr %t286, ptr %t287 - %t288 = load ptr, ptr %t287 - %t289 = call ptr @fn_sconcat(ptr %t288, ptr @.str925) - %t290 = call ptr @fn_sconcat(ptr @.str924, ptr %t289) - %t291 = call ptr @fn_emit_bind(ptr %t290) - %t292 = call ptr @fn_val(ptr %t291, ptr @.str926) - store ptr %t292, ptr %retval + %t246 = load ptr, ptr %t0 + %t247 = call ptr @fn_emit_bin(ptr %t246) + store ptr %t247, ptr %retval br label %ret ifend62: - call void @fn_perr(ptr @.str927) - %t293 = call ptr @fn_val(ptr @.str928, ptr @.str929) + %t248 = load ptr, ptr %t0 + %t249 = getelementptr inbounds %Cmp_Node, ptr %t248, i32 0, i32 0 + %t250 = load i32, ptr %t249 + %t251 = icmp eq i32 %t250, 38 + %t252 = zext i1 %t251 to i32 + %t253 = icmp ne i32 %t252, 0 + br i1 %t253, label %then63, label %ifend65 +then63: + %t254 = load ptr, ptr %t0 + %t255 = getelementptr inbounds %Cmp_Node, ptr %t254, i32 0, i32 4 + %t256 = load ptr, ptr %t255 + %t257 = call ptr @fn_emit_expr(ptr %t256) + store ptr %t257, ptr %t258 + %t259 = load ptr, ptr %t0 + %t260 = getelementptr inbounds %Cmp_Node, ptr %t259, i32 0, i32 1 + %t261 = load ptr, ptr %t260 + %t262 = call i32 @fn_streq(ptr %t261, ptr @.str912) + %t263 = icmp ne i32 %t262, 0 + br i1 %t263, label %then66, label %ifend68 +then66: + %t264 = load ptr, ptr %t258 + %t265 = getelementptr inbounds %Cmp_Val, ptr %t264, i32 0, i32 0 + %t266 = load ptr, ptr %t265 + %t267 = call ptr @fn_sconcat(ptr @.str913, ptr %t266) + %t268 = call ptr @fn_emit_bind(ptr %t267) + %t269 = call ptr @fn_val(ptr %t268, ptr @.str914) + store ptr %t269, ptr %retval + br label %ret +ifend68: + %t270 = load ptr, ptr %t0 + %t271 = getelementptr inbounds %Cmp_Node, ptr %t270, i32 0, i32 1 + %t272 = load ptr, ptr %t271 + %t273 = call i32 @fn_streq(ptr %t272, ptr @.str915) + %t274 = icmp ne i32 %t273, 0 + br i1 %t274, label %then69, label %ifend71 +then69: + %t275 = load ptr, ptr %t258 + %t276 = getelementptr inbounds %Cmp_Val, ptr %t275, i32 0, i32 0 + %t277 = load ptr, ptr %t276 + %t278 = call ptr @fn_sconcat(ptr %t277, ptr @.str917) + %t279 = call ptr @fn_sconcat(ptr @.str916, ptr %t278) + %t280 = call ptr @fn_emit_bind(ptr %t279) + %t281 = call ptr @fn_val(ptr %t280, ptr @.str918) + store ptr %t281, ptr %retval + br label %ret +ifend71: + %t282 = load ptr, ptr %t258 + %t283 = getelementptr inbounds %Cmp_Val, ptr %t282, i32 0, i32 0 + %t284 = load ptr, ptr %t283 + %t285 = call ptr @fn_sconcat(ptr %t284, ptr @.str920) + %t286 = call ptr @fn_sconcat(ptr @.str919, ptr %t285) + %t287 = call ptr @fn_emit_bind(ptr %t286) + store ptr %t287, ptr %t288 + %t289 = load ptr, ptr %t288 + %t290 = call ptr @fn_sconcat(ptr %t289, ptr @.str922) + %t291 = call ptr @fn_sconcat(ptr @.str921, ptr %t290) + %t292 = call ptr @fn_emit_bind(ptr %t291) + %t293 = call ptr @fn_val(ptr %t292, ptr @.str923) store ptr %t293, ptr %retval br label %ret +ifend65: + call void @fn_perr(ptr @.str924) + %t294 = call ptr @fn_val(ptr @.str925, ptr @.str926) + store ptr %t294, ptr %retval + br label %ret ret: - %t294 = load ptr, ptr %retval - ret ptr %t294 + %t295 = load ptr, ptr %retval + ret ptr %t295 } define void @fn_emit_block(ptr %arg_b) { @@ -15354,16 +15330,16 @@ entry: store ptr %arg_lt, ptr %t0 store ptr %arg_v, ptr %t1 store ptr %arg_addr, ptr %t2 - call void @fn_emit(ptr @.str930) + call void @fn_emit(ptr @.str927) %t3 = load ptr, ptr %t0 call void @fn_emit(ptr %t3) - call void @fn_emit(ptr @.str931) + call void @fn_emit(ptr @.str928) %t4 = load ptr, ptr %t1 call void @fn_emit(ptr %t4) - call void @fn_emit(ptr @.str932) + call void @fn_emit(ptr @.str929) %t5 = load ptr, ptr %t2 call void @fn_emit(ptr %t5) - call void @fn_emit(ptr @.str933) + call void @fn_emit(ptr @.str930) br label %ret ret: ret void @@ -15387,8 +15363,8 @@ entry: %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 - store ptr @.str934, ptr %t5 - store ptr @.str935, ptr %t6 + store ptr @.str931, ptr %t5 + store ptr @.str932, ptr %t6 %t7 = load ptr, ptr %t4 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 @@ -15426,9 +15402,9 @@ then6: %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 8 %t36 = load i32, ptr %t35 %t37 = call ptr @fn_itoa(i32 %t36) - %t38 = call ptr @fn_sconcat(ptr @.str937, ptr %t37) + %t38 = call ptr @fn_sconcat(ptr @.str934, ptr %t37) %t39 = call ptr @fn_sconcat(ptr %t33, ptr %t38) - %t40 = call ptr @fn_sconcat(ptr @.str936, ptr %t39) + %t40 = call ptr @fn_sconcat(ptr @.str933, ptr %t39) call void @fn_perr(ptr %t40) br label %ifend8 ifend8: @@ -15462,14 +15438,14 @@ 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_sconcat(ptr @.str938, ptr %t64) + %t65 = call ptr @fn_sconcat(ptr @.str935, 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_sconcat(ptr @.str939, ptr %t68) + %t69 = call ptr @fn_sconcat(ptr @.str936, ptr %t68) store ptr %t69, ptr %t5 %t70 = load ptr, ptr %t57 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 3 @@ -15509,7 +15485,7 @@ then15: store ptr %t90, ptr %t6 br label %ifend17 else16: - call void @fn_perr(ptr @.str940) + call void @fn_perr(ptr @.str937) br label %ifend17 ifend17: br label %ifend14 @@ -15531,7 +15507,7 @@ ifend2: %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_streq(ptr %t105, ptr @.str941) + %t106 = call i32 @fn_streq(ptr %t105, ptr @.str938) %t107 = icmp eq i32 %t106, 0 %t108 = zext i1 %t107 to i32 %t109 = icmp ne i32 %t108, 0 @@ -15539,48 +15515,48 @@ ifend2: then18: %t110 = load ptr, ptr %t93 %t111 = load ptr, ptr %t5 - %t112 = call ptr @fn_sconcat(ptr @.str943, ptr %t111) + %t112 = call ptr @fn_sconcat(ptr @.str940, ptr %t111) %t113 = call ptr @fn_sconcat(ptr %t110, ptr %t112) - %t114 = call ptr @fn_sconcat(ptr @.str942, ptr %t113) + %t114 = call ptr @fn_sconcat(ptr @.str939, ptr %t113) %t115 = call ptr @fn_emit_bind(ptr %t114) store ptr %t115, ptr %t116 - store ptr @.str944, ptr %t117 + store ptr @.str941, 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_streq(ptr %t120, ptr @.str945) + %t121 = call i32 @fn_streq(ptr %t120, ptr @.str942) %t122 = icmp ne i32 %t121, 0 br i1 %t122, label %then21, label %ifend23 then21: - store ptr @.str946, ptr %t117 + store ptr @.str943, 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_streq(ptr %t125, ptr @.str947) + %t126 = call i32 @fn_streq(ptr %t125, ptr @.str944) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then24, label %ifend26 then24: - store ptr @.str948, ptr %t117 + store ptr @.str945, 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_streq(ptr %t130, ptr @.str949) + %t131 = call i32 @fn_streq(ptr %t130, ptr @.str946) %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then27, label %ifend29 then27: - store ptr @.str950, ptr %t117 + store ptr @.str947, ptr %t117 br label %ifend29 ifend29: %t133 = load ptr, ptr %t117 %t134 = load ptr, ptr %t116 %t135 = load ptr, ptr %t102 - %t136 = call ptr @fn_sconcat(ptr @.str952, ptr %t135) + %t136 = call ptr @fn_sconcat(ptr @.str949, ptr %t135) %t137 = call ptr @fn_sconcat(ptr %t134, ptr %t136) - %t138 = call ptr @fn_sconcat(ptr @.str951, ptr %t137) + %t138 = call ptr @fn_sconcat(ptr @.str948, ptr %t137) %t139 = call ptr @fn_sconcat(ptr %t133, ptr %t138) %t140 = call ptr @fn_emit_bind(ptr %t139) store ptr %t140, ptr %t102 @@ -15600,10 +15576,10 @@ entry: %t0 = alloca ptr %t5 = alloca ptr %t12 = alloca ptr - %t20 = alloca i32 + %t18 = alloca i32 + %t20 = alloca ptr %t22 = alloca ptr %t24 = alloca ptr - %t26 = alloca ptr store ptr %arg_st, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 @@ -15613,119 +15589,117 @@ entry: %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_sconcat(ptr %t8, ptr @.str954) - %t10 = call ptr @fn_sconcat(ptr @.str953, ptr %t9) + %t9 = call ptr @fn_sconcat(ptr %t8, ptr @.str951) + %t10 = call ptr @fn_sconcat(ptr @.str950, ptr %t9) %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 eq ptr %t15, null + %t16 = icmp ne ptr %t15, null %t17 = zext i1 %t16 to i32 - %t18 = icmp eq i32 %t17, 0 - %t19 = zext i1 %t18 to i32 - store i32 %t19, ptr %t20 - %t21 = call ptr @fn_lbl(ptr @.str955) + store i32 %t17, ptr %t18 + %t19 = call ptr @fn_lbl(ptr @.str952) + store ptr %t19, ptr %t20 + %t21 = call ptr @fn_lbl(ptr @.str953) store ptr %t21, ptr %t22 - %t23 = call ptr @fn_lbl(ptr @.str956) + %t23 = call ptr @fn_lbl(ptr @.str954) store ptr %t23, ptr %t24 - %t25 = call ptr @fn_lbl(ptr @.str957) - store ptr %t25, ptr %t26 - %t27 = load i32, ptr %t20 - %t28 = icmp ne i32 %t27, 0 - br i1 %t28, label %then0, label %else1 + %t25 = load i32, ptr %t18 + %t26 = icmp ne i32 %t25, 0 + br i1 %t26, label %then0, label %else1 then0: - call void @fn_emit(ptr @.str958) - %t29 = load ptr, ptr %t12 + call void @fn_emit(ptr @.str955) + %t27 = load ptr, ptr %t12 + call void @fn_emit(ptr %t27) + call void @fn_emit(ptr @.str956) + %t28 = load ptr, ptr %t20 + call void @fn_emit(ptr %t28) + call void @fn_emit(ptr @.str957) + %t29 = load ptr, ptr %t22 call void @fn_emit(ptr %t29) - call void @fn_emit(ptr @.str959) - %t30 = load ptr, ptr %t22 - call void @fn_emit(ptr %t30) - call void @fn_emit(ptr @.str960) - %t31 = load ptr, ptr %t24 - call void @fn_emit(ptr %t31) - call void @fn_emit(ptr @.str961) + call void @fn_emit(ptr @.str958) br label %ifend2 else1: - call void @fn_emit(ptr @.str962) - %t32 = load ptr, ptr %t12 + call void @fn_emit(ptr @.str959) + %t30 = load ptr, ptr %t12 + call void @fn_emit(ptr %t30) + call void @fn_emit(ptr @.str960) + %t31 = load ptr, ptr %t20 + call void @fn_emit(ptr %t31) + call void @fn_emit(ptr @.str961) + %t32 = load ptr, ptr %t24 call void @fn_emit(ptr %t32) - call void @fn_emit(ptr @.str963) - %t33 = load ptr, ptr %t22 - call void @fn_emit(ptr %t33) - call void @fn_emit(ptr @.str964) - %t34 = load ptr, ptr %t26 - call void @fn_emit(ptr %t34) - call void @fn_emit(ptr @.str965) + call void @fn_emit(ptr @.str962) br label %ifend2 ifend2: - %t35 = load ptr, ptr %t22 - call void @fn_emit(ptr %t35) - call void @fn_emit(ptr @.str966) + %t33 = load ptr, ptr %t20 + call void @fn_emit(ptr %t33) + call void @fn_emit(ptr @.str963) store i32 0, ptr @g_g_term - %t36 = load ptr, ptr %t0 - %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 5 - %t38 = load ptr, ptr %t37 - call void @fn_emit_block(ptr %t38) - %t39 = load i32, ptr @g_g_term - %t40 = icmp eq i32 %t39, 0 - %t41 = zext i1 %t40 to i32 - %t42 = icmp ne i32 %t41, 0 - br i1 %t42, label %then3, label %ifend5 + %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 @.str967) - %t43 = load ptr, ptr %t26 - call void @fn_emit(ptr %t43) - call void @fn_emit(ptr @.str968) + call void @fn_emit(ptr @.str964) + %t41 = load ptr, ptr %t24 + call void @fn_emit(ptr %t41) + call void @fn_emit(ptr @.str965) br label %ifend5 ifend5: - %t44 = load i32, ptr %t20 - %t45 = icmp ne i32 %t44, 0 - br i1 %t45, label %then6, label %ifend8 + %t42 = load i32, ptr %t18 + %t43 = icmp ne i32 %t42, 0 + br i1 %t43, label %then6, label %ifend8 then6: - %t46 = load ptr, ptr %t24 - call void @fn_emit(ptr %t46) - call void @fn_emit(ptr @.str969) + %t44 = load ptr, ptr %t22 + call void @fn_emit(ptr %t44) + call void @fn_emit(ptr @.str966) store i32 0, ptr @g_g_term - %t47 = load ptr, ptr %t0 - %t48 = getelementptr inbounds %Cmp_Node, ptr %t47, i32 0, i32 6 - %t49 = load ptr, ptr %t48 - %t50 = getelementptr inbounds %Cmp_Node, ptr %t49, i32 0, i32 0 - %t51 = load i32, ptr %t50 - %t52 = icmp eq i32 %t51, 12 - %t53 = zext i1 %t52 to i32 - %t54 = icmp ne i32 %t53, 0 - br i1 %t54, label %then9, label %else10 + %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: - %t55 = load ptr, ptr %t0 - %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 6 - %t57 = load ptr, ptr %t56 - call void @fn_emit_stmt(ptr %t57) + %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: - %t58 = load ptr, ptr %t0 - %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 6 - %t60 = load ptr, ptr %t59 - call void @fn_emit_block(ptr %t60) + %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: - %t61 = load i32, ptr @g_g_term - %t62 = icmp eq i32 %t61, 0 - %t63 = zext i1 %t62 to i32 - %t64 = icmp ne i32 %t63, 0 - br i1 %t64, label %then12, label %ifend14 + %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 @.str970) - %t65 = load ptr, ptr %t26 - call void @fn_emit(ptr %t65) - call void @fn_emit(ptr @.str971) + call void @fn_emit(ptr @.str967) + %t63 = load ptr, ptr %t24 + call void @fn_emit(ptr %t63) + call void @fn_emit(ptr @.str968) br label %ifend14 ifend14: br label %ifend8 ifend8: - %t66 = load ptr, ptr %t26 - call void @fn_emit(ptr %t66) - call void @fn_emit(ptr @.str972) + %t64 = load ptr, ptr %t24 + call void @fn_emit(ptr %t64) + call void @fn_emit(ptr @.str969) store i32 0, ptr @g_g_term br label %ret ret: @@ -15741,19 +15715,19 @@ entry: %t13 = alloca ptr %t20 = alloca ptr store ptr %arg_st, ptr %t0 - %t1 = call ptr @fn_lbl(ptr @.str973) + %t1 = call ptr @fn_lbl(ptr @.str970) store ptr %t1, ptr %t2 - %t3 = call ptr @fn_lbl(ptr @.str974) + %t3 = call ptr @fn_lbl(ptr @.str971) store ptr %t3, ptr %t4 - %t5 = call ptr @fn_lbl(ptr @.str975) + %t5 = call ptr @fn_lbl(ptr @.str972) store ptr %t5, ptr %t6 - call void @fn_emit(ptr @.str976) + call void @fn_emit(ptr @.str973) %t7 = load ptr, ptr %t2 call void @fn_emit(ptr %t7) - call void @fn_emit(ptr @.str977) + call void @fn_emit(ptr @.str974) %t8 = load ptr, ptr %t2 call void @fn_emit(ptr %t8) - call void @fn_emit(ptr @.str978) + call void @fn_emit(ptr @.str975) %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4 %t11 = load ptr, ptr %t10 @@ -15762,23 +15736,23 @@ entry: %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_sconcat(ptr %t16, ptr @.str980) - %t18 = call ptr @fn_sconcat(ptr @.str979, ptr %t17) + %t17 = call ptr @fn_sconcat(ptr %t16, ptr @.str977) + %t18 = call ptr @fn_sconcat(ptr @.str976, ptr %t17) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 - call void @fn_emit(ptr @.str981) + call void @fn_emit(ptr @.str978) %t21 = load ptr, ptr %t20 call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str982) + call void @fn_emit(ptr @.str979) %t22 = load ptr, ptr %t4 call void @fn_emit(ptr %t22) - call void @fn_emit(ptr @.str983) + call void @fn_emit(ptr @.str980) %t23 = load ptr, ptr %t6 call void @fn_emit(ptr %t23) - call void @fn_emit(ptr @.str984) + call void @fn_emit(ptr @.str981) %t24 = load ptr, ptr %t4 call void @fn_emit(ptr %t24) - call void @fn_emit(ptr @.str985) + call void @fn_emit(ptr @.str982) store i32 0, ptr @g_g_term %t25 = load ptr, ptr %t2 %t26 = load ptr, ptr %t6 @@ -15794,15 +15768,15 @@ entry: %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str986) + call void @fn_emit(ptr @.str983) %t34 = load ptr, ptr %t2 call void @fn_emit(ptr %t34) - call void @fn_emit(ptr @.str987) + call void @fn_emit(ptr @.str984) br label %ifend2 ifend2: %t35 = load ptr, ptr %t6 call void @fn_emit(ptr %t35) - call void @fn_emit(ptr @.str988) + call void @fn_emit(ptr @.str985) store i32 0, ptr @g_g_term br label %ret ret: @@ -15824,7 +15798,7 @@ entry: %t62 = alloca ptr %t67 = alloca ptr store ptr %arg_st, ptr %t0 - %t1 = call ptr @fn_emit_alloca(ptr @.str989) + %t1 = call ptr @fn_emit_alloca(ptr @.str986) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4 @@ -15835,29 +15809,29 @@ entry: %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 @.str990, ptr %t10, ptr %t11) + call void @fn_store_at(ptr @.str987, 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 @.str991) - %t16 = call ptr @fn_lbl(ptr @.str992) + call void @fn_loc_push(ptr %t14, ptr %t15, ptr @.str988) + %t16 = call ptr @fn_lbl(ptr @.str989) store ptr %t16, ptr %t17 - %t18 = call ptr @fn_lbl(ptr @.str993) + %t18 = call ptr @fn_lbl(ptr @.str990) store ptr %t18, ptr %t19 - %t20 = call ptr @fn_lbl(ptr @.str994) + %t20 = call ptr @fn_lbl(ptr @.str991) store ptr %t20, ptr %t21 - %t22 = call ptr @fn_lbl(ptr @.str995) + %t22 = call ptr @fn_lbl(ptr @.str992) store ptr %t22, ptr %t23 - call void @fn_emit(ptr @.str996) + call void @fn_emit(ptr @.str993) %t24 = load ptr, ptr %t17 call void @fn_emit(ptr %t24) - call void @fn_emit(ptr @.str997) + call void @fn_emit(ptr @.str994) %t25 = load ptr, ptr %t17 call void @fn_emit(ptr %t25) - call void @fn_emit(ptr @.str998) + call void @fn_emit(ptr @.str995) %t26 = load ptr, ptr %t2 - %t27 = call ptr @fn_sconcat(ptr @.str999, ptr %t26) + %t27 = call ptr @fn_sconcat(ptr @.str996, ptr %t26) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 @@ -15869,24 +15843,24 @@ entry: %t36 = load ptr, ptr %t34 %t37 = getelementptr inbounds %Cmp_Val, ptr %t36, i32 0, i32 0 %t38 = load ptr, ptr %t37 - %t39 = call ptr @fn_sconcat(ptr @.str1001, ptr %t38) + %t39 = call ptr @fn_sconcat(ptr @.str998, ptr %t38) %t40 = call ptr @fn_sconcat(ptr %t35, ptr %t39) - %t41 = call ptr @fn_sconcat(ptr @.str1000, ptr %t40) + %t41 = call ptr @fn_sconcat(ptr @.str997, ptr %t40) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 - call void @fn_emit(ptr @.str1002) + call void @fn_emit(ptr @.str999) %t44 = load ptr, ptr %t43 call void @fn_emit(ptr %t44) - call void @fn_emit(ptr @.str1003) + call void @fn_emit(ptr @.str1000) %t45 = load ptr, ptr %t19 call void @fn_emit(ptr %t45) - call void @fn_emit(ptr @.str1004) + call void @fn_emit(ptr @.str1001) %t46 = load ptr, ptr %t23 call void @fn_emit(ptr %t46) - call void @fn_emit(ptr @.str1005) + call void @fn_emit(ptr @.str1002) %t47 = load ptr, ptr %t19 call void @fn_emit(ptr %t47) - call void @fn_emit(ptr @.str1006) + call void @fn_emit(ptr @.str1003) store i32 0, ptr @g_g_term %t48 = load ptr, ptr %t21 %t49 = load ptr, ptr %t23 @@ -15902,34 +15876,34 @@ entry: %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str1007) + call void @fn_emit(ptr @.str1004) %t57 = load ptr, ptr %t21 call void @fn_emit(ptr %t57) - call void @fn_emit(ptr @.str1008) + call void @fn_emit(ptr @.str1005) br label %ifend2 ifend2: %t58 = load ptr, ptr %t21 call void @fn_emit(ptr %t58) - call void @fn_emit(ptr @.str1009) + call void @fn_emit(ptr @.str1006) %t59 = load ptr, ptr %t2 - %t60 = call ptr @fn_sconcat(ptr @.str1010, ptr %t59) + %t60 = call ptr @fn_sconcat(ptr @.str1007, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 - %t64 = call ptr @fn_sconcat(ptr %t63, ptr @.str1012) - %t65 = call ptr @fn_sconcat(ptr @.str1011, ptr %t64) + %t64 = call ptr @fn_sconcat(ptr %t63, ptr @.str1009) + %t65 = call ptr @fn_sconcat(ptr @.str1008, ptr %t64) %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 @.str1013, ptr %t68, ptr %t69) - call void @fn_emit(ptr @.str1014) + call void @fn_store_at(ptr @.str1010, ptr %t68, ptr %t69) + call void @fn_emit(ptr @.str1011) %t70 = load ptr, ptr %t17 call void @fn_emit(ptr %t70) - call void @fn_emit(ptr @.str1015) + call void @fn_emit(ptr @.str1012) %t71 = load ptr, ptr %t23 call void @fn_emit(ptr %t71) - call void @fn_emit(ptr @.str1016) + call void @fn_emit(ptr @.str1013) store i32 0, ptr @g_g_term br label %ret ret: @@ -15939,32 +15913,30 @@ ret: define void @fn_emit_return(ptr %arg_st) { entry: %t0 = alloca ptr - %t13 = 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 eq ptr %t3, null + %t4 = icmp ne ptr %t3, null %t5 = zext i1 %t4 to i32 - %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 + %t6 = icmp ne i32 %t5, 0 + br i1 %t6, 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 = call ptr @fn_emit_expr(ptr %t11) - store ptr %t12, ptr %t13 - %t14 = load ptr, ptr @g_ret_ty - %t15 = call ptr @fn_llty(ptr %t14) - %t16 = load ptr, ptr %t13 - %t17 = getelementptr inbounds %Cmp_Val, ptr %t16, i32 0, i32 0 - %t18 = load ptr, ptr %t17 - call void @fn_store_at(ptr %t15, ptr %t18, ptr @.str1017) + %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 @.str1014) br label %ifend2 ifend2: - call void @fn_emit(ptr @.str1018) + call void @fn_emit(ptr @.str1015) store i32 1, ptr @g_g_term br label %ret ret: @@ -16019,7 +15991,7 @@ sc3: %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_streq(ptr %t35, ptr @.str1019) + %t36 = call i32 @fn_streq(ptr %t35, ptr @.str1016) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t11 @@ -16065,7 +16037,7 @@ entry: %t3 = load ptr, ptr %t2 %t4 = call ptr @fn_emit_expr(ptr %t3) store ptr %t4, ptr %t5 - %t6 = call ptr @fn_lbl(ptr @.str1020) + %t6 = call ptr @fn_lbl(ptr @.str1017) store ptr %t6, ptr %t7 store ptr null, ptr %t8 store i32 0, ptr %t9 @@ -16100,7 +16072,7 @@ then3: store ptr %t31, ptr %t8 br label %ifend5 else4: - store ptr @.str1021, ptr %t32 + store ptr @.str1018, ptr %t32 store i32 1, ptr %t33 store i32 0, ptr %t34 br label %wcond6 @@ -16132,9 +16104,9 @@ wbody7: %t57 = load ptr, ptr %t53 %t58 = getelementptr inbounds %Cmp_Val, ptr %t57, i32 0, i32 0 %t59 = load ptr, ptr %t58 - %t60 = call ptr @fn_sconcat(ptr @.str1023, ptr %t59) + %t60 = call ptr @fn_sconcat(ptr @.str1020, ptr %t59) %t61 = call ptr @fn_sconcat(ptr %t56, ptr %t60) - %t62 = call ptr @fn_sconcat(ptr @.str1022, ptr %t61) + %t62 = call ptr @fn_sconcat(ptr @.str1019, ptr %t61) %t63 = call ptr @fn_emit_bind(ptr %t62) store ptr %t63, ptr %t64 %t65 = load i32, ptr %t33 @@ -16148,9 +16120,9 @@ then9: else10: %t68 = load ptr, ptr %t32 %t69 = load ptr, ptr %t64 - %t70 = call ptr @fn_sconcat(ptr @.str1025, ptr %t69) + %t70 = call ptr @fn_sconcat(ptr @.str1022, ptr %t69) %t71 = call ptr @fn_sconcat(ptr %t68, ptr %t70) - %t72 = call ptr @fn_sconcat(ptr @.str1024, ptr %t71) + %t72 = call ptr @fn_sconcat(ptr @.str1021, ptr %t71) %t73 = call ptr @fn_emit_bind(ptr %t72) store ptr %t73, ptr %t32 br label %ifend11 @@ -16160,23 +16132,23 @@ ifend11: store i32 %t75, ptr %t34 br label %wcond6 wend8: - %t76 = call ptr @fn_lbl(ptr @.str1026) + %t76 = call ptr @fn_lbl(ptr @.str1023) store ptr %t76, ptr %t77 - %t78 = call ptr @fn_lbl(ptr @.str1027) + %t78 = call ptr @fn_lbl(ptr @.str1024) store ptr %t78, ptr %t79 - call void @fn_emit(ptr @.str1028) + call void @fn_emit(ptr @.str1025) %t80 = load ptr, ptr %t32 call void @fn_emit(ptr %t80) - call void @fn_emit(ptr @.str1029) + call void @fn_emit(ptr @.str1026) %t81 = load ptr, ptr %t77 call void @fn_emit(ptr %t81) - call void @fn_emit(ptr @.str1030) + call void @fn_emit(ptr @.str1027) %t82 = load ptr, ptr %t79 call void @fn_emit(ptr %t82) - call void @fn_emit(ptr @.str1031) + call void @fn_emit(ptr @.str1028) %t83 = load ptr, ptr %t77 call void @fn_emit(ptr %t83) - call void @fn_emit(ptr @.str1032) + call void @fn_emit(ptr @.str1029) store i32 0, ptr @g_g_term %t84 = load ptr, ptr %t27 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 4 @@ -16188,15 +16160,15 @@ wend8: %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then12, label %ifend14 then12: - call void @fn_emit(ptr @.str1033) + call void @fn_emit(ptr @.str1030) %t91 = load ptr, ptr %t7 call void @fn_emit(ptr %t91) - call void @fn_emit(ptr @.str1034) + call void @fn_emit(ptr @.str1031) br label %ifend14 ifend14: %t92 = load ptr, ptr %t79 call void @fn_emit(ptr %t92) - call void @fn_emit(ptr @.str1035) + call void @fn_emit(ptr @.str1032) store i32 0, ptr @g_g_term br label %ifend5 ifend5: @@ -16206,34 +16178,32 @@ ifend5: br label %wcond0 wend2: %t95 = load ptr, ptr %t8 - %t96 = icmp eq ptr %t95, null + %t96 = icmp ne ptr %t95, null %t97 = zext i1 %t96 to i32 - %t98 = icmp eq i32 %t97, 0 - %t99 = zext i1 %t98 to i32 - %t100 = icmp ne i32 %t99, 0 - br i1 %t100, label %then15, label %ifend17 + %t98 = icmp ne i32 %t97, 0 + br i1 %t98, label %then15, label %ifend17 then15: - %t101 = load ptr, ptr %t8 - %t102 = getelementptr inbounds %Cmp_Node, ptr %t101, i32 0, i32 4 - %t103 = load ptr, ptr %t102 - call void @fn_emit_block(ptr %t103) + %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: - %t104 = load i32, ptr @g_g_term - %t105 = icmp eq i32 %t104, 0 - %t106 = zext i1 %t105 to i32 - %t107 = icmp ne i32 %t106, 0 - br i1 %t107, label %then18, label %ifend20 + %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 @.str1036) - %t108 = load ptr, ptr %t7 - call void @fn_emit(ptr %t108) - call void @fn_emit(ptr @.str1037) + call void @fn_emit(ptr @.str1033) + %t106 = load ptr, ptr %t7 + call void @fn_emit(ptr %t106) + call void @fn_emit(ptr @.str1034) br label %ifend20 ifend20: - %t109 = load ptr, ptr %t7 - call void @fn_emit(ptr %t109) - call void @fn_emit(ptr @.str1038) + %t107 = load ptr, ptr %t7 + call void @fn_emit(ptr %t107) + call void @fn_emit(ptr @.str1035) store i32 0, ptr @g_g_term br label %ret ret: @@ -16313,14 +16283,14 @@ ifend5: %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then6, label %else7 then6: - store ptr @.str1039, ptr %t51 + store ptr @.str1036, ptr %t51 %t52 = load ptr, ptr %t10 %t53 = call ptr @fn_llty(ptr %t52) - %t54 = call i32 @fn_streq(ptr %t53, ptr @.str1040) + %t54 = call i32 @fn_streq(ptr %t53, ptr @.str1037) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then9, label %ifend11 then9: - store ptr @.str1041, ptr %t51 + store ptr @.str1038, ptr %t51 br label %ifend11 ifend11: %t56 = load ptr, ptr %t10 @@ -16424,7 +16394,7 @@ ifend26: %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then27, label %ifend29 then27: - call void @fn_emit(ptr @.str1042) + call void @fn_emit(ptr @.str1039) %t120 = load ptr, ptr @g_brk_lbl %t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 @@ -16433,7 +16403,7 @@ then27: %t125 = getelementptr inbounds ptr, ptr %t122, i32 %t124 %t126 = load ptr, ptr %t125 call void @fn_emit(ptr %t126) - call void @fn_emit(ptr @.str1043) + call void @fn_emit(ptr @.str1040) store i32 1, ptr @g_g_term br label %ret ifend29: @@ -16445,7 +16415,7 @@ ifend29: %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then30, label %ifend32 then30: - call void @fn_emit(ptr @.str1044) + call void @fn_emit(ptr @.str1041) %t133 = load ptr, ptr @g_cnt_lbl %t134 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 0 %t135 = load ptr, ptr %t134 @@ -16454,7 +16424,7 @@ then30: %t138 = getelementptr inbounds ptr, ptr %t135, i32 %t137 %t139 = load ptr, ptr %t138 call void @fn_emit(ptr %t139) - call void @fn_emit(ptr @.str1045) + call void @fn_emit(ptr @.str1042) store i32 1, ptr @g_g_term br label %ret ifend32: @@ -16557,7 +16527,7 @@ then54: store ptr %t198, ptr %t199 br label %ret ifend56: - call void @fn_perr(ptr @.str1046) + call void @fn_perr(ptr @.str1043) br label %ret ret: ret void @@ -16787,24 +16757,24 @@ entry: %t1 = alloca ptr %t11 = alloca i32 %t25 = alloca ptr - call void @fn_emith(ptr @.str1047) - call void @fn_emith(ptr @.str1048) - call void @fn_emith(ptr @.str1049) + call void @fn_emith(ptr @.str1044) + call void @fn_emith(ptr @.str1045) + call void @fn_emith(ptr @.str1046) %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 - %t3 = call ptr @fn_sconcat(ptr %t2, ptr @.str1051) - %t4 = call ptr @fn_sconcat(ptr @.str1050, ptr %t3) + %t3 = call ptr @fn_sconcat(ptr %t2, ptr @.str1048) + %t4 = call ptr @fn_sconcat(ptr @.str1047, ptr %t3) call void @fn_emith(ptr %t4) %t5 = load ptr, ptr %t1 - %t6 = call ptr @fn_sconcat(ptr %t5, ptr @.str1053) - %t7 = call ptr @fn_sconcat(ptr @.str1052, ptr %t6) + %t6 = call ptr @fn_sconcat(ptr %t5, ptr @.str1050) + %t7 = call ptr @fn_sconcat(ptr @.str1049, ptr %t6) call void @fn_emith(ptr %t7) %t8 = load ptr, ptr %t1 - %t9 = call ptr @fn_sconcat(ptr %t8, ptr @.str1055) - %t10 = call ptr @fn_sconcat(ptr @.str1054, ptr %t9) + %t9 = call ptr @fn_sconcat(ptr %t8, ptr @.str1052) + %t10 = call ptr @fn_sconcat(ptr @.str1051, ptr %t9) call void @fn_emith(ptr %t10) - call void @fn_emith(ptr @.str1056) + call void @fn_emith(ptr @.str1053) store i32 0, ptr %t11 br label %wcond0 wcond0: @@ -16839,21 +16809,21 @@ then3: %t36 = load ptr, ptr %t25 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %t37 - %t39 = call ptr @fn_sconcat(ptr %t38, ptr @.str1060) - %t40 = call ptr @fn_sconcat(ptr @.str1059, ptr %t39) + %t39 = call ptr @fn_sconcat(ptr %t38, ptr @.str1057) + %t40 = call ptr @fn_sconcat(ptr @.str1056, ptr %t39) %t41 = call ptr @fn_sconcat(ptr %t35, ptr %t40) - %t42 = call ptr @fn_sconcat(ptr @.str1058, ptr %t41) + %t42 = call ptr @fn_sconcat(ptr @.str1055, ptr %t41) %t43 = call ptr @fn_sconcat(ptr %t34, ptr %t42) - %t44 = call ptr @fn_sconcat(ptr @.str1057, ptr %t43) + %t44 = call ptr @fn_sconcat(ptr @.str1054, ptr %t43) call void @fn_emith(ptr %t44) %t45 = load ptr, ptr %t25 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 1 %t47 = load ptr, ptr %t46 %t48 = load ptr, ptr %t1 - %t49 = call ptr @fn_sconcat(ptr %t48, ptr @.str1063) - %t50 = call ptr @fn_sconcat(ptr @.str1062, ptr %t49) + %t49 = call ptr @fn_sconcat(ptr %t48, ptr @.str1060) + %t50 = call ptr @fn_sconcat(ptr @.str1059, ptr %t49) %t51 = call ptr @fn_sconcat(ptr %t47, ptr %t50) - %t52 = call ptr @fn_sconcat(ptr @.str1061, ptr %t51) + %t52 = call ptr @fn_sconcat(ptr @.str1058, ptr %t51) call void @fn_emith(ptr %t52) br label %ifend5 ifend5: @@ -16868,8 +16838,8 @@ then6: %t59 = load ptr, ptr %t25 %t60 = getelementptr inbounds %Cmp_Node, ptr %t59, i32 0, i32 1 %t61 = load ptr, ptr %t60 - %t62 = call ptr @fn_sconcat(ptr %t61, ptr @.str1065) - %t63 = call ptr @fn_sconcat(ptr @.str1064, ptr %t62) + %t62 = call ptr @fn_sconcat(ptr %t61, ptr @.str1062) + %t63 = call ptr @fn_sconcat(ptr @.str1061, ptr %t62) call void @fn_emith(ptr %t63) br label %ifend8 ifend8: @@ -16884,8 +16854,8 @@ then9: %t70 = load ptr, ptr %t25 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 1 %t72 = load ptr, ptr %t71 - %t73 = call ptr @fn_sconcat(ptr %t72, ptr @.str1067) - %t74 = call ptr @fn_sconcat(ptr @.str1066, ptr %t73) + %t73 = call ptr @fn_sconcat(ptr %t72, ptr @.str1064) + %t74 = call ptr @fn_sconcat(ptr @.str1063, ptr %t73) call void @fn_emith(ptr %t74) br label %ifend11 ifend11: @@ -16906,7 +16876,7 @@ entry: %t24 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 - call void @fn_emit(ptr @.str1068) + call void @fn_emit(ptr @.str1065) store i32 0, ptr %t2 br label %wcond0 wcond0: @@ -16934,15 +16904,15 @@ wbody1: then3: %t21 = load i32, ptr %t2 %t22 = call ptr @fn_itoa(i32 %t21) - %t23 = call ptr @fn_sconcat(ptr @.str1069, ptr %t22) + %t23 = call ptr @fn_sconcat(ptr @.str1066, ptr %t22) store ptr %t23, ptr %t24 - call void @fn_emit(ptr @.str1070) + call void @fn_emit(ptr @.str1067) %t25 = load ptr, ptr %t24 call void @fn_emit(ptr %t25) - call void @fn_emit(ptr @.str1071) + call void @fn_emit(ptr @.str1068) %t26 = load ptr, ptr %t1 call void @fn_emit(ptr %t26) - call void @fn_emit(ptr @.str1072) + call void @fn_emit(ptr @.str1069) %t27 = load ptr, ptr @g_prog %t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t29 = load ptr, ptr %t28 @@ -16952,11 +16922,11 @@ then3: %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 @.str1073) - call void @fn_emit(ptr @.str1074) + call void @fn_emit(ptr @.str1070) + call void @fn_emit(ptr @.str1071) %t35 = load ptr, ptr %t24 call void @fn_emit(ptr %t35) - call void @fn_emit(ptr @.str1075) + call void @fn_emit(ptr @.str1072) br label %ifend5 ifend5: %t36 = load i32, ptr %t2 @@ -16964,9 +16934,12 @@ ifend5: store i32 %t37, ptr %t2 br label %wcond0 wend2: - call void @fn_emit(ptr @.str1076) + call void @fn_emit(ptr @.str1073) %t38 = load ptr, ptr %t1 call void @fn_emit(ptr %t38) + call void @fn_emit(ptr @.str1074) + call void @fn_emit(ptr @.str1075) + call void @fn_emit(ptr @.str1076) call void @fn_emit(ptr @.str1077) call void @fn_emit(ptr @.str1078) call void @fn_emit(ptr @.str1079) @@ -16974,11 +16947,11 @@ wend2: call void @fn_emit(ptr @.str1081) call void @fn_emit(ptr @.str1082) call void @fn_emit(ptr @.str1083) + %t39 = load ptr, ptr %t1 + call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str1084) call void @fn_emit(ptr @.str1085) call void @fn_emit(ptr @.str1086) - %t39 = load ptr, ptr %t1 - call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str1087) call void @fn_emit(ptr @.str1088) call void @fn_emit(ptr @.str1089) @@ -16988,30 +16961,27 @@ wend2: call void @fn_emit(ptr @.str1093) call void @fn_emit(ptr @.str1094) call void @fn_emit(ptr @.str1095) + %t40 = load ptr, ptr %t1 + call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str1096) call void @fn_emit(ptr @.str1097) call void @fn_emit(ptr @.str1098) - %t40 = load ptr, ptr %t1 - call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str1099) call void @fn_emit(ptr @.str1100) + %t41 = load ptr, ptr %t1 + call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str1101) call void @fn_emit(ptr @.str1102) call void @fn_emit(ptr @.str1103) - %t41 = load ptr, ptr %t1 - call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str1104) call void @fn_emit(ptr @.str1105) + %t42 = load ptr, ptr %t1 + call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str1106) call void @fn_emit(ptr @.str1107) call void @fn_emit(ptr @.str1108) - %t42 = load ptr, ptr %t1 - call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str1109) call void @fn_emit(ptr @.str1110) - call void @fn_emit(ptr @.str1111) - call void @fn_emit(ptr @.str1112) - call void @fn_emit(ptr @.str1113) br label %ret ret: ret void @@ -17120,18 +17090,18 @@ entry: %t204 = alloca i32 %t232 = alloca ptr %t243 = alloca ptr - %t276 = alloca ptr + %t274 = alloca ptr + %t281 = alloca ptr %t283 = alloca ptr - %t285 = alloca ptr - %t305 = alloca ptr - %t310 = 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 @.str1114) + %t3 = call ptr @fn_emit_alloca(ptr @.str1111) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 - call void @fn_store_at(ptr @.str1115, ptr @.str1116, ptr %t5) + call void @fn_store_at(ptr @.str1112, ptr @.str1113, 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 @@ -17183,88 +17153,88 @@ ifend2: %t39 = load i32, ptr @g_nself %t40 = add i32 %t39, 1 store i32 %t40, ptr @g_nself - %t41 = call ptr @fn_lbl(ptr @.str1117) + %t41 = call ptr @fn_lbl(ptr @.str1114) store ptr %t41, ptr %t42 - %t43 = call ptr @fn_lbl(ptr @.str1118) + %t43 = call ptr @fn_lbl(ptr @.str1115) store ptr %t43, ptr %t44 - %t45 = call ptr @fn_lbl(ptr @.str1119) + %t45 = call ptr @fn_lbl(ptr @.str1116) store ptr %t45, ptr %t46 - %t47 = call ptr @fn_lbl(ptr @.str1120) + %t47 = call ptr @fn_lbl(ptr @.str1117) store ptr %t47, ptr %t48 - call void @fn_emit(ptr @.str1121) + call void @fn_emit(ptr @.str1118) %t49 = load ptr, ptr %t42 call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str1122) + call void @fn_emit(ptr @.str1119) %t50 = load ptr, ptr %t42 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str1123) + call void @fn_emit(ptr @.str1120) %t51 = load ptr, ptr %t4 - %t52 = call ptr @fn_sconcat(ptr @.str1124, ptr %t51) + %t52 = call ptr @fn_sconcat(ptr @.str1121, ptr %t51) %t53 = call ptr @fn_emit_bind(ptr %t52) store ptr %t53, ptr %t54 - %t55 = call ptr @fn_emit_bind(ptr @.str1125) + %t55 = call ptr @fn_emit_bind(ptr @.str1122) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t54 %t58 = load ptr, ptr %t56 - %t59 = call ptr @fn_sconcat(ptr @.str1127, ptr %t58) + %t59 = call ptr @fn_sconcat(ptr @.str1124, ptr %t58) %t60 = call ptr @fn_sconcat(ptr %t57, ptr %t59) - %t61 = call ptr @fn_sconcat(ptr @.str1126, ptr %t60) + %t61 = call ptr @fn_sconcat(ptr @.str1123, ptr %t60) %t62 = call ptr @fn_emit_bind(ptr %t61) store ptr %t62, ptr %t63 - call void @fn_emit(ptr @.str1128) + call void @fn_emit(ptr @.str1125) %t64 = load ptr, ptr %t63 call void @fn_emit(ptr %t64) - call void @fn_emit(ptr @.str1129) + call void @fn_emit(ptr @.str1126) %t65 = load ptr, ptr %t44 call void @fn_emit(ptr %t65) - call void @fn_emit(ptr @.str1130) + call void @fn_emit(ptr @.str1127) %t66 = load ptr, ptr %t48 call void @fn_emit(ptr %t66) - call void @fn_emit(ptr @.str1131) + call void @fn_emit(ptr @.str1128) %t67 = load ptr, ptr %t44 call void @fn_emit(ptr %t67) - call void @fn_emit(ptr @.str1132) + call void @fn_emit(ptr @.str1129) store i32 0, ptr @g_g_term %t68 = load ptr, ptr %t4 - %t69 = call ptr @fn_sconcat(ptr @.str1133, ptr %t68) + %t69 = call ptr @fn_sconcat(ptr @.str1130, 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 @.str1134) + call void @fn_emit(ptr @.str1131) %t74 = load ptr, ptr %t73 call void @fn_emit(ptr %t74) - call void @fn_emit(ptr @.str1135) + call void @fn_emit(ptr @.str1132) %t75 = load ptr, ptr %t2 call void @fn_emit(ptr %t75) - call void @fn_emit(ptr @.str1136) + call void @fn_emit(ptr @.str1133) %t76 = load ptr, ptr %t71 call void @fn_emit(ptr %t76) - call void @fn_emit(ptr @.str1137) + call void @fn_emit(ptr @.str1134) %t77 = load ptr, ptr %t73 - %t78 = call ptr @fn_sconcat(ptr @.str1138, ptr %t77) + %t78 = call ptr @fn_sconcat(ptr @.str1135, ptr %t77) %t79 = call ptr @fn_emit_bind(ptr %t78) store ptr %t79, ptr %t80 %t81 = load ptr, ptr %t80 - %t82 = call ptr @fn_sconcat(ptr %t81, ptr @.str1140) - %t83 = call ptr @fn_sconcat(ptr @.str1139, ptr %t82) + %t82 = call ptr @fn_sconcat(ptr %t81, ptr @.str1137) + %t83 = call ptr @fn_sconcat(ptr @.str1136, ptr %t82) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 - %t86 = call ptr @fn_lbl(ptr @.str1141) + %t86 = call ptr @fn_lbl(ptr @.str1138) store ptr %t86, ptr %t87 - call void @fn_emit(ptr @.str1142) + call void @fn_emit(ptr @.str1139) %t88 = load ptr, ptr %t85 call void @fn_emit(ptr %t88) - call void @fn_emit(ptr @.str1143) + call void @fn_emit(ptr @.str1140) %t89 = load ptr, ptr %t87 call void @fn_emit(ptr %t89) - call void @fn_emit(ptr @.str1144) + call void @fn_emit(ptr @.str1141) %t90 = load ptr, ptr %t46 call void @fn_emit(ptr %t90) - call void @fn_emit(ptr @.str1145) + call void @fn_emit(ptr @.str1142) %t91 = load ptr, ptr %t87 call void @fn_emit(ptr %t91) - call void @fn_emit(ptr @.str1146) + call void @fn_emit(ptr @.str1143) %t92 = load ptr, ptr %t0 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 6 %t94 = load ptr, ptr %t93 @@ -17297,7 +17267,7 @@ wbody6: %t117 = load ptr, ptr %t116 %t118 = call i32 @fn_find_arch_id(ptr %t117) store i32 %t118, ptr %t119 - store ptr @.str1147, ptr %t120 + store ptr @.str1144, ptr %t120 %t121 = load i32, ptr %t119 %t122 = icmp sgt i32 %t121, 0 %t123 = zext i1 %t122 to i32 @@ -17306,91 +17276,91 @@ wbody6: then8: %t125 = call ptr @fn_nreg() store ptr %t125, ptr %t126 - call void @fn_emit(ptr @.str1148) + call void @fn_emit(ptr @.str1145) %t127 = load ptr, ptr %t126 call void @fn_emit(ptr %t127) - call void @fn_emit(ptr @.str1149) + call void @fn_emit(ptr @.str1146) %t128 = load ptr, ptr %t2 call void @fn_emit(ptr %t128) - call void @fn_emit(ptr @.str1150) + call void @fn_emit(ptr @.str1147) %t129 = load ptr, ptr %t71 call void @fn_emit(ptr %t129) - call void @fn_emit(ptr @.str1151) + call void @fn_emit(ptr @.str1148) %t130 = load ptr, ptr %t126 - %t131 = call ptr @fn_sconcat(ptr @.str1152, ptr %t130) + %t131 = call ptr @fn_sconcat(ptr @.str1149, ptr %t130) %t132 = call ptr @fn_emit_bind(ptr %t131) store ptr %t132, ptr %t133 %t134 = load ptr, ptr %t133 %t135 = load i32, ptr %t119 %t136 = call ptr @fn_itoa(i32 %t135) - %t137 = call ptr @fn_sconcat(ptr @.str1154, ptr %t136) + %t137 = call ptr @fn_sconcat(ptr @.str1151, ptr %t136) %t138 = call ptr @fn_sconcat(ptr %t134, ptr %t137) - %t139 = call ptr @fn_sconcat(ptr @.str1153, ptr %t138) + %t139 = call ptr @fn_sconcat(ptr @.str1150, 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_sconcat(ptr @.str1155, ptr %t144) + %t145 = call ptr @fn_sconcat(ptr @.str1152, ptr %t144) %t146 = call ptr @fn_emit_bind(ptr %t145) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t147 - %t149 = call ptr @fn_sconcat(ptr %t148, ptr @.str1157) - %t150 = call ptr @fn_sconcat(ptr @.str1156, ptr %t149) + %t149 = call ptr @fn_sconcat(ptr %t148, ptr @.str1154) + %t150 = call ptr @fn_sconcat(ptr @.str1153, ptr %t149) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t141 %t154 = load ptr, ptr %t152 - %t155 = call ptr @fn_sconcat(ptr @.str1159, ptr %t154) + %t155 = call ptr @fn_sconcat(ptr @.str1156, ptr %t154) %t156 = call ptr @fn_sconcat(ptr %t153, ptr %t155) - %t157 = call ptr @fn_sconcat(ptr @.str1158, ptr %t156) + %t157 = call ptr @fn_sconcat(ptr @.str1155, 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 @.str1160) + call void @fn_emit(ptr @.str1157) %t161 = load ptr, ptr %t160 call void @fn_emit(ptr %t161) - call void @fn_emit(ptr @.str1161) + call void @fn_emit(ptr @.str1158) %t162 = load ptr, ptr %t2 call void @fn_emit(ptr %t162) - call void @fn_emit(ptr @.str1162) + call void @fn_emit(ptr @.str1159) %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 @.str1163) + call void @fn_emit(ptr @.str1160) %t166 = load ptr, ptr %t71 call void @fn_emit(ptr %t166) - call void @fn_emit(ptr @.str1164) + call void @fn_emit(ptr @.str1161) %t167 = load ptr, ptr %t160 - %t168 = call ptr @fn_sconcat(ptr @.str1165, ptr %t167) + %t168 = call ptr @fn_sconcat(ptr @.str1162, ptr %t167) %t169 = call ptr @fn_emit_bind(ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t170 - %t172 = call ptr @fn_sconcat(ptr %t171, ptr @.str1167) - %t173 = call ptr @fn_sconcat(ptr @.str1166, ptr %t172) + %t172 = call ptr @fn_sconcat(ptr %t171, ptr @.str1164) + %t173 = call ptr @fn_sconcat(ptr @.str1163, ptr %t172) %t174 = call ptr @fn_emit_bind(ptr %t173) store ptr %t174, ptr %t120 br label %ifend10 ifend10: - %t175 = call ptr @fn_lbl(ptr @.str1168) + %t175 = call ptr @fn_lbl(ptr @.str1165) store ptr %t175, ptr %t176 - call void @fn_emit(ptr @.str1169) + call void @fn_emit(ptr @.str1166) %t177 = load ptr, ptr %t120 call void @fn_emit(ptr %t177) - call void @fn_emit(ptr @.str1170) + call void @fn_emit(ptr @.str1167) %t178 = load ptr, ptr %t176 call void @fn_emit(ptr %t178) - call void @fn_emit(ptr @.str1171) + call void @fn_emit(ptr @.str1168) %t179 = load ptr, ptr %t46 call void @fn_emit(ptr %t179) - call void @fn_emit(ptr @.str1172) + call void @fn_emit(ptr @.str1169) %t180 = load ptr, ptr %t176 call void @fn_emit(ptr %t180) - call void @fn_emit(ptr @.str1173) + call void @fn_emit(ptr @.str1170) %t181 = load i32, ptr %t96 %t182 = add i32 %t181, 1 store i32 %t182, ptr %t96 @@ -17460,35 +17430,35 @@ then16: then19: %t231 = call ptr @fn_nreg() store ptr %t231, ptr %t232 - call void @fn_emit(ptr @.str1174) + call void @fn_emit(ptr @.str1171) %t233 = load ptr, ptr %t232 call void @fn_emit(ptr %t233) - call void @fn_emit(ptr @.str1175) + call void @fn_emit(ptr @.str1172) %t234 = load ptr, ptr %t2 call void @fn_emit(ptr %t234) - call void @fn_emit(ptr @.str1176) + call void @fn_emit(ptr @.str1173) %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 @.str1177) + call void @fn_emit(ptr @.str1174) %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 @.str1178) + call void @fn_emit(ptr @.str1175) %t241 = load ptr, ptr %t71 call void @fn_emit(ptr %t241) - call void @fn_emit(ptr @.str1179) - %t242 = call ptr @fn_emit_alloca(ptr @.str1180) + call void @fn_emit(ptr @.str1176) + %t242 = call ptr @fn_emit_alloca(ptr @.str1177) store ptr %t242, ptr %t243 - call void @fn_emit(ptr @.str1181) + call void @fn_emit(ptr @.str1178) %t244 = load ptr, ptr %t232 call void @fn_emit(ptr %t244) - call void @fn_emit(ptr @.str1182) + call void @fn_emit(ptr @.str1179) %t245 = load ptr, ptr %t243 call void @fn_emit(ptr %t245) - call void @fn_emit(ptr @.str1183) + call void @fn_emit(ptr @.str1180) %t246 = load ptr, ptr %t0 %t247 = getelementptr inbounds %Cmp_Node, ptr %t246, i32 0, i32 7 %t248 = load ptr, ptr %t247 @@ -17519,90 +17489,88 @@ wend13: %t264 = load ptr, ptr %t0 %t265 = getelementptr inbounds %Cmp_Node, ptr %t264, i32 0, i32 5 %t266 = load ptr, ptr %t265 - %t267 = icmp eq ptr %t266, null + %t267 = icmp ne ptr %t266, null %t268 = zext i1 %t267 to i32 - %t269 = icmp eq i32 %t268, 0 - %t270 = zext i1 %t269 to i32 - %t271 = icmp ne i32 %t270, 0 - br i1 %t271, label %then22, label %ifend24 + %t269 = icmp ne i32 %t268, 0 + br i1 %t269, label %then22, label %ifend24 then22: - %t272 = load ptr, ptr %t0 - %t273 = getelementptr inbounds %Cmp_Node, ptr %t272, i32 0, i32 5 - %t274 = load ptr, ptr %t273 - %t275 = call ptr @fn_emit_expr(ptr %t274) - store ptr %t275, ptr %t276 + %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 = getelementptr inbounds %Cmp_Val, ptr %t277, i32 0, i32 0 - %t279 = load ptr, ptr %t278 - %t280 = call ptr @fn_sconcat(ptr %t279, ptr @.str1185) - %t281 = call ptr @fn_sconcat(ptr @.str1184, ptr %t280) - %t282 = call ptr @fn_emit_bind(ptr %t281) + %t278 = call ptr @fn_sconcat(ptr %t277, ptr @.str1182) + %t279 = call ptr @fn_sconcat(ptr @.str1181, ptr %t278) + %t280 = call ptr @fn_emit_bind(ptr %t279) + store ptr %t280, ptr %t281 + %t282 = call ptr @fn_lbl(ptr @.str1183) store ptr %t282, ptr %t283 - %t284 = call ptr @fn_lbl(ptr @.str1186) - store ptr %t284, ptr %t285 - call void @fn_emit(ptr @.str1187) - %t286 = load ptr, ptr %t283 + call void @fn_emit(ptr @.str1184) + %t284 = load ptr, ptr %t281 + call void @fn_emit(ptr %t284) + call void @fn_emit(ptr @.str1185) + %t285 = load ptr, ptr %t283 + call void @fn_emit(ptr %t285) + call void @fn_emit(ptr @.str1186) + %t286 = load ptr, ptr %t46 call void @fn_emit(ptr %t286) - call void @fn_emit(ptr @.str1188) - %t287 = load ptr, ptr %t285 + call void @fn_emit(ptr @.str1187) + %t287 = load ptr, ptr %t283 call void @fn_emit(ptr %t287) - call void @fn_emit(ptr @.str1189) - %t288 = load ptr, ptr %t46 - call void @fn_emit(ptr %t288) - call void @fn_emit(ptr @.str1190) - %t289 = load ptr, ptr %t285 - call void @fn_emit(ptr %t289) - call void @fn_emit(ptr @.str1191) + call void @fn_emit(ptr @.str1188) br label %ifend24 ifend24: - %t290 = load ptr, ptr %t46 - %t291 = load ptr, ptr %t48 - call void @fn_loop_push(ptr %t290, ptr %t291) - %t292 = load ptr, ptr %t0 - %t293 = getelementptr inbounds %Cmp_Node, ptr %t292, i32 0, i32 4 - %t294 = load ptr, ptr %t293 - call void @fn_emit_block(ptr %t294) + %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() - %t295 = load i32, ptr %t184 - store i32 %t295, ptr @g_nloc - %t296 = load i32, ptr @g_g_term - %t297 = icmp eq i32 %t296, 0 - %t298 = zext i1 %t297 to i32 - %t299 = icmp ne i32 %t298, 0 - br i1 %t299, label %then25, label %ifend27 + %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 @.str1192) - %t300 = load ptr, ptr %t46 - call void @fn_emit(ptr %t300) - call void @fn_emit(ptr @.str1193) + call void @fn_emit(ptr @.str1189) + %t298 = load ptr, ptr %t46 + call void @fn_emit(ptr %t298) + call void @fn_emit(ptr @.str1190) br label %ifend27 ifend27: - %t301 = load ptr, ptr %t46 - call void @fn_emit(ptr %t301) - call void @fn_emit(ptr @.str1194) - %t302 = load ptr, ptr %t4 - %t303 = call ptr @fn_sconcat(ptr @.str1195, ptr %t302) - %t304 = call ptr @fn_emit_bind(ptr %t303) - store ptr %t304, ptr %t305 - %t306 = load ptr, ptr %t305 - %t307 = call ptr @fn_sconcat(ptr %t306, ptr @.str1197) - %t308 = call ptr @fn_sconcat(ptr @.str1196, ptr %t307) - %t309 = call ptr @fn_emit_bind(ptr %t308) - store ptr %t309, ptr %t310 - %t311 = load ptr, ptr %t310 - %t312 = load ptr, ptr %t4 - call void @fn_store_at(ptr @.str1198, ptr %t311, ptr %t312) - call void @fn_emit(ptr @.str1199) - %t313 = load ptr, ptr %t42 - call void @fn_emit(ptr %t313) - call void @fn_emit(ptr @.str1200) - %t314 = load ptr, ptr %t48 - call void @fn_emit(ptr %t314) - call void @fn_emit(ptr @.str1201) + %t299 = load ptr, ptr %t46 + call void @fn_emit(ptr %t299) + call void @fn_emit(ptr @.str1191) + %t300 = load ptr, ptr %t4 + %t301 = call ptr @fn_sconcat(ptr @.str1192, ptr %t300) + %t302 = call ptr @fn_emit_bind(ptr %t301) + store ptr %t302, ptr %t303 + %t304 = load ptr, ptr %t303 + %t305 = call ptr @fn_sconcat(ptr %t304, ptr @.str1194) + %t306 = call ptr @fn_sconcat(ptr @.str1193, ptr %t305) + %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 @.str1195, ptr %t309, ptr %t310) + call void @fn_emit(ptr @.str1196) + %t311 = load ptr, ptr %t42 + call void @fn_emit(ptr %t311) + call void @fn_emit(ptr @.str1197) + %t312 = load ptr, ptr %t48 + call void @fn_emit(ptr %t312) + call void @fn_emit(ptr @.str1198) store i32 0, ptr @g_g_term - %t315 = load i32, ptr @g_nself - %t316 = sub i32 %t315, 1 - store i32 %t316, ptr @g_nself + %t313 = load i32, ptr @g_nself + %t314 = sub i32 %t313, 1 + store i32 %t314, ptr @g_nself br label %ret ret: ret void @@ -17622,15 +17590,15 @@ entry: %t48 = alloca ptr %t58 = alloca ptr %t59 = alloca ptr - %t75 = alloca ptr - %t90 = alloca i32 - %t108 = alloca ptr - %t114 = alloca i32 - %t120 = alloca ptr - %t130 = alloca ptr - %t145 = alloca ptr - %t153 = alloca i32 - %t155 = 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 store ptr %arg_e, ptr %t0 store ptr %arg_comp, ptr %t1 store ptr %arg_rec, ptr %t2 @@ -17646,47 +17614,47 @@ entry: br i1 %t11, label %then0, label %ifend2 then0: %t12 = load ptr, ptr %t1 - %t13 = call ptr @fn_sconcat(ptr @.str1202, ptr %t12) + %t13 = call ptr @fn_sconcat(ptr @.str1199, 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 @.str1203) + call void @fn_emit(ptr @.str1200) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) - call void @fn_emit(ptr @.str1204) + call void @fn_emit(ptr @.str1201) %t17 = load ptr, ptr %t4 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str1205) + call void @fn_emit(ptr @.str1202) %t18 = load ptr, ptr %t1 call void @fn_emit(ptr %t18) - call void @fn_emit(ptr @.str1206) + call void @fn_emit(ptr @.str1203) %t19 = load ptr, ptr %t0 call void @fn_emit(ptr %t19) - call void @fn_emit(ptr @.str1207) - call void @fn_emit(ptr @.str1208) + call void @fn_emit(ptr @.str1204) + call void @fn_emit(ptr @.str1205) %t20 = load ptr, ptr %t15 call void @fn_emit(ptr %t20) - call void @fn_emit(ptr @.str1209) + call void @fn_emit(ptr @.str1206) %t21 = call ptr @fn_nreg() store ptr %t21, ptr %t22 - call void @fn_emit(ptr @.str1210) + call void @fn_emit(ptr @.str1207) %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) - call void @fn_emit(ptr @.str1211) + call void @fn_emit(ptr @.str1208) %t24 = load ptr, ptr %t4 call void @fn_emit(ptr %t24) - call void @fn_emit(ptr @.str1212) + call void @fn_emit(ptr @.str1209) %t25 = load ptr, ptr %t1 call void @fn_emit(ptr %t25) - call void @fn_emit(ptr @.str1213) + call void @fn_emit(ptr @.str1210) %t26 = load ptr, ptr %t1 call void @fn_emit(ptr %t26) - call void @fn_emit(ptr @.str1214) + call void @fn_emit(ptr @.str1211) %t27 = load ptr, ptr %t0 call void @fn_emit(ptr %t27) - call void @fn_emit(ptr @.str1215) + call void @fn_emit(ptr @.str1212) store i32 0, ptr %t28 br label %wcond3 wcond3: @@ -17712,190 +17680,184 @@ wbody4: store ptr %t45, ptr %t46 %t47 = call ptr @fn_nreg() store ptr %t47, ptr %t48 - call void @fn_emit(ptr @.str1216) + call void @fn_emit(ptr @.str1213) %t49 = load ptr, ptr %t48 call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str1217) + call void @fn_emit(ptr @.str1214) %t50 = load ptr, ptr %t1 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str1218) + call void @fn_emit(ptr @.str1215) %t51 = load ptr, ptr %t22 call void @fn_emit(ptr %t51) - call void @fn_emit(ptr @.str1219) + call void @fn_emit(ptr @.str1216) %t52 = load i32, ptr %t28 %t53 = call ptr @fn_itoa(i32 %t52) call void @fn_emit(ptr %t53) - call void @fn_emit(ptr @.str1220) + call void @fn_emit(ptr @.str1217) %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 @.str1221, ptr %t59 + store ptr @.str1218, ptr %t59 %t60 = load ptr, ptr %t58 - %t61 = call i32 @fn_streq(ptr %t60, ptr @.str1222) + %t61 = call i32 @fn_streq(ptr %t60, ptr @.str1219) %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then6, label %ifend8 then6: - store ptr @.str1223, ptr %t59 + store ptr @.str1220, 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 eq ptr %t65, null + %t66 = icmp ne ptr %t65, null %t67 = zext i1 %t66 to i32 - %t68 = icmp eq i32 %t67, 0 - %t69 = zext i1 %t68 to i32 - %t70 = icmp ne i32 %t69, 0 - br i1 %t70, label %then9, label %ifend11 + %t68 = icmp ne i32 %t67, 0 + br i1 %t68, label %then9, label %ifend11 then9: - %t71 = load ptr, ptr %t46 - %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 4 - %t73 = load ptr, ptr %t72 - %t74 = call ptr @fn_emit_expr(ptr %t73) - store ptr %t74, ptr %t75 + %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 - %t77 = getelementptr inbounds %Cmp_Val, ptr %t76, i32 0, i32 0 - %t78 = load ptr, ptr %t77 - store ptr %t78, ptr %t59 + store ptr %t76, ptr %t59 br label %ifend11 ifend11: - call void @fn_emit(ptr @.str1224) - %t79 = load ptr, ptr %t58 + call void @fn_emit(ptr @.str1221) + %t77 = load ptr, ptr %t58 + call void @fn_emit(ptr %t77) + call void @fn_emit(ptr @.str1222) + %t78 = load ptr, ptr %t59 + call void @fn_emit(ptr %t78) + call void @fn_emit(ptr @.str1223) + %t79 = load ptr, ptr %t48 call void @fn_emit(ptr %t79) - call void @fn_emit(ptr @.str1225) - %t80 = load ptr, ptr %t59 - call void @fn_emit(ptr %t80) - call void @fn_emit(ptr @.str1226) - %t81 = load ptr, ptr %t48 - call void @fn_emit(ptr %t81) - call void @fn_emit(ptr @.str1227) - %t82 = load i32, ptr %t28 - %t83 = add i32 %t82, 1 - store i32 %t83, ptr %t28 + call void @fn_emit(ptr @.str1224) + %t80 = load i32, ptr %t28 + %t81 = add i32 %t80, 1 + store i32 %t81, ptr %t28 br label %wcond3 wend5: - %t84 = load ptr, ptr %t2 - %t85 = icmp eq ptr %t84, null - %t86 = zext i1 %t85 to i32 - %t87 = icmp eq i32 %t86, 0 - %t88 = zext i1 %t87 to i32 - %t89 = icmp ne i32 %t88, 0 - br i1 %t89, label %then12, label %ifend14 + %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 %t90 + store i32 0, ptr %t86 br label %wcond15 wcond15: - %t91 = load i32, ptr %t90 - %t92 = load ptr, ptr %t2 - %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 7 - %t94 = load ptr, ptr %t93 - %t95 = getelementptr inbounds %LSlice, ptr %t94, i32 0, i32 1 - %t96 = load i32, ptr %t95 - %t97 = icmp slt i32 %t91, %t96 - %t98 = zext i1 %t97 to i32 - %t99 = icmp ne i32 %t98, 0 - br i1 %t99, label %wbody16, label %wend17 + %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: - %t100 = load ptr, ptr %t2 - %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 = load i32, ptr %t90 - %t106 = getelementptr inbounds ptr, ptr %t104, i32 %t105 - %t107 = load ptr, ptr %t106 - store ptr %t107, ptr %t108 - %t109 = load ptr, ptr %t7 - %t110 = load ptr, ptr %t108 - %t111 = getelementptr inbounds %Cmp_Node, ptr %t110, i32 0, i32 1 - %t112 = load ptr, ptr %t111 - %t113 = call i32 @fn_field_index(ptr %t109, ptr %t112) - store i32 %t113, ptr %t114 - %t115 = load i32, ptr %t114 - %t116 = icmp sge i32 %t115, 0 - %t117 = zext i1 %t116 to i32 - %t118 = icmp ne i32 %t117, 0 - br i1 %t118, label %then18, label %ifend20 + %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: - %t119 = call ptr @fn_nreg() - store ptr %t119, ptr %t120 + %t115 = call ptr @fn_nreg() + store ptr %t115, ptr %t116 + call void @fn_emit(ptr @.str1225) + %t117 = load ptr, ptr %t116 + call void @fn_emit(ptr %t117) + call void @fn_emit(ptr @.str1226) + %t118 = load ptr, ptr %t1 + call void @fn_emit(ptr %t118) + call void @fn_emit(ptr @.str1227) + %t119 = load ptr, ptr %t22 + call void @fn_emit(ptr %t119) call void @fn_emit(ptr @.str1228) - %t121 = load ptr, ptr %t120 + %t120 = load i32, ptr %t110 + %t121 = call ptr @fn_itoa(i32 %t120) call void @fn_emit(ptr %t121) call void @fn_emit(ptr @.str1229) - %t122 = load ptr, ptr %t1 - call void @fn_emit(ptr %t122) + %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 @.str1230) - %t123 = load ptr, ptr %t22 - call void @fn_emit(ptr %t123) + %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 @.str1231) - %t124 = load i32, ptr %t114 - %t125 = call ptr @fn_itoa(i32 %t124) - call void @fn_emit(ptr %t125) + %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 @.str1232) - %t126 = load ptr, ptr %t108 - %t127 = getelementptr inbounds %Cmp_Node, ptr %t126, i32 0, i32 4 - %t128 = load ptr, ptr %t127 - %t129 = call ptr @fn_emit_expr(ptr %t128) - store ptr %t129, ptr %t130 - call void @fn_emit(ptr @.str1233) - %t131 = load ptr, ptr %t7 - %t132 = load ptr, ptr %t108 - %t133 = getelementptr inbounds %Cmp_Node, ptr %t132, i32 0, i32 1 - %t134 = load ptr, ptr %t133 - %t135 = call ptr @fn_field_type(ptr %t131, ptr %t134) - %t136 = call ptr @fn_llty(ptr %t135) + %t136 = load ptr, ptr %t116 call void @fn_emit(ptr %t136) - call void @fn_emit(ptr @.str1234) - %t137 = load ptr, ptr %t130 - %t138 = getelementptr inbounds %Cmp_Val, ptr %t137, i32 0, i32 0 - %t139 = load ptr, ptr %t138 - call void @fn_emit(ptr %t139) - call void @fn_emit(ptr @.str1235) - %t140 = load ptr, ptr %t120 - call void @fn_emit(ptr %t140) - call void @fn_emit(ptr @.str1236) + call void @fn_emit(ptr @.str1233) br label %ifend20 ifend20: - %t141 = load i32, ptr %t90 - %t142 = add i32 %t141, 1 - store i32 %t142, ptr %t90 + %t137 = load i32, ptr %t86 + %t138 = add i32 %t137, 1 + store i32 %t138, ptr %t86 br label %wcond15 wend17: br label %ifend14 ifend14: - %t143 = load ptr, ptr %t1 - %t144 = call ptr @fn_onattach_body(ptr %t143) - store ptr %t144, ptr %t145 - %t146 = load ptr, ptr %t145 - %t147 = icmp eq ptr %t146, null - %t148 = zext i1 %t147 to i32 - %t149 = icmp eq i32 %t148, 0 - %t150 = zext i1 %t149 to i32 - %t151 = icmp ne i32 %t150, 0 - br i1 %t151, label %then21, label %ifend23 + %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: - %t152 = load i32, ptr @g_nloc - store i32 %t152, ptr %t153 - %t154 = call ptr @fn_emit_alloca(ptr @.str1237) - store ptr %t154, ptr %t155 - call void @fn_emit(ptr @.str1238) - %t156 = load ptr, ptr %t22 - call void @fn_emit(ptr %t156) - call void @fn_emit(ptr @.str1239) - %t157 = load ptr, ptr %t155 - call void @fn_emit(ptr %t157) - call void @fn_emit(ptr @.str1240) - %t158 = load ptr, ptr %t1 - %t159 = load ptr, ptr %t155 - %t160 = load ptr, ptr %t1 - call void @fn_loc_push(ptr %t158, ptr %t159, ptr %t160) - %t161 = load ptr, ptr %t145 - call void @fn_emit_block(ptr %t161) - %t162 = load i32, ptr %t153 - store i32 %t162, ptr @g_nloc + %t146 = load i32, ptr @g_nloc + store i32 %t146, ptr %t147 + %t148 = call ptr @fn_emit_alloca(ptr @.str1234) + store ptr %t148, ptr %t149 + call void @fn_emit(ptr @.str1235) + %t150 = load ptr, ptr %t22 + call void @fn_emit(ptr %t150) + call void @fn_emit(ptr @.str1236) + %t151 = load ptr, ptr %t149 + call void @fn_emit(ptr %t151) + call void @fn_emit(ptr @.str1237) + %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: br label %ret @@ -17943,31 +17905,31 @@ wbody1: store ptr %t23, ptr %t24 %t25 = call ptr @fn_nreg() store ptr %t25, ptr %t26 - call void @fn_emit(ptr @.str1241) + call void @fn_emit(ptr @.str1238) %t27 = load ptr, ptr %t26 call void @fn_emit(ptr %t27) - call void @fn_emit(ptr @.str1242) + call void @fn_emit(ptr @.str1239) %t28 = load ptr, ptr %t3 call void @fn_emit(ptr %t28) - call void @fn_emit(ptr @.str1243) + call void @fn_emit(ptr @.str1240) %t29 = load ptr, ptr %t24 call void @fn_emit(ptr %t29) - call void @fn_emit(ptr @.str1244) + call void @fn_emit(ptr @.str1241) %t30 = load ptr, ptr %t24 call void @fn_emit(ptr %t30) - call void @fn_emit(ptr @.str1245) + call void @fn_emit(ptr @.str1242) %t31 = load ptr, ptr %t1 call void @fn_emit(ptr %t31) - call void @fn_emit(ptr @.str1246) - %t32 = call ptr @fn_emit_alloca(ptr @.str1247) + call void @fn_emit(ptr @.str1243) + %t32 = call ptr @fn_emit_alloca(ptr @.str1244) store ptr %t32, ptr %t33 - call void @fn_emit(ptr @.str1248) + call void @fn_emit(ptr @.str1245) %t34 = load ptr, ptr %t26 call void @fn_emit(ptr %t34) - call void @fn_emit(ptr @.str1249) + call void @fn_emit(ptr @.str1246) %t35 = load ptr, ptr %t33 call void @fn_emit(ptr %t35) - call void @fn_emit(ptr @.str1250) + call void @fn_emit(ptr @.str1247) %t36 = load ptr, ptr %t24 %t37 = load ptr, ptr %t33 %t38 = load ptr, ptr %t24 @@ -17995,10 +17957,10 @@ entry: %t48 = alloca ptr %t49 = alloca i32 %t93 = alloca ptr - %t101 = alloca i32 - %t106 = alloca i32 + %t99 = alloca i32 + %t104 = alloca i32 store ptr %arg_st, ptr %t0 - %t1 = call ptr @fn_emit_bind(ptr @.str1251) + %t1 = call ptr @fn_emit_bind(ptr @.str1248) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1 @@ -18015,24 +17977,24 @@ then0: store ptr %t12, ptr %t13 %t14 = call ptr @fn_nreg() store ptr %t14, ptr %t15 - call void @fn_emit(ptr @.str1252) + call void @fn_emit(ptr @.str1249) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) - call void @fn_emit(ptr @.str1253) + call void @fn_emit(ptr @.str1250) %t17 = load ptr, ptr %t13 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str1254) + call void @fn_emit(ptr @.str1251) %t18 = load ptr, ptr %t2 call void @fn_emit(ptr %t18) - call void @fn_emit(ptr @.str1255) - call void @fn_emit(ptr @.str1256) + call void @fn_emit(ptr @.str1252) + call void @fn_emit(ptr @.str1253) %t19 = load i32, ptr %t7 %t20 = call ptr @fn_itoa(i32 %t19) call void @fn_emit(ptr %t20) - call void @fn_emit(ptr @.str1257) + call void @fn_emit(ptr @.str1254) %t21 = load ptr, ptr %t15 call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str1258) + call void @fn_emit(ptr @.str1255) %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1 %t24 = load ptr, ptr %t23 @@ -18126,65 +18088,63 @@ wend5: %t92 = call ptr @fn_onspawn_body(ptr %t91) store ptr %t92, ptr %t93 %t94 = load ptr, ptr %t93 - %t95 = icmp eq ptr %t94, null + %t95 = icmp ne ptr %t94, null %t96 = zext i1 %t95 to i32 - %t97 = icmp eq i32 %t96, 0 - %t98 = zext i1 %t97 to i32 - %t99 = icmp ne i32 %t98, 0 - br i1 %t99, label %then12, label %ifend14 + %t97 = icmp ne i32 %t96, 0 + br i1 %t97, label %then12, label %ifend14 then12: - %t100 = load i32, ptr @g_nloc - store i32 %t100, ptr %t101 - %t102 = load ptr, ptr %t26 - %t103 = load ptr, ptr %t2 - call void @fn_emit_bind_props(ptr %t102, ptr %t103) - %t104 = load ptr, ptr %t93 - call void @fn_emit_block(ptr %t104) - %t105 = load i32, ptr %t101 - store i32 %t105, ptr @g_nloc + %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: br label %ifend2 else1: - store i32 0, ptr %t106 + store i32 0, ptr %t104 br label %wcond15 wcond15: - %t107 = load i32, ptr %t106 - %t108 = load ptr, ptr %t0 - %t109 = getelementptr inbounds %Cmp_Node, ptr %t108, i32 0, i32 7 - %t110 = load ptr, ptr %t109 - %t111 = getelementptr inbounds %LSlice, ptr %t110, i32 0, i32 1 - %t112 = load i32, ptr %t111 - %t113 = icmp slt i32 %t107, %t112 - %t114 = zext i1 %t113 to i32 - %t115 = icmp ne i32 %t114, 0 - br i1 %t115, label %wbody16, label %wend17 + %t105 = load i32, ptr %t104 + %t106 = load ptr, ptr %t0 + %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 1 + %t110 = load i32, ptr %t109 + %t111 = icmp slt i32 %t105, %t110 + %t112 = zext i1 %t111 to i32 + %t113 = icmp ne i32 %t112, 0 + br i1 %t113, label %wbody16, label %wend17 wbody16: - %t116 = load ptr, ptr %t2 - %t117 = load ptr, ptr %t0 - %t118 = getelementptr inbounds %Cmp_Node, ptr %t117, i32 0, i32 7 + %t114 = load ptr, ptr %t2 + %t115 = load ptr, ptr %t0 + %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 = getelementptr inbounds %LSlice, ptr %t119, i32 0, i32 0 - %t121 = load ptr, ptr %t120 - %t122 = load i32, ptr %t106 - %t123 = getelementptr inbounds ptr, ptr %t121, i32 %t122 + %t120 = load i32, ptr %t104 + %t121 = getelementptr inbounds ptr, ptr %t119, i32 %t120 + %t122 = load ptr, ptr %t121 + %t123 = getelementptr inbounds %Cmp_Node, ptr %t122, i32 0, i32 1 %t124 = load ptr, ptr %t123 - %t125 = getelementptr inbounds %Cmp_Node, ptr %t124, i32 0, i32 1 - %t126 = load ptr, ptr %t125 - %t127 = load ptr, ptr %t0 - %t128 = getelementptr inbounds %Cmp_Node, ptr %t127, i32 0, i32 7 + %t125 = load ptr, ptr %t0 + %t126 = getelementptr inbounds %Cmp_Node, ptr %t125, i32 0, i32 7 + %t127 = load ptr, ptr %t126 + %t128 = getelementptr inbounds %LSlice, ptr %t127, i32 0, i32 0 %t129 = load ptr, ptr %t128 - %t130 = getelementptr inbounds %LSlice, ptr %t129, i32 0, i32 0 - %t131 = load ptr, ptr %t130 - %t132 = load i32, ptr %t106 - %t133 = getelementptr inbounds ptr, ptr %t131, i32 %t132 + %t130 = load i32, ptr %t104 + %t131 = getelementptr inbounds ptr, ptr %t129, i32 %t130 + %t132 = load ptr, ptr %t131 + %t133 = getelementptr inbounds %Cmp_Node, ptr %t132, i32 0, i32 4 %t134 = load ptr, ptr %t133 - %t135 = getelementptr inbounds %Cmp_Node, ptr %t134, i32 0, i32 4 - %t136 = load ptr, ptr %t135 - call void @fn_emit_init_component(ptr %t116, ptr %t126, ptr %t136) - %t137 = load i32, ptr %t106 - %t138 = add i32 %t137, 1 - store i32 %t138, ptr %t106 + call void @fn_emit_init_component(ptr %t114, ptr %t124, ptr %t134) + %t135 = load i32, ptr %t104 + %t136 = add i32 %t135, 1 + store i32 %t136, ptr %t104 br label %wcond15 wend17: br label %ifend2 @@ -18224,20 +18184,20 @@ then0: store ptr %t12, ptr %t13 %t14 = call ptr @fn_nreg() store ptr %t14, ptr %t15 - call void @fn_emit(ptr @.str1259) + call void @fn_emit(ptr @.str1256) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) - call void @fn_emit(ptr @.str1260) + call void @fn_emit(ptr @.str1257) %t17 = load ptr, ptr %t13 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str1261) + call void @fn_emit(ptr @.str1258) %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 @.str1262) + call void @fn_emit(ptr @.str1259) %t21 = load ptr, ptr %t15 - %t22 = call ptr @fn_sconcat(ptr @.str1263, ptr %t21) + %t22 = call ptr @fn_sconcat(ptr @.str1260, ptr %t21) %t23 = call ptr @fn_emit_bind(ptr %t22) store ptr %t23, ptr %t24 store i32 0, ptr %t25 @@ -18265,43 +18225,43 @@ wbody4: %t43 = load ptr, ptr %t41 %t44 = call i32 @fn_find_arch_id(ptr %t43) %t45 = call ptr @fn_itoa(i32 %t44) - %t46 = call ptr @fn_sconcat(ptr @.str1265, ptr %t45) + %t46 = call ptr @fn_sconcat(ptr @.str1262, ptr %t45) %t47 = call ptr @fn_sconcat(ptr %t42, ptr %t46) - %t48 = call ptr @fn_sconcat(ptr @.str1264, ptr %t47) + %t48 = call ptr @fn_sconcat(ptr @.str1261, ptr %t47) %t49 = call ptr @fn_emit_bind(ptr %t48) store ptr %t49, ptr %t50 - %t51 = call ptr @fn_lbl(ptr @.str1266) + %t51 = call ptr @fn_lbl(ptr @.str1263) store ptr %t51, ptr %t52 - %t53 = call ptr @fn_lbl(ptr @.str1267) + %t53 = call ptr @fn_lbl(ptr @.str1264) store ptr %t53, ptr %t54 - call void @fn_emit(ptr @.str1268) + call void @fn_emit(ptr @.str1265) %t55 = load ptr, ptr %t50 call void @fn_emit(ptr %t55) - call void @fn_emit(ptr @.str1269) + call void @fn_emit(ptr @.str1266) %t56 = load ptr, ptr %t52 call void @fn_emit(ptr %t56) - call void @fn_emit(ptr @.str1270) + call void @fn_emit(ptr @.str1267) %t57 = load ptr, ptr %t54 call void @fn_emit(ptr %t57) - call void @fn_emit(ptr @.str1271) + call void @fn_emit(ptr @.str1268) %t58 = load ptr, ptr %t52 call void @fn_emit(ptr %t58) - call void @fn_emit(ptr @.str1272) + call void @fn_emit(ptr @.str1269) %t59 = load ptr, ptr %t41 call void @fn_emit(ptr %t59) - call void @fn_emit(ptr @.str1273) + call void @fn_emit(ptr @.str1270) %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 @.str1274) - call void @fn_emit(ptr @.str1275) + call void @fn_emit(ptr @.str1271) + call void @fn_emit(ptr @.str1272) %t63 = load ptr, ptr %t54 call void @fn_emit(ptr %t63) - call void @fn_emit(ptr @.str1276) + call void @fn_emit(ptr @.str1273) %t64 = load ptr, ptr %t54 call void @fn_emit(ptr %t64) - call void @fn_emit(ptr @.str1277) + call void @fn_emit(ptr @.str1274) %t65 = load i32, ptr %t25 %t66 = add i32 %t65, 1 store i32 %t66, ptr %t25 @@ -18309,12 +18269,12 @@ wbody4: wend5: br label %ifend2 ifend2: - call void @fn_emit(ptr @.str1278) + call void @fn_emit(ptr @.str1275) %t67 = load ptr, ptr %t5 %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 @.str1279) + call void @fn_emit(ptr @.str1276) br label %ret ret: ret void @@ -18324,16 +18284,16 @@ define void @fn_emit_toggle(ptr %arg_st) { entry: %t0 = alloca ptr %t1 = alloca ptr + %t18 = alloca ptr %t20 = alloca ptr %t22 = alloca ptr - %t24 = alloca ptr - %t35 = alloca ptr - %t57 = alloca i32 - %t59 = alloca ptr - %t72 = alloca ptr - %t84 = alloca ptr + %t33 = alloca ptr + %t53 = alloca i32 + %t55 = alloca ptr + %t68 = alloca ptr + %t80 = alloca ptr store ptr %arg_st, ptr %t0 - store ptr @.str1280, ptr %t1 + store ptr @.str1277, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 2 %t4 = load i32, ptr %t3 @@ -18342,156 +18302,152 @@ entry: %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: - store ptr @.str1281, ptr %t1 + store ptr @.str1278, ptr %t1 br label %ifend2 ifend2: %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4 %t10 = load ptr, ptr %t9 - %t11 = icmp eq ptr %t10, null + %t11 = icmp ne ptr %t10, null %t12 = zext i1 %t11 to i32 - %t13 = icmp eq i32 %t12, 0 - %t14 = zext i1 %t13 to i32 - %t15 = icmp ne i32 %t14, 0 - br i1 %t15, label %then3, label %else4 + %t13 = icmp ne i32 %t12, 0 + br i1 %t13, label %then3, label %else4 then3: - %t16 = load ptr, ptr %t0 - %t17 = getelementptr inbounds %Cmp_Node, ptr %t16, i32 0, i32 4 - %t18 = load ptr, ptr %t17 - %t19 = call ptr @fn_emit_expr(ptr %t18) + %t14 = load ptr, ptr %t0 + %t15 = getelementptr inbounds %Cmp_Node, ptr %t14, i32 0, i32 4 + %t16 = load ptr, ptr %t15 + %t17 = call ptr @fn_emit_expr(ptr %t16) + store ptr %t17, ptr %t18 + %t19 = call ptr @fn_itoa(i32 1024) store ptr %t19, ptr %t20 - %t21 = call ptr @fn_itoa(i32 1024) + %t21 = call ptr @fn_nreg() store ptr %t21, ptr %t22 - %t23 = call ptr @fn_nreg() - store ptr %t23, ptr %t24 + call void @fn_emit(ptr @.str1279) + %t23 = load ptr, ptr %t22 + call void @fn_emit(ptr %t23) + call void @fn_emit(ptr @.str1280) + %t24 = load ptr, ptr %t20 + call void @fn_emit(ptr %t24) + call void @fn_emit(ptr @.str1281) + %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 @.str1282) - %t25 = load ptr, ptr %t24 - call void @fn_emit(ptr %t25) + %t28 = load ptr, ptr %t18 + %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 + %t30 = load ptr, ptr %t29 + call void @fn_emit(ptr %t30) call void @fn_emit(ptr @.str1283) - %t26 = load ptr, ptr %t22 - call void @fn_emit(ptr %t26) call void @fn_emit(ptr @.str1284) - %t27 = load ptr, ptr %t0 - %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 1 - %t29 = load ptr, ptr %t28 - call void @fn_emit(ptr %t29) + %t31 = load ptr, ptr %t1 + call void @fn_emit(ptr %t31) call void @fn_emit(ptr @.str1285) - %t30 = load ptr, ptr %t20 - %t31 = getelementptr inbounds %Cmp_Val, ptr %t30, i32 0, i32 0 - %t32 = load ptr, ptr %t31 + %t32 = load ptr, ptr %t22 call void @fn_emit(ptr %t32) call void @fn_emit(ptr @.str1286) - call void @fn_emit(ptr @.str1287) - %t33 = load ptr, ptr %t1 - call void @fn_emit(ptr %t33) - call void @fn_emit(ptr @.str1288) - %t34 = load ptr, ptr %t24 - call void @fn_emit(ptr %t34) - call void @fn_emit(ptr @.str1289) - store ptr null, ptr %t35 - %t36 = load ptr, ptr %t0 - %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 2 - %t38 = load i32, ptr %t37 - %t39 = icmp eq i32 %t38, 1 - %t40 = zext i1 %t39 to i32 - %t41 = icmp ne i32 %t40, 0 - br i1 %t41, label %then6, label %else7 + store ptr null, 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 %then6, label %else7 then6: - %t42 = load ptr, ptr %t0 - %t43 = getelementptr inbounds %Cmp_Node, ptr %t42, i32 0, i32 1 - %t44 = load ptr, ptr %t43 - %t45 = call ptr @fn_onenable_body(ptr %t44) - store ptr %t45, ptr %t35 + %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_onenable_body(ptr %t42) + store ptr %t43, ptr %t33 br label %ifend8 else7: - %t46 = load ptr, ptr %t0 - %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 1 - %t48 = load ptr, ptr %t47 - %t49 = call ptr @fn_ondisable_body(ptr %t48) - store ptr %t49, ptr %t35 + %t44 = load ptr, ptr %t0 + %t45 = getelementptr inbounds %Cmp_Node, ptr %t44, i32 0, i32 1 + %t46 = load ptr, ptr %t45 + %t47 = call ptr @fn_ondisable_body(ptr %t46) + store ptr %t47, ptr %t33 br label %ifend8 ifend8: - %t50 = load ptr, ptr %t35 - %t51 = icmp eq ptr %t50, null - %t52 = zext i1 %t51 to i32 - %t53 = icmp eq i32 %t52, 0 - %t54 = zext i1 %t53 to i32 - %t55 = icmp ne i32 %t54, 0 - br i1 %t55, label %then9, label %ifend11 + %t48 = load ptr, ptr %t33 + %t49 = icmp ne ptr %t48, null + %t50 = zext i1 %t49 to i32 + %t51 = icmp ne i32 %t50, 0 + br i1 %t51, label %then9, label %ifend11 then9: - %t56 = load i32, ptr @g_nloc - store i32 %t56, ptr %t57 - %t58 = call ptr @fn_nreg() - store ptr %t58, ptr %t59 - call void @fn_emit(ptr @.str1290) + %t52 = load i32, ptr @g_nloc + store i32 %t52, ptr %t53 + %t54 = call ptr @fn_nreg() + store ptr %t54, ptr %t55 + call void @fn_emit(ptr @.str1287) + %t56 = load ptr, ptr %t55 + call void @fn_emit(ptr %t56) + call void @fn_emit(ptr @.str1288) + %t57 = load ptr, ptr %t20 + call void @fn_emit(ptr %t57) + call void @fn_emit(ptr @.str1289) + %t58 = load ptr, ptr %t0 + %t59 = getelementptr inbounds %Cmp_Node, ptr %t58, i32 0, i32 1 %t60 = load ptr, ptr %t59 call void @fn_emit(ptr %t60) + call void @fn_emit(ptr @.str1290) + %t61 = load ptr, ptr %t0 + %t62 = getelementptr inbounds %Cmp_Node, ptr %t61, i32 0, i32 1 + %t63 = load ptr, ptr %t62 + call void @fn_emit(ptr %t63) call void @fn_emit(ptr @.str1291) - %t61 = load ptr, ptr %t22 - call void @fn_emit(ptr %t61) + %t64 = load ptr, ptr %t18 + %t65 = getelementptr inbounds %Cmp_Val, ptr %t64, i32 0, i32 0 + %t66 = load ptr, ptr %t65 + call void @fn_emit(ptr %t66) call void @fn_emit(ptr @.str1292) - %t62 = load ptr, ptr %t0 - %t63 = getelementptr inbounds %Cmp_Node, ptr %t62, i32 0, i32 1 - %t64 = load ptr, ptr %t63 - call void @fn_emit(ptr %t64) - call void @fn_emit(ptr @.str1293) - %t65 = load ptr, ptr %t0 - %t66 = getelementptr inbounds %Cmp_Node, ptr %t65, i32 0, i32 1 - %t67 = load ptr, ptr %t66 - call void @fn_emit(ptr %t67) + %t67 = call ptr @fn_emit_alloca(ptr @.str1293) + store ptr %t67, ptr %t68 call void @fn_emit(ptr @.str1294) - %t68 = load ptr, ptr %t20 - %t69 = getelementptr inbounds %Cmp_Val, ptr %t68, i32 0, i32 0 - %t70 = load ptr, ptr %t69 - call void @fn_emit(ptr %t70) + %t69 = load ptr, ptr %t55 + call void @fn_emit(ptr %t69) call void @fn_emit(ptr @.str1295) - %t71 = call ptr @fn_emit_alloca(ptr @.str1296) - store ptr %t71, ptr %t72 - call void @fn_emit(ptr @.str1297) - %t73 = load ptr, ptr %t59 - call void @fn_emit(ptr %t73) - call void @fn_emit(ptr @.str1298) - %t74 = load ptr, ptr %t72 - call void @fn_emit(ptr %t74) - call void @fn_emit(ptr @.str1299) + %t70 = load ptr, ptr %t68 + call void @fn_emit(ptr %t70) + call void @fn_emit(ptr @.str1296) + %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 %t68 %t75 = load ptr, ptr %t0 %t76 = getelementptr inbounds %Cmp_Node, ptr %t75, i32 0, i32 1 %t77 = load ptr, ptr %t76 - %t78 = load ptr, ptr %t72 - %t79 = load ptr, ptr %t0 - %t80 = getelementptr inbounds %Cmp_Node, ptr %t79, i32 0, i32 1 - %t81 = load ptr, ptr %t80 - call void @fn_loc_push(ptr %t77, ptr %t78, ptr %t81) - %t82 = load ptr, ptr %t35 - call void @fn_emit_block(ptr %t82) - %t83 = load i32, ptr %t57 - store i32 %t83, ptr @g_nloc + call void @fn_loc_push(ptr %t73, ptr %t74, ptr %t77) + %t78 = load ptr, ptr %t33 + call void @fn_emit_block(ptr %t78) + %t79 = load i32, ptr %t53 + store i32 %t79, ptr @g_nloc br label %ifend11 ifend11: br label %ifend5 else4: - store ptr @.str1300, ptr %t84 - %t85 = load ptr, ptr %t0 - %t86 = getelementptr inbounds %Cmp_Node, ptr %t85, i32 0, i32 1 - %t87 = load ptr, ptr %t86 - %t88 = call i32 @fn_is_model(ptr %t87) - %t89 = icmp ne i32 %t88, 0 - br i1 %t89, label %then12, label %ifend14 + store ptr @.str1297, ptr %t80 + %t81 = load ptr, ptr %t0 + %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 1 + %t83 = load ptr, ptr %t82 + %t84 = call i32 @fn_is_model(ptr %t83) + %t85 = icmp ne i32 %t84, 0 + br i1 %t85, label %then12, label %ifend14 then12: - store ptr @.str1301, ptr %t84 + store ptr @.str1298, ptr %t80 br label %ifend14 ifend14: - call void @fn_emit(ptr @.str1302) - %t90 = load ptr, ptr %t1 + call void @fn_emit(ptr @.str1299) + %t86 = load ptr, ptr %t1 + call void @fn_emit(ptr %t86) + call void @fn_emit(ptr @.str1300) + %t87 = load ptr, ptr %t80 + call void @fn_emit(ptr %t87) + %t88 = load ptr, ptr %t0 + %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1 + %t90 = load ptr, ptr %t89 call void @fn_emit(ptr %t90) - call void @fn_emit(ptr @.str1303) - %t91 = load ptr, ptr %t84 - call void @fn_emit(ptr %t91) - %t92 = load ptr, ptr %t0 - %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 1 - %t94 = load ptr, ptr %t93 - call void @fn_emit(ptr %t94) - call void @fn_emit(ptr @.str1304) + call void @fn_emit(ptr @.str1301) br label %ifend5 ifend5: br label %ret @@ -18511,7 +18467,7 @@ entry: call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself - store ptr @.str1305, ptr @g_ret_ty + store ptr @.str1302, ptr @g_ret_ty %t1 = call ptr @fn_buf_new() store ptr %t1, ptr %t2 %t3 = call ptr @fn_buf_new() @@ -18530,25 +18486,25 @@ entry: %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str1306) + call void @fn_emit(ptr @.str1303) br label %ifend2 ifend2: - call void @fn_emit(ptr @.str1307) + call void @fn_emit(ptr @.str1304) %t14 = load ptr, ptr %t5 store ptr %t14, ptr @g_code - call void @fn_emit(ptr @.str1308) + call void @fn_emit(ptr @.str1305) %t15 = load ptr, ptr %t0 %t16 = getelementptr inbounds %Cmp_Node, ptr %t15, i32 0, i32 1 %t17 = load ptr, ptr %t16 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str1309) + call void @fn_emit(ptr @.str1306) %t18 = load ptr, ptr @g_falloc %t19 = call ptr @fn_buf_str(ptr %t18) call void @fn_emit(ptr %t19) %t20 = load ptr, ptr %t2 %t21 = call ptr @fn_buf_str(ptr %t20) call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str1310) + call void @fn_emit(ptr @.str1307) br label %ret ret: ret void @@ -18611,43 +18567,43 @@ then5: %t33 = load ptr, ptr %t15 %t34 = getelementptr inbounds %Cmp_Node, ptr %t33, i32 0, i32 1 %t35 = load ptr, ptr %t34 - %t36 = call ptr @fn_sconcat(ptr @.str1311, ptr %t35) + %t36 = call ptr @fn_sconcat(ptr @.str1308, ptr %t35) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 - %t40 = call ptr @fn_sconcat(ptr %t39, ptr @.str1313) - %t41 = call ptr @fn_sconcat(ptr @.str1312, ptr %t40) + %t40 = call ptr @fn_sconcat(ptr %t39, ptr @.str1310) + %t41 = call ptr @fn_sconcat(ptr @.str1309, ptr %t40) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 - %t44 = call ptr @fn_lbl(ptr @.str1314) + %t44 = call ptr @fn_lbl(ptr @.str1311) store ptr %t44, ptr %t45 - %t46 = call ptr @fn_lbl(ptr @.str1315) + %t46 = call ptr @fn_lbl(ptr @.str1312) store ptr %t46, ptr %t47 - call void @fn_emit(ptr @.str1316) + call void @fn_emit(ptr @.str1313) %t48 = load ptr, ptr %t43 call void @fn_emit(ptr %t48) - call void @fn_emit(ptr @.str1317) + call void @fn_emit(ptr @.str1314) %t49 = load ptr, ptr %t45 call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str1318) + call void @fn_emit(ptr @.str1315) %t50 = load ptr, ptr %t47 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str1319) + call void @fn_emit(ptr @.str1316) %t51 = load ptr, ptr %t45 call void @fn_emit(ptr %t51) - call void @fn_emit(ptr @.str1320) + call void @fn_emit(ptr @.str1317) %t52 = load ptr, ptr %t15 %t53 = getelementptr inbounds %Cmp_Node, ptr %t52, i32 0, i32 1 %t54 = load ptr, ptr %t53 call void @fn_emit(ptr %t54) - call void @fn_emit(ptr @.str1321) - call void @fn_emit(ptr @.str1322) + call void @fn_emit(ptr @.str1318) + call void @fn_emit(ptr @.str1319) %t55 = load ptr, ptr %t47 call void @fn_emit(ptr %t55) - call void @fn_emit(ptr @.str1323) + call void @fn_emit(ptr @.str1320) %t56 = load ptr, ptr %t47 call void @fn_emit(ptr %t56) - call void @fn_emit(ptr @.str1324) + call void @fn_emit(ptr @.str1321) br label %ifend7 ifend7: %t57 = load i32, ptr %t1 @@ -18697,7 +18653,7 @@ wbody1: call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself - store ptr @.str1325, ptr @g_ret_ty + store ptr @.str1322, ptr @g_ret_ty %t20 = call ptr @fn_buf_new() store ptr %t20, ptr %t21 %t22 = call ptr @fn_buf_new() @@ -18707,7 +18663,7 @@ wbody1: %t25 = load ptr, ptr %t21 store ptr %t25, ptr @g_code %t26 = load ptr, ptr %t19 - call void @fn_emit_bind_props(ptr %t26, ptr @.str1326) + call void @fn_emit_bind_props(ptr %t26, ptr @.str1323) %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 4 %t29 = load ptr, ptr %t28 @@ -18718,25 +18674,25 @@ wbody1: %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then3, label %ifend5 then3: - call void @fn_emit(ptr @.str1327) + call void @fn_emit(ptr @.str1324) br label %ifend5 ifend5: - call void @fn_emit(ptr @.str1328) + call void @fn_emit(ptr @.str1325) %t34 = load ptr, ptr %t24 store ptr %t34, ptr @g_code - call void @fn_emit(ptr @.str1329) + call void @fn_emit(ptr @.str1326) %t35 = load ptr, ptr %t14 %t36 = getelementptr inbounds %Cmp_Node, ptr %t35, i32 0, i32 1 %t37 = load ptr, ptr %t36 call void @fn_emit(ptr %t37) - call void @fn_emit(ptr @.str1330) + call void @fn_emit(ptr @.str1327) %t38 = load ptr, ptr @g_falloc %t39 = call ptr @fn_buf_str(ptr %t38) call void @fn_emit(ptr %t39) %t40 = load ptr, ptr %t21 %t41 = call ptr @fn_buf_str(ptr %t40) call void @fn_emit(ptr %t41) - call void @fn_emit(ptr @.str1331) + call void @fn_emit(ptr @.str1328) %t42 = load i32, ptr %t0 %t43 = add i32 %t42, 1 store i32 %t43, ptr %t0 @@ -18750,12 +18706,12 @@ ret: define void @fn_emit_game_main() { entry: %t0 = alloca i32 - %t34 = alloca ptr - %t39 = alloca ptr - %t47 = alloca ptr - %t52 = alloca ptr - %t59 = alloca ptr - %t69 = alloca ptr + %t32 = alloca ptr + %t37 = alloca ptr + %t43 = alloca ptr + %t48 = alloca ptr + %t55 = alloca ptr + %t63 = alloca ptr store i32 0, ptr %t0 br label %wcond0 wcond0: @@ -18796,101 +18752,93 @@ ifend5: br label %wcond0 wend2: call void @fn_emit_despawn_hooks() - call void @fn_emit(ptr @.str1332) - call void @fn_emit(ptr @.str1333) - call void @fn_emit(ptr @.str1334) - %t27 = call ptr @fn_find_fn(ptr @.str1335) - %t28 = icmp eq ptr %t27, null + call void @fn_emit(ptr @.str1329) + call void @fn_emit(ptr @.str1330) + call void @fn_emit(ptr @.str1331) + %t27 = call ptr @fn_find_fn(ptr @.str1332) + %t28 = icmp ne ptr %t27, null %t29 = zext i1 %t28 to i32 - %t30 = icmp eq i32 %t29, 0 - %t31 = zext i1 %t30 to i32 - %t32 = icmp ne i32 %t31, 0 - br i1 %t32, label %then6, label %ifend8 + %t30 = icmp ne i32 %t29, 0 + br i1 %t30, label %then6, label %ifend8 then6: - call void @fn_emit(ptr @.str1336) + call void @fn_emit(ptr @.str1333) br label %ifend8 ifend8: - call void @fn_emit_calls_for_phase(ptr @.str1337) - call void @fn_emit(ptr @.str1338) - call void @fn_emit(ptr @.str1339) - %t33 = call ptr @fn_emit_bind(ptr @.str1340) - store ptr %t33, ptr %t34 - %t35 = load ptr, ptr %t34 - %t36 = call ptr @fn_sconcat(ptr %t35, ptr @.str1342) - %t37 = call ptr @fn_sconcat(ptr @.str1341, ptr %t36) - %t38 = call ptr @fn_emit_bind(ptr %t37) - store ptr %t38, ptr %t39 - %t40 = call ptr @fn_find_fn(ptr @.str1343) - %t41 = icmp eq ptr %t40, null - %t42 = zext i1 %t41 to i32 - %t43 = icmp eq i32 %t42, 0 - %t44 = zext i1 %t43 to i32 - %t45 = icmp ne i32 %t44, 0 - br i1 %t45, label %then9, label %else10 + call void @fn_emit_calls_for_phase(ptr @.str1334) + call void @fn_emit(ptr @.str1335) + call void @fn_emit(ptr @.str1336) + %t31 = call ptr @fn_emit_bind(ptr @.str1337) + store ptr %t31, ptr %t32 + %t33 = load ptr, ptr %t32 + %t34 = call ptr @fn_sconcat(ptr %t33, ptr @.str1339) + %t35 = call ptr @fn_sconcat(ptr @.str1338, ptr %t34) + %t36 = call ptr @fn_emit_bind(ptr %t35) + store ptr %t36, ptr %t37 + %t38 = call ptr @fn_find_fn(ptr @.str1340) + %t39 = icmp ne ptr %t38, null + %t40 = zext i1 %t39 to i32 + %t41 = icmp ne i32 %t40, 0 + br i1 %t41, label %then9, label %else10 then9: - %t46 = call ptr @fn_emit_bind(ptr @.str1344) - store ptr %t46, ptr %t47 - %t48 = load ptr, ptr %t47 - %t49 = call ptr @fn_sconcat(ptr %t48, ptr @.str1346) - %t50 = call ptr @fn_sconcat(ptr @.str1345, ptr %t49) - %t51 = call ptr @fn_emit_bind(ptr %t50) - store ptr %t51, ptr %t52 - %t53 = load ptr, ptr %t39 - %t54 = load ptr, ptr %t52 - %t55 = call ptr @fn_sconcat(ptr @.str1348, ptr %t54) - %t56 = call ptr @fn_sconcat(ptr %t53, ptr %t55) - %t57 = call ptr @fn_sconcat(ptr @.str1347, ptr %t56) - %t58 = call ptr @fn_emit_bind(ptr %t57) - store ptr %t58, ptr %t59 - call void @fn_emit(ptr @.str1349) - %t60 = load ptr, ptr %t59 - call void @fn_emit(ptr %t60) - call void @fn_emit(ptr @.str1350) + %t42 = call ptr @fn_emit_bind(ptr @.str1341) + store ptr %t42, ptr %t43 + %t44 = load ptr, ptr %t43 + %t45 = call ptr @fn_sconcat(ptr %t44, ptr @.str1343) + %t46 = call ptr @fn_sconcat(ptr @.str1342, ptr %t45) + %t47 = call ptr @fn_emit_bind(ptr %t46) + store ptr %t47, ptr %t48 + %t49 = load ptr, ptr %t37 + %t50 = load ptr, ptr %t48 + %t51 = call ptr @fn_sconcat(ptr @.str1345, ptr %t50) + %t52 = call ptr @fn_sconcat(ptr %t49, ptr %t51) + %t53 = call ptr @fn_sconcat(ptr @.str1344, ptr %t52) + %t54 = call ptr @fn_emit_bind(ptr %t53) + store ptr %t54, ptr %t55 + call void @fn_emit(ptr @.str1346) + %t56 = load ptr, ptr %t55 + call void @fn_emit(ptr %t56) + call void @fn_emit(ptr @.str1347) br label %ifend11 else10: - call void @fn_emit(ptr @.str1351) - %t61 = load ptr, ptr %t39 - call void @fn_emit(ptr %t61) - call void @fn_emit(ptr @.str1352) + call void @fn_emit(ptr @.str1348) + %t57 = load ptr, ptr %t37 + call void @fn_emit(ptr %t57) + call void @fn_emit(ptr @.str1349) br label %ifend11 ifend11: - call void @fn_emit(ptr @.str1353) - %t62 = call ptr @fn_find_fn(ptr @.str1354) - %t63 = icmp eq ptr %t62, null - %t64 = zext i1 %t63 to i32 - %t65 = icmp eq i32 %t64, 0 - %t66 = zext i1 %t65 to i32 - %t67 = icmp ne i32 %t66, 0 - br i1 %t67, label %then12, label %ifend14 + call void @fn_emit(ptr @.str1350) + %t58 = call ptr @fn_find_fn(ptr @.str1351) + %t59 = icmp ne ptr %t58, null + %t60 = zext i1 %t59 to i32 + %t61 = icmp ne i32 %t60, 0 + br i1 %t61, label %then12, label %ifend14 then12: - %t68 = call ptr @fn_emit_bind(ptr @.str1355) - store ptr %t68, ptr %t69 - call void @fn_emit(ptr @.str1356) - %t70 = load ptr, ptr %t69 - call void @fn_emit(ptr %t70) - call void @fn_emit(ptr @.str1357) + %t62 = call ptr @fn_emit_bind(ptr @.str1352) + store ptr %t62, ptr %t63 + call void @fn_emit(ptr @.str1353) + %t64 = load ptr, ptr %t63 + call void @fn_emit(ptr %t64) + call void @fn_emit(ptr @.str1354) br label %ifend14 ifend14: + call void @fn_emit_calls_for_phase(ptr @.str1355) + call void @fn_emit_calls_for_phase(ptr @.str1356) + call void @fn_emit_calls_for_phase(ptr @.str1357) call void @fn_emit_calls_for_phase(ptr @.str1358) call void @fn_emit_calls_for_phase(ptr @.str1359) - call void @fn_emit_calls_for_phase(ptr @.str1360) - call void @fn_emit_calls_for_phase(ptr @.str1361) + call void @fn_emit(ptr @.str1360) + call void @fn_emit(ptr @.str1361) call void @fn_emit_calls_for_phase(ptr @.str1362) - call void @fn_emit(ptr @.str1363) - call void @fn_emit(ptr @.str1364) - call void @fn_emit_calls_for_phase(ptr @.str1365) - %t71 = call ptr @fn_find_fn(ptr @.str1366) - %t72 = icmp eq ptr %t71, null - %t73 = zext i1 %t72 to i32 - %t74 = icmp eq i32 %t73, 0 - %t75 = zext i1 %t74 to i32 - %t76 = icmp ne i32 %t75, 0 - br i1 %t76, label %then15, label %ifend17 + %t65 = call ptr @fn_find_fn(ptr @.str1363) + %t66 = icmp ne ptr %t65, null + %t67 = zext i1 %t66 to i32 + %t68 = icmp ne i32 %t67, 0 + br i1 %t68, label %then15, label %ifend17 then15: - call void @fn_emit(ptr @.str1367) + call void @fn_emit(ptr @.str1364) br label %ifend17 ifend17: - call void @fn_emit(ptr @.str1368) + call void @fn_emit(ptr @.str1365) br label %ret ret: ret void @@ -18917,8 +18865,8 @@ entry: %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_sconcat(ptr %t8, ptr @.str1370) - %t10 = call ptr @fn_sconcat(ptr @.str1369, ptr %t9) + %t9 = call ptr @fn_sconcat(ptr %t8, ptr @.str1367) + %t10 = call ptr @fn_sconcat(ptr @.str1366, ptr %t9) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load i32, ptr @g_nmach @@ -18972,7 +18920,7 @@ ifend2: %t46 = load i32, ptr @g_nmach %t47 = add i32 %t46, 1 store i32 %t47, ptr @g_nmach - %t48 = call ptr @fn_lbl(ptr @.str1371) + %t48 = call ptr @fn_lbl(ptr @.str1368) store ptr %t48, ptr %t49 store i32 0, ptr %t50 br label %wcond5 @@ -19006,28 +18954,28 @@ wbody6: %t75 = load ptr, ptr %t73 %t76 = getelementptr inbounds %Cmp_Val, ptr %t75, i32 0, i32 0 %t77 = load ptr, ptr %t76 - %t78 = call ptr @fn_sconcat(ptr @.str1373, ptr %t77) + %t78 = call ptr @fn_sconcat(ptr @.str1370, ptr %t77) %t79 = call ptr @fn_sconcat(ptr %t74, ptr %t78) - %t80 = call ptr @fn_sconcat(ptr @.str1372, ptr %t79) + %t80 = call ptr @fn_sconcat(ptr @.str1369, ptr %t79) %t81 = call ptr @fn_emit_bind(ptr %t80) store ptr %t81, ptr %t82 - %t83 = call ptr @fn_lbl(ptr @.str1374) + %t83 = call ptr @fn_lbl(ptr @.str1371) store ptr %t83, ptr %t84 - %t85 = call ptr @fn_lbl(ptr @.str1375) + %t85 = call ptr @fn_lbl(ptr @.str1372) store ptr %t85, ptr %t86 - call void @fn_emit(ptr @.str1376) + call void @fn_emit(ptr @.str1373) %t87 = load ptr, ptr %t82 call void @fn_emit(ptr %t87) - call void @fn_emit(ptr @.str1377) + call void @fn_emit(ptr @.str1374) %t88 = load ptr, ptr %t84 call void @fn_emit(ptr %t88) - call void @fn_emit(ptr @.str1378) + call void @fn_emit(ptr @.str1375) %t89 = load ptr, ptr %t86 call void @fn_emit(ptr %t89) - call void @fn_emit(ptr @.str1379) + call void @fn_emit(ptr @.str1376) %t90 = load ptr, ptr %t84 call void @fn_emit(ptr %t90) - call void @fn_emit(ptr @.str1380) + call void @fn_emit(ptr @.str1377) store i32 0, ptr @g_g_term %t91 = load ptr, ptr %t68 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 4 @@ -19039,15 +18987,15 @@ wbody6: %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then8, label %ifend10 then8: - call void @fn_emit(ptr @.str1381) + call void @fn_emit(ptr @.str1378) %t98 = load ptr, ptr %t49 call void @fn_emit(ptr %t98) - call void @fn_emit(ptr @.str1382) + call void @fn_emit(ptr @.str1379) br label %ifend10 ifend10: %t99 = load ptr, ptr %t86 call void @fn_emit(ptr %t99) - call void @fn_emit(ptr @.str1383) + call void @fn_emit(ptr @.str1380) store i32 0, ptr @g_g_term %t100 = load i32, ptr %t50 %t101 = add i32 %t100, 1 @@ -19060,15 +19008,15 @@ wend7: %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then11, label %ifend13 then11: - call void @fn_emit(ptr @.str1384) + call void @fn_emit(ptr @.str1381) %t106 = load ptr, ptr %t49 call void @fn_emit(ptr %t106) - call void @fn_emit(ptr @.str1385) + call void @fn_emit(ptr @.str1382) br label %ifend13 ifend13: %t107 = load ptr, ptr %t49 call void @fn_emit(ptr %t107) - call void @fn_emit(ptr @.str1386) + call void @fn_emit(ptr @.str1383) store i32 0, ptr @g_g_term %t108 = load i32, ptr @g_nmach %t109 = sub i32 %t108, 1 @@ -19093,7 +19041,7 @@ entry: %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: - call void @fn_perr(ptr @.str1387) + call void @fn_perr(ptr @.str1384) br label %ifend2 ifend2: %t5 = load ptr, ptr @g_mach_stk @@ -19161,7 +19109,7 @@ then9: %t53 = load ptr, ptr %t0 %t54 = getelementptr inbounds %Cmp_Node, ptr %t53, i32 0, i32 1 %t55 = load ptr, ptr %t54 - %t56 = call ptr @fn_sconcat(ptr @.str1388, ptr %t55) + %t56 = call ptr @fn_sconcat(ptr @.str1385, ptr %t55) call void @fn_perr(ptr %t56) br label %ifend11 ifend11: @@ -19175,17 +19123,17 @@ ifend11: %t64 = load ptr, ptr %t63 %t65 = call ptr @fn_emit_expr(ptr %t64) store ptr %t65, ptr %t66 - call void @fn_emit(ptr @.str1389) + call void @fn_emit(ptr @.str1386) %t67 = load ptr, ptr %t61 %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 @.str1390) + call void @fn_emit(ptr @.str1387) %t70 = load ptr, ptr %t66 %t71 = getelementptr inbounds %Cmp_Val, ptr %t70, i32 0, i32 0 %t72 = load ptr, ptr %t71 call void @fn_emit(ptr %t72) - call void @fn_emit(ptr @.str1391) + call void @fn_emit(ptr @.str1388) br label %ret ret: ret void @@ -19202,24 +19150,24 @@ entry: store ptr %arg_bytes, ptr %t2 %t3 = load i32, ptr @g_g_iok %t4 = call ptr @fn_itoa(i32 %t3) - %t5 = call ptr @fn_sconcat(ptr @.str1392, ptr %t4) + %t5 = call ptr @fn_sconcat(ptr @.str1389, ptr %t4) store ptr %t5, ptr %t6 %t7 = load i32, ptr @g_g_iok %t8 = add i32 %t7, 1 store i32 %t8, ptr @g_g_iok - call void @fn_emit(ptr @.str1393) + call void @fn_emit(ptr @.str1390) %t9 = load ptr, ptr %t6 call void @fn_emit(ptr %t9) - call void @fn_emit(ptr @.str1394) + call void @fn_emit(ptr @.str1391) %t10 = load ptr, ptr %t0 call void @fn_emit(ptr %t10) - call void @fn_emit(ptr @.str1395) + call void @fn_emit(ptr @.str1392) %t11 = load ptr, ptr %t1 call void @fn_emit(ptr %t11) - call void @fn_emit(ptr @.str1396) + call void @fn_emit(ptr @.str1393) %t12 = load ptr, ptr %t2 call void @fn_emit(ptr %t12) - call void @fn_emit(ptr @.str1397) + call void @fn_emit(ptr @.str1394) br label %ret ret: ret void @@ -19238,19 +19186,19 @@ entry: %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 @.str1398, ptr @.str1399) + call void @fn_emit_io(ptr %t3, ptr @.str1395, ptr @.str1396) %t4 = load ptr, ptr %t0 - call void @fn_emit_io(ptr %t4, ptr @.str1400, ptr @.str1401) - call void @fn_emit(ptr @.str1402) + call void @fn_emit_io(ptr %t4, ptr @.str1397, ptr @.str1398) + call void @fn_emit(ptr @.str1399) %t5 = load ptr, ptr %t2 call void @fn_emit(ptr %t5) - call void @fn_emit(ptr @.str1403) + call void @fn_emit(ptr @.str1400) %t6 = load ptr, ptr %t0 - call void @fn_emit_io(ptr %t6, ptr @.str1404, ptr @.str1405) + call void @fn_emit_io(ptr %t6, ptr @.str1401, ptr @.str1402) %t7 = load ptr, ptr %t0 - call void @fn_emit_io(ptr %t7, ptr @.str1406, ptr @.str1407) + call void @fn_emit_io(ptr %t7, ptr @.str1403, ptr @.str1404) %t8 = load ptr, ptr %t0 - call void @fn_emit_io(ptr %t8, ptr @.str1408, ptr @.str1409) + call void @fn_emit_io(ptr %t8, ptr @.str1405, ptr @.str1406) store i32 0, ptr %t9 br label %wcond0 wcond0: @@ -19285,8 +19233,8 @@ then3: %t34 = load ptr, ptr %t33 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 1 %t36 = load ptr, ptr %t35 - %t37 = call ptr @fn_sconcat(ptr @.str1410, ptr %t36) - call void @fn_emit_io(ptr %t28, ptr %t37, ptr @.str1411) + %t37 = call ptr @fn_sconcat(ptr @.str1407, ptr %t36) + call void @fn_emit_io(ptr %t28, ptr %t37, ptr @.str1408) br label %ifend5 ifend5: %t38 = load i32, ptr %t9 @@ -19331,26 +19279,26 @@ then9: store ptr %t66, ptr %t67 %t68 = load i32, ptr %t40 %t69 = call ptr @fn_itoa(i32 %t68) - %t70 = call ptr @fn_sconcat(ptr @.str1412, ptr %t69) + %t70 = call ptr @fn_sconcat(ptr @.str1409, ptr %t69) store ptr %t70, ptr %t71 - call void @fn_emit(ptr @.str1413) + call void @fn_emit(ptr @.str1410) %t72 = load ptr, ptr %t71 call void @fn_emit(ptr %t72) - call void @fn_emit(ptr @.str1414) + call void @fn_emit(ptr @.str1411) %t73 = load ptr, ptr %t67 call void @fn_emit(ptr %t73) - call void @fn_emit(ptr @.str1415) + call void @fn_emit(ptr @.str1412) %t74 = load ptr, ptr %t2 call void @fn_emit(ptr %t74) - call void @fn_emit(ptr @.str1416) + call void @fn_emit(ptr @.str1413) %t75 = load ptr, ptr %t0 %t76 = load ptr, ptr %t67 - %t77 = call ptr @fn_sconcat(ptr @.str1417, ptr %t76) + %t77 = call ptr @fn_sconcat(ptr @.str1414, ptr %t76) %t78 = load ptr, ptr %t71 call void @fn_emit_io(ptr %t75, ptr %t77, ptr %t78) %t79 = load ptr, ptr %t0 %t80 = load ptr, ptr %t67 - %t81 = call ptr @fn_sconcat(ptr @.str1418, ptr %t80) + %t81 = call ptr @fn_sconcat(ptr @.str1415, ptr %t80) %t82 = load ptr, ptr %t2 call void @fn_emit_io(ptr %t79, ptr %t81, ptr %t82) %t83 = load i32, ptr %t40 @@ -19370,49 +19318,45 @@ ret: define void @fn_emit_snapshot() { entry: - %t5 = alloca i32 - %t11 = alloca i32 - call void @fn_emith(ptr @.str1419) - call void @fn_emith(ptr @.str1420) - call void @fn_emith(ptr @.str1421) - %t0 = call ptr @fn_find_fn(ptr @.str1422) - %t1 = icmp eq ptr %t0, null + %t3 = alloca i32 + %t7 = alloca i32 + call void @fn_emith(ptr @.str1416) + call void @fn_emith(ptr @.str1417) + call void @fn_emith(ptr @.str1418) + %t0 = call ptr @fn_find_fn(ptr @.str1419) + %t1 = icmp ne ptr %t0, null %t2 = zext i1 %t1 to i32 - %t3 = icmp eq i32 %t2, 0 - %t4 = zext i1 %t3 to i32 - store i32 %t4, ptr %t5 - %t6 = call ptr @fn_find_fn(ptr @.str1423) - %t7 = icmp eq ptr %t6, null - %t8 = zext i1 %t7 to i32 - %t9 = icmp eq i32 %t8, 0 - %t10 = zext i1 %t9 to i32 - store i32 %t10, ptr %t11 + store i32 %t2, ptr %t3 + %t4 = call ptr @fn_find_fn(ptr @.str1420) + %t5 = icmp ne ptr %t4, null + %t6 = zext i1 %t5 to i32 + store i32 %t6, ptr %t7 + call void @fn_emit(ptr @.str1421) + call void @fn_emit(ptr @.str1422) + call void @fn_emit(ptr @.str1423) call void @fn_emit(ptr @.str1424) - call void @fn_emit(ptr @.str1425) - call void @fn_emit(ptr @.str1426) - call void @fn_emit(ptr @.str1427) - call void @fn_emit_snapshot_blocks(ptr @.str1428) - %t12 = load i32, ptr %t5 - %t13 = icmp ne i32 %t12, 0 - br i1 %t13, label %then0, label %ifend2 + call void @fn_emit_snapshot_blocks(ptr @.str1425) + %t8 = load i32, ptr %t3 + %t9 = icmp ne i32 %t8, 0 + br i1 %t9, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str1429) + call void @fn_emit(ptr @.str1426) br label %ifend2 ifend2: + call void @fn_emit(ptr @.str1427) + call void @fn_emit(ptr @.str1428) + call void @fn_emit(ptr @.str1429) call void @fn_emit(ptr @.str1430) call void @fn_emit(ptr @.str1431) - call void @fn_emit(ptr @.str1432) - call void @fn_emit(ptr @.str1433) - call void @fn_emit(ptr @.str1434) - call void @fn_emit_snapshot_blocks(ptr @.str1435) - %t14 = load i32, ptr %t11 - %t15 = icmp ne i32 %t14, 0 - br i1 %t15, label %then3, label %ifend5 + call void @fn_emit_snapshot_blocks(ptr @.str1432) + %t10 = load i32, ptr %t7 + %t11 = icmp ne i32 %t10, 0 + br i1 %t11, label %then3, label %ifend5 then3: - call void @fn_emit(ptr @.str1436) + call void @fn_emit(ptr @.str1433) br label %ifend5 ifend5: - call void @fn_emit(ptr @.str1437) + call void @fn_emit(ptr @.str1434) br label %ret ret: ret void @@ -19429,7 +19373,7 @@ entry: %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 - %t6 = call i32 @fn_streq(ptr %t5, ptr @.str1438) + %t6 = call i32 @fn_streq(ptr %t5, ptr @.str1435) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: @@ -19437,7 +19381,7 @@ then0: br label %ret ifend2: %t8 = load ptr, ptr %t4 - %t9 = call i32 @fn_streq(ptr %t8, ptr @.str1439) + %t9 = call i32 @fn_streq(ptr %t8, ptr @.str1436) %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: @@ -19445,7 +19389,7 @@ then3: br label %ret ifend5: %t11 = load ptr, ptr %t4 - %t12 = call i32 @fn_streq(ptr %t11, ptr @.str1440) + %t12 = call i32 @fn_streq(ptr %t11, ptr @.str1437) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then6, label %ifend8 then6: @@ -19453,7 +19397,7 @@ then6: br label %ret ifend8: %t14 = load ptr, ptr %t4 - %t15 = call i32 @fn_streq(ptr %t14, ptr @.str1441) + %t15 = call i32 @fn_streq(ptr %t14, ptr @.str1438) %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then9, label %ifend11 then9: @@ -19461,7 +19405,7 @@ then9: br label %ret ifend11: %t17 = load ptr, ptr %t4 - %t18 = call i32 @fn_streq(ptr %t17, ptr @.str1442) + %t18 = call i32 @fn_streq(ptr %t17, ptr @.str1439) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then12, label %ifend14 then12: @@ -19469,7 +19413,7 @@ then12: br label %ret ifend14: %t20 = load ptr, ptr %t4 - %t21 = call i32 @fn_streq(ptr %t20, ptr @.str1443) + %t21 = call i32 @fn_streq(ptr %t20, ptr @.str1440) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then15, label %ifend17 then15: @@ -19477,7 +19421,7 @@ then15: br label %ret ifend17: %t23 = load ptr, ptr %t4 - %t24 = call i32 @fn_streq(ptr %t23, ptr @.str1444) + %t24 = call i32 @fn_streq(ptr %t23, ptr @.str1441) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then18, label %ifend20 then18: @@ -19869,7 +19813,7 @@ entry: %t9 = alloca i32 %t17 = alloca i32 %t79 = alloca ptr - %t86 = alloca i32 + %t84 = alloca i32 store ptr %arg_nm, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = load ptr, ptr %t0 @@ -19975,56 +19919,54 @@ wbody12: %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 @.str1445) + %t78 = call ptr @fn_ui_prop(ptr %t77, ptr @.str1442) store ptr %t78, ptr %t79 %t80 = load ptr, ptr %t79 - %t81 = icmp eq ptr %t80, null + %t81 = icmp ne ptr %t80, null %t82 = zext i1 %t81 to i32 - %t83 = icmp eq i32 %t82, 0 - %t84 = zext i1 %t83 to i32 - %t85 = icmp ne i32 %t84, 0 - br i1 %t85, label %then14, label %ifend16 + %t83 = icmp ne i32 %t82, 0 + br i1 %t83, label %then14, label %ifend16 then14: - %t87 = load ptr, ptr %t79 - %t88 = getelementptr inbounds %Cmp_Node, ptr %t87, i32 0, i32 0 - %t89 = load i32, ptr %t88 - %t90 = icmp eq i32 %t89, 33 + %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 - %t92 = icmp ne i32 %t91, 0 - %t93 = zext i1 %t92 to i32 - store i32 %t93, ptr %t86 - br i1 %t92, label %sc17, label %scend18 + store i32 %t91, ptr %t84 + br i1 %t90, label %sc17, label %scend18 sc17: - %t94 = load ptr, ptr %t79 - %t95 = getelementptr inbounds %Cmp_Node, ptr %t94, i32 0, i32 1 - %t96 = load ptr, ptr %t95 - %t97 = load ptr, ptr %t6 - %t98 = call i32 @fn_streq(ptr %t96, ptr %t97) - %t99 = icmp ne i32 %t98, 0 - %t100 = zext i1 %t99 to i32 - store i32 %t100, ptr %t86 + %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_streq(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: - %t101 = load i32, ptr %t86 - %t102 = icmp ne i32 %t101, 0 - br i1 %t102, label %then19, label %ifend21 + %t99 = load i32, ptr %t84 + %t100 = icmp ne i32 %t99, 0 + br i1 %t100, label %then19, label %ifend21 then19: - %t103 = load i32, ptr %t9 - store i32 %t103, ptr %retval + %t101 = load i32, ptr %t9 + store i32 %t101, ptr %retval br label %ret ifend21: br label %ifend16 ifend16: - %t104 = load i32, ptr %t9 - %t105 = add i32 %t104, 1 - store i32 %t105, ptr %t9 + %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: - %t106 = load i32, ptr %retval - ret i32 %t106 + %t104 = load i32, ptr %retval + ret i32 %t104 } define i32 @fn_is_ui_ident(ptr %arg_nm) { @@ -20105,18 +20047,18 @@ entry: store i32 %arg_idx, ptr %t0 store i32 %arg_key, ptr %t1 store ptr %arg_val, ptr %t2 - call void @fn_emit(ptr @.str1446) + call void @fn_emit(ptr @.str1443) %t3 = load i32, ptr %t0 %t4 = call ptr @fn_itoa(i32 %t3) call void @fn_emit(ptr %t4) - call void @fn_emit(ptr @.str1447) + call void @fn_emit(ptr @.str1444) %t5 = load i32, ptr %t1 %t6 = call ptr @fn_itoa(i32 %t5) call void @fn_emit(ptr %t6) - call void @fn_emit(ptr @.str1448) + call void @fn_emit(ptr @.str1445) %t7 = load ptr, ptr %t2 call void @fn_emit(ptr %t7) - call void @fn_emit(ptr @.str1449) + call void @fn_emit(ptr @.str1446) br label %ret ret: ret void @@ -20128,7 +20070,7 @@ entry: %t0 = alloca ptr store ptr %arg_k, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call i32 @fn_streq(ptr %t1, ptr @.str1450) + %t2 = call i32 @fn_streq(ptr %t1, ptr @.str1447) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: @@ -20136,7 +20078,7 @@ then0: br label %ret ifend2: %t4 = load ptr, ptr %t0 - %t5 = call i32 @fn_streq(ptr %t4, ptr @.str1451) + %t5 = call i32 @fn_streq(ptr %t4, ptr @.str1448) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: @@ -20144,7 +20086,7 @@ then3: br label %ret ifend5: %t7 = load ptr, ptr %t0 - %t8 = call i32 @fn_streq(ptr %t7, ptr @.str1452) + %t8 = call i32 @fn_streq(ptr %t7, ptr @.str1449) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: @@ -20152,7 +20094,7 @@ then6: br label %ret ifend8: %t10 = load ptr, ptr %t0 - %t11 = call i32 @fn_streq(ptr %t10, ptr @.str1453) + %t11 = call i32 @fn_streq(ptr %t10, ptr @.str1450) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: @@ -20160,7 +20102,7 @@ then9: br label %ret ifend11: %t13 = load ptr, ptr %t0 - %t14 = call i32 @fn_streq(ptr %t13, ptr @.str1454) + %t14 = call i32 @fn_streq(ptr %t13, ptr @.str1451) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: @@ -20168,7 +20110,7 @@ then12: br label %ret ifend14: %t16 = load ptr, ptr %t0 - %t17 = call i32 @fn_streq(ptr %t16, ptr @.str1455) + %t17 = call i32 @fn_streq(ptr %t16, ptr @.str1452) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: @@ -20176,7 +20118,7 @@ then15: br label %ret ifend17: %t19 = load ptr, ptr %t0 - %t20 = call i32 @fn_streq(ptr %t19, ptr @.str1456) + %t20 = call i32 @fn_streq(ptr %t19, ptr @.str1453) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: @@ -20184,7 +20126,7 @@ then18: br label %ret ifend20: %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_streq(ptr %t22, ptr @.str1457) + %t23 = call i32 @fn_streq(ptr %t22, ptr @.str1454) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: @@ -20192,7 +20134,7 @@ then21: br label %ret ifend23: %t25 = load ptr, ptr %t0 - %t26 = call i32 @fn_streq(ptr %t25, ptr @.str1458) + %t26 = call i32 @fn_streq(ptr %t25, ptr @.str1455) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then24, label %ifend26 then24: @@ -20200,7 +20142,7 @@ then24: br label %ret ifend26: %t28 = load ptr, ptr %t0 - %t29 = call i32 @fn_streq(ptr %t28, ptr @.str1459) + %t29 = call i32 @fn_streq(ptr %t28, ptr @.str1456) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then27, label %ifend29 then27: @@ -20208,7 +20150,7 @@ then27: br label %ret ifend29: %t31 = load ptr, ptr %t0 - %t32 = call i32 @fn_streq(ptr %t31, ptr @.str1460) + %t32 = call i32 @fn_streq(ptr %t31, ptr @.str1457) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then30, label %ifend32 then30: @@ -20216,7 +20158,7 @@ then30: br label %ret ifend32: %t34 = load ptr, ptr %t0 - %t35 = call i32 @fn_streq(ptr %t34, ptr @.str1461) + %t35 = call i32 @fn_streq(ptr %t34, ptr @.str1458) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then33, label %ifend35 then33: @@ -20224,7 +20166,7 @@ then33: br label %ret ifend35: %t37 = load ptr, ptr %t0 - %t38 = call i32 @fn_streq(ptr %t37, ptr @.str1462) + %t38 = call i32 @fn_streq(ptr %t37, ptr @.str1459) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then36, label %ifend38 then36: @@ -20232,7 +20174,7 @@ then36: br label %ret ifend38: %t40 = load ptr, ptr %t0 - %t41 = call i32 @fn_streq(ptr %t40, ptr @.str1463) + %t41 = call i32 @fn_streq(ptr %t40, ptr @.str1460) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then39, label %ifend41 then39: @@ -20281,13 +20223,13 @@ entry: store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t1 store ptr %t5, ptr @g_code - call void @fn_emit(ptr @.str1464) + call void @fn_emit(ptr @.str1461) %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 @.str1465) + call void @fn_emit(ptr @.str1462) store i32 0, ptr %t10 br label %wcond0 wcond0: @@ -20330,7 +20272,7 @@ wbody1: br i1 %t42, label %then3, label %ifend5 then3: %t43 = load i32, ptr %t10 - call void @fn_ll_ui_set(i32 %t43, i32 17, ptr @.str1466) + call void @fn_ll_ui_set(i32 %t43, i32 17, ptr @.str1463) br label %ifend5 ifend5: store i32 0, ptr %t44 @@ -20369,7 +20311,7 @@ wbody7: %t73 = load ptr, ptr %t72 store ptr %t73, ptr %t74 %t75 = load ptr, ptr %t70 - %t76 = call i32 @fn_streq(ptr %t75, ptr @.str1467) + %t76 = call i32 @fn_streq(ptr %t75, ptr @.str1464) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then9, label %ifend11 then9: @@ -20379,34 +20321,34 @@ then9: br label %wcond6 ifend11: %t80 = load ptr, ptr %t70 - %t81 = call i32 @fn_streq(ptr %t80, ptr @.str1468) + %t81 = call i32 @fn_streq(ptr %t80, ptr @.str1465) %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 @.str1469) + call void @fn_emit(ptr @.str1466) %t86 = load i32, ptr %t10 %t87 = call ptr @fn_itoa(i32 %t86) call void @fn_emit(ptr %t87) - call void @fn_emit(ptr @.str1470) + call void @fn_emit(ptr @.str1467) %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 @.str1471) + call void @fn_emit(ptr @.str1468) br label %ifend14 else13: %t92 = load ptr, ptr %t70 - %t93 = call i32 @fn_streq(ptr %t92, ptr @.str1472) + %t93 = call i32 @fn_streq(ptr %t92, ptr @.str1469) %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_streq(ptr %t96, ptr @.str1473) + %t97 = call i32 @fn_streq(ptr %t96, ptr @.str1470) %t98 = icmp ne i32 %t97, 0 %t99 = zext i1 %t98 to i32 store i32 %t99, ptr %t91 @@ -20422,12 +20364,12 @@ then17: %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_sconcat(ptr %t107, ptr @.str1475) - %t109 = call ptr @fn_sconcat(ptr @.str1474, ptr %t108) + %t108 = call ptr @fn_sconcat(ptr %t107, ptr @.str1472) + %t109 = call ptr @fn_sconcat(ptr @.str1471, ptr %t108) %t110 = call ptr @fn_emit_bind(ptr %t109) store ptr %t110, ptr %t111 %t112 = load ptr, ptr %t70 - %t113 = call i32 @fn_streq(ptr %t112, ptr @.str1476) + %t113 = call i32 @fn_streq(ptr %t112, ptr @.str1473) %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then20, label %else21 then20: @@ -20444,7 +20386,7 @@ ifend22: br label %ifend19 else18: %t119 = load ptr, ptr %t70 - %t120 = call i32 @fn_streq(ptr %t119, ptr @.str1477) + %t120 = call i32 @fn_streq(ptr %t119, ptr @.str1474) %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %then23, label %else24 then23: @@ -20460,7 +20402,7 @@ then26: %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_streq(ptr %t131, ptr @.str1478) + %t132 = call i32 @fn_streq(ptr %t131, ptr @.str1475) %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then29, label %ifend31 then29: @@ -20470,7 +20412,7 @@ 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_streq(ptr %t136, ptr @.str1479) + %t137 = call i32 @fn_streq(ptr %t136, ptr @.str1476) %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then32, label %ifend34 then32: @@ -20534,7 +20476,7 @@ scend39: br i1 %t176, label %then40, label %ifend42 then40: %t177 = load i32, ptr %t10 - call void @fn_ll_ui_set(i32 %t177, i32 6, ptr @.str1480) + call void @fn_ll_ui_set(i32 %t177, i32 6, ptr @.str1477) br label %ifend42 ifend42: br label %ifend37 @@ -20557,14 +20499,14 @@ wend8: wend2: %t182 = load ptr, ptr %t4 store ptr %t182, ptr @g_code - call void @fn_emit(ptr @.str1481) + call void @fn_emit(ptr @.str1478) %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 @.str1482) + call void @fn_emit(ptr @.str1479) br label %ret ret: ret void @@ -20595,7 +20537,7 @@ wbody1: %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then3, label %ifend5 then3: - call void @fn_emit(ptr @.str1483) + call void @fn_emit(ptr @.str1480) br label %ifend5 ifend5: %t15 = load ptr, ptr %t0 @@ -20610,7 +20552,7 @@ ifend5: %t24 = load ptr, ptr %t23 %t25 = call ptr @fn_llty(ptr %t24) call void @fn_emit(ptr %t25) - call void @fn_emit(ptr @.str1484) + call void @fn_emit(ptr @.str1481) %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 7 %t28 = load ptr, ptr %t27 @@ -20664,19 +20606,19 @@ entry: %t11 = call ptr @fn_llty(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 - %t14 = call i32 @fn_streq(ptr %t13, ptr @.str1485) + %t14 = call i32 @fn_streq(ptr %t13, ptr @.str1482) %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 @.str1486) + call void @fn_buf_puts(ptr %t18, ptr @.str1483) %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 @.str1487) + call void @fn_buf_puts(ptr %t21, ptr @.str1484) br label %ifend2 ifend2: store i32 0, ptr %t22 @@ -20708,21 +20650,21 @@ wbody4: %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 @.str1488) + call void @fn_emit(ptr @.str1485) %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 @.str1489) + call void @fn_emit(ptr @.str1486) %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 @.str1490) + call void @fn_emit(ptr @.str1487) %t54 = load ptr, ptr %t46 call void @fn_emit(ptr %t54) - call void @fn_emit(ptr @.str1491) + call void @fn_emit(ptr @.str1488) %t55 = load ptr, ptr %t40 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 1 %t57 = load ptr, ptr %t56 @@ -20746,53 +20688,53 @@ wend5: %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then6, label %ifend8 then6: - call void @fn_emit(ptr @.str1492) + call void @fn_emit(ptr @.str1489) br label %ifend8 ifend8: - call void @fn_emit(ptr @.str1493) + call void @fn_emit(ptr @.str1490) %t71 = load ptr, ptr %t12 - %t72 = call i32 @fn_streq(ptr %t71, ptr @.str1494) + %t72 = call i32 @fn_streq(ptr %t71, ptr @.str1491) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then9, label %else10 then9: - call void @fn_emit(ptr @.str1495) + call void @fn_emit(ptr @.str1492) br label %ifend11 else10: %t74 = load ptr, ptr %t12 - %t75 = call ptr @fn_sconcat(ptr %t74, ptr @.str1497) - %t76 = call ptr @fn_sconcat(ptr @.str1496, ptr %t75) + %t75 = call ptr @fn_sconcat(ptr %t74, ptr @.str1494) + %t76 = call ptr @fn_sconcat(ptr @.str1493, ptr %t75) %t77 = call ptr @fn_emit_bind(ptr %t76) store ptr %t77, ptr %t78 - call void @fn_emit(ptr @.str1498) + call void @fn_emit(ptr @.str1495) %t79 = load ptr, ptr %t12 call void @fn_emit(ptr %t79) - call void @fn_emit(ptr @.str1499) + call void @fn_emit(ptr @.str1496) %t80 = load ptr, ptr %t78 call void @fn_emit(ptr %t80) - call void @fn_emit(ptr @.str1500) + call void @fn_emit(ptr @.str1497) br label %ifend11 ifend11: %t81 = load ptr, ptr %t8 store ptr %t81, ptr @g_code - call void @fn_emit(ptr @.str1501) + call void @fn_emit(ptr @.str1498) %t82 = load ptr, ptr %t12 call void @fn_emit(ptr %t82) - call void @fn_emit(ptr @.str1502) + call void @fn_emit(ptr @.str1499) %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 @.str1503) + call void @fn_emit(ptr @.str1500) %t86 = load ptr, ptr %t0 call void @fn_emit_params_sig(ptr %t86) - call void @fn_emit(ptr @.str1504) + call void @fn_emit(ptr @.str1501) %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 @.str1505) + call void @fn_emit(ptr @.str1502) br label %ret ret: ret void @@ -20810,7 +20752,7 @@ entry: store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop - store ptr @.str1506, ptr @g_ret_ty + store ptr @.str1503, ptr @g_ret_ty %t1 = call ptr @fn_buf_new() store ptr %t1, ptr %t2 %t3 = call ptr @fn_buf_new() @@ -20820,10 +20762,10 @@ entry: %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 @.str1507) - call void @fn_emit(ptr @.str1508) - call void @fn_emit(ptr @.str1509) - call void @fn_emit(ptr @.str1510) + call void @fn_buf_puts(ptr %t7, ptr @.str1504) + call void @fn_emit(ptr @.str1505) + call void @fn_emit(ptr @.str1506) + call void @fn_emit(ptr @.str1507) %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4 %t10 = load ptr, ptr %t9 @@ -20834,26 +20776,26 @@ entry: %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str1511) + call void @fn_emit(ptr @.str1508) br label %ifend2 ifend2: - call void @fn_emit(ptr @.str1512) - %t15 = call ptr @fn_emit_bind(ptr @.str1513) + call void @fn_emit(ptr @.str1509) + %t15 = call ptr @fn_emit_bind(ptr @.str1510) store ptr %t15, ptr %t16 - call void @fn_emit(ptr @.str1514) + call void @fn_emit(ptr @.str1511) %t17 = load ptr, ptr %t16 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str1515) + call void @fn_emit(ptr @.str1512) %t18 = load ptr, ptr %t5 store ptr %t18, ptr @g_code - call void @fn_emit(ptr @.str1516) + call void @fn_emit(ptr @.str1513) %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 @.str1517) + call void @fn_emit(ptr @.str1514) br label %ret ret: ret void @@ -21089,7 +21031,7 @@ then0: br label %ret ifend2: %t13 = load ptr, ptr %t0 - %t14 = call ptr @fopen(ptr %t13, ptr @.str1518) + %t14 = call ptr @fopen(ptr %t13, ptr @.str1515) store ptr %t14, ptr %t15 %t16 = load ptr, ptr %t15 %t17 = icmp eq ptr %t16, null @@ -21198,7 +21140,7 @@ then0: %t9 = load i32, ptr %t3 %t10 = sub i32 %t9, 6 %t11 = call ptr @fn_substr(ptr %t8, i32 %t10, i32 6) - %t12 = call i32 @fn_streq(ptr %t11, ptr @.str1519) + %t12 = call i32 @fn_streq(ptr %t11, ptr @.str1516) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then3, label %ifend5 then3: @@ -21283,7 +21225,7 @@ then3: br label %ret ifend5: %t19 = load ptr, ptr %t0 - %t20 = call ptr @fn_sconcat(ptr %t19, ptr @.str1520) + %t20 = call ptr @fn_sconcat(ptr %t19, ptr @.str1517) store ptr %t20, ptr %retval br label %ret ret: @@ -21323,17 +21265,17 @@ entry: %t66 = alloca ptr %t83 = alloca ptr %t93 = alloca i32 - %t105 = alloca i32 - %t114 = alloca i32 - %t131 = alloca i32 - %t148 = alloca ptr - %t159 = alloca ptr - %t166 = alloca ptr - %t173 = alloca ptr - %t178 = alloca ptr - %t183 = alloca ptr - %t195 = alloca i32 - %t211 = alloca i32 + %t103 = alloca i32 + %t112 = alloca i32 + %t129 = alloca i32 + %t146 = alloca ptr + %t157 = alloca ptr + %t164 = alloca ptr + %t171 = alloca ptr + %t176 = alloca ptr + %t181 = alloca ptr + %t193 = alloca i32 + %t209 = alloca i32 store i32 %argc, ptr @L_argc store ptr %argv, ptr @L_argv store i32 0, ptr %retval @@ -21348,7 +21290,7 @@ entry: %t8 = getelementptr ptr, ptr %t7, i32 0 %t9 = load ptr, ptr %t8 %t10 = call ptr @fn_base_name(ptr %t9) - %t11 = call i32 @fn_streq(ptr %t10, ptr @.str1521) + %t11 = call i32 @fn_streq(ptr %t10, ptr @.str1518) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: @@ -21371,7 +21313,7 @@ wbody4: %t22 = load ptr, ptr %t21 store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 - %t25 = call i32 @fn_streq(ptr %t24, ptr @.str1522) + %t25 = call i32 @fn_streq(ptr %t24, ptr @.str1519) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then6, label %else7 then6: @@ -21379,7 +21321,7 @@ then6: br label %ifend8 else7: %t27 = load ptr, ptr %t23 - %t28 = call i32 @fn_streq(ptr %t27, ptr @.str1523) + %t28 = call i32 @fn_streq(ptr %t27, ptr @.str1520) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then9, label %else10 then9: @@ -21387,7 +21329,7 @@ then9: br label %ifend11 else10: %t30 = load ptr, ptr %t23 - %t31 = call i32 @fn_streq(ptr %t30, ptr @.str1524) + %t31 = call i32 @fn_streq(ptr %t30, ptr @.str1521) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then12, label %else13 then12: @@ -21395,7 +21337,7 @@ then12: br label %ifend14 else13: %t33 = load ptr, ptr %t23 - %t34 = call i32 @fn_streq(ptr %t33, ptr @.str1525) + %t34 = call i32 @fn_streq(ptr %t33, ptr @.str1522) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then15, label %else16 then15: @@ -21403,7 +21345,7 @@ then15: br label %ifend17 else16: %t36 = load ptr, ptr %t23 - %t37 = call i32 @fn_streq(ptr %t36, ptr @.str1526) + %t37 = call i32 @fn_streq(ptr %t36, ptr @.str1523) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then18, label %else19 then18: @@ -21411,7 +21353,7 @@ then18: br label %ifend20 else19: %t39 = load ptr, ptr %t23 - %t40 = call i32 @fn_streq(ptr %t39, ptr @.str1527) + %t40 = call i32 @fn_streq(ptr %t39, ptr @.str1524) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then21, label %else22 then21: @@ -21419,7 +21361,7 @@ then21: br label %ifend23 else22: %t42 = load ptr, ptr %t23 - %t43 = call i32 @fn_streq(ptr %t42, ptr @.str1528) + %t43 = call i32 @fn_streq(ptr %t42, ptr @.str1525) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then24, label %else25 then24: @@ -21452,8 +21394,8 @@ else25: br i1 %t62, label %then30, label %else31 then30: %t63 = load ptr, ptr %t23 - %t64 = call ptr @fn_sconcat(ptr %t63, ptr @.str1530) - %t65 = call ptr @fn_sconcat(ptr @.str1529, ptr %t64) + %t64 = call ptr @fn_sconcat(ptr %t63, ptr @.str1527) + %t65 = call ptr @fn_sconcat(ptr @.str1526, ptr %t64) store ptr %t65, ptr %t66 %t67 = load ptr, ptr @__stderrp %t68 = load ptr, ptr %t66 @@ -21493,7 +21435,7 @@ wend5: %t80 = icmp ne i32 %t79, 0 br i1 %t80, label %then33, label %ifend35 then33: - call void @fn_die(ptr @.str1531) + call void @fn_die(ptr @.str1528) br label %ifend35 ifend35: %t81 = load ptr, ptr %t0 @@ -21505,7 +21447,7 @@ ifend35: %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then36, label %ifend38 then36: - call void @fn_die(ptr @.str1532) + call void @fn_die(ptr @.str1529) br label %ifend38 ifend38: %t88 = load ptr, ptr %t0 @@ -21529,196 +21471,194 @@ ifend41: br i1 %t95, label %scend43, label %sc42 sc42: %t97 = load ptr, ptr %t1 - %t98 = icmp eq ptr %t97, null + %t98 = icmp ne ptr %t97, null %t99 = zext i1 %t98 to i32 - %t100 = icmp eq i32 %t99, 0 + %t100 = icmp ne i32 %t99, 0 %t101 = zext i1 %t100 to i32 - %t102 = icmp ne i32 %t101, 0 - %t103 = zext i1 %t102 to i32 - store i32 %t103, ptr %t93 + store i32 %t101, ptr %t93 br label %scend43 scend43: - %t104 = load i32, ptr %t93 - store i32 %t104, ptr %t105 - %t106 = load i32, ptr %t2 - %t107 = icmp eq i32 %t106, 1 - %t108 = zext i1 %t107 to i32 - %t109 = icmp ne i32 %t108, 0 - br i1 %t109, label %then44, label %else45 + %t102 = load i32, ptr %t93 + store i32 %t102, ptr %t103 + %t104 = load i32, ptr %t2 + %t105 = icmp eq i32 %t104, 1 + %t106 = zext i1 %t105 to i32 + %t107 = icmp ne i32 %t106, 0 + br i1 %t107, label %then44, label %else45 then44: store i32 1, ptr @g_g_windowed br label %ifend46 else45: - %t110 = load i32, ptr %t2 - %t111 = icmp eq i32 %t110, 2 - %t112 = zext i1 %t111 to i32 - %t113 = icmp ne i32 %t112, 0 - br i1 %t113, label %then47, label %else48 + %t108 = load i32, ptr %t2 + %t109 = icmp eq i32 %t108, 2 + %t110 = zext i1 %t109 to i32 + %t111 = icmp ne i32 %t110, 0 + br i1 %t111, label %then47, label %else48 then47: store i32 0, ptr @g_g_windowed br label %ifend49 else48: - %t115 = load i32, ptr %t105 - %t116 = icmp ne i32 %t115, 0 - %t117 = zext i1 %t116 to i32 - store i32 %t117, ptr %t114 - br i1 %t116, label %sc50, label %scend51 + %t113 = load i32, ptr %t103 + %t114 = icmp ne i32 %t113, 0 + %t115 = zext i1 %t114 to i32 + store i32 %t115, ptr %t112 + br i1 %t114, label %sc50, label %scend51 sc50: - %t118 = call i32 @fn_has_systems() - %t119 = icmp ne i32 %t118, 0 - %t120 = zext i1 %t119 to i32 - store i32 %t120, ptr %t114 + %t116 = call i32 @fn_has_systems() + %t117 = icmp ne i32 %t116, 0 + %t118 = zext i1 %t117 to i32 + store i32 %t118, ptr %t112 br label %scend51 scend51: - %t121 = load i32, ptr %t114 - store i32 %t121, ptr @g_g_windowed + %t119 = load i32, ptr %t112 + store i32 %t119, ptr @g_g_windowed br label %ifend49 ifend49: br label %ifend46 ifend46: call void @fn_emit_program() - %t122 = load i32, ptr %t3 - %t123 = icmp ne i32 %t122, 0 - br i1 %t123, label %then52, label %ifend54 + %t120 = load i32, ptr %t3 + %t121 = icmp ne i32 %t120, 0 + br i1 %t121, label %then52, label %ifend54 then52: - %t124 = load ptr, ptr %t1 - %t125 = call i32 @fn_ir_flush(ptr %t124) + %t122 = load ptr, ptr %t1 + %t123 = call i32 @fn_ir_flush(ptr %t122) br label %ret ifend54: - %t126 = load i32, ptr %t105 - %t127 = icmp eq i32 %t126, 0 - %t128 = zext i1 %t127 to i32 - %t129 = icmp ne i32 %t128, 0 - br i1 %t129, label %then55, label %ifend57 + %t124 = load i32, ptr %t103 + %t125 = icmp eq i32 %t124, 0 + %t126 = zext i1 %t125 to i32 + %t127 = icmp ne i32 %t126, 0 + br i1 %t127, label %then55, label %ifend57 then55: - %t130 = call i32 @fn_ir_flush(ptr null) + %t128 = call i32 @fn_ir_flush(ptr null) br label %ret ifend57: - %t132 = load i32, ptr %t6 - %t133 = icmp ne i32 %t132, 0 - %t134 = zext i1 %t133 to i32 - store i32 %t134, ptr %t131 - br i1 %t133, label %sc58, label %scend59 + %t130 = load i32, ptr %t6 + %t131 = icmp ne i32 %t130, 0 + %t132 = zext i1 %t131 to i32 + store i32 %t132, ptr %t129 + br i1 %t131, label %sc58, label %scend59 sc58: - %t135 = load ptr, ptr %t1 - %t136 = icmp eq ptr %t135, null + %t133 = load ptr, ptr %t1 + %t134 = icmp eq ptr %t133, null + %t135 = zext i1 %t134 to i32 + %t136 = icmp ne i32 %t135, 0 %t137 = zext i1 %t136 to i32 - %t138 = icmp ne i32 %t137, 0 - %t139 = zext i1 %t138 to i32 - store i32 %t139, ptr %t131 + store i32 %t137, ptr %t129 br label %scend59 scend59: - %t140 = load i32, ptr %t131 - %t141 = icmp ne i32 %t140, 0 - br i1 %t141, label %then60, label %ifend62 + %t138 = load i32, ptr %t129 + %t139 = icmp ne i32 %t138, 0 + br i1 %t139, label %then60, label %ifend62 then60: - %t142 = load ptr, ptr %t0 - %t143 = call ptr @fn_base_name(ptr %t142) - %t144 = call ptr @fn_strip_ludic(ptr %t143) - %t145 = call ptr @fn_sconcat(ptr @.str1533, ptr %t144) - store ptr %t145, ptr %t1 + %t140 = load ptr, ptr %t0 + %t141 = call ptr @fn_base_name(ptr %t140) + %t142 = call ptr @fn_strip_ludic(ptr %t141) + %t143 = call ptr @fn_sconcat(ptr @.str1530, ptr %t142) + store ptr %t143, ptr %t1 br label %ifend62 ifend62: - %t146 = load ptr, ptr %t1 - %t147 = call ptr @fn_dir_of(ptr %t146) - store ptr %t147, ptr %t148 - %t149 = load ptr, ptr %t148 - %t150 = call i32 @fn_slen(ptr %t149) - %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 + %t144 = load ptr, ptr %t1 + %t145 = call ptr @fn_dir_of(ptr %t144) + store ptr %t145, ptr %t146 + %t147 = load ptr, ptr %t146 + %t148 = call i32 @fn_slen(ptr %t147) + %t149 = icmp sgt i32 %t148, 0 + %t150 = zext i1 %t149 to i32 + %t151 = icmp ne i32 %t150, 0 + br i1 %t151, label %then63, label %ifend65 then63: - %t154 = load ptr, ptr %t148 - %t155 = call ptr @fn_sconcat(ptr @.str1534, ptr %t154) - %t156 = call i32 @system(ptr %t155) + %t152 = load ptr, ptr %t146 + %t153 = call ptr @fn_sconcat(ptr @.str1531, ptr %t152) + %t154 = call i32 @system(ptr %t153) br label %ifend65 ifend65: - %t157 = load ptr, ptr %t1 - %t158 = call ptr @fn_sconcat(ptr %t157, ptr @.str1535) - 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 + %t155 = load ptr, ptr %t1 + %t156 = call ptr @fn_sconcat(ptr %t155, ptr @.str1532) + store ptr %t156, ptr %t157 + %t158 = load ptr, ptr %t157 + %t159 = call i32 @fn_ir_flush(ptr %t158) + %t160 = icmp eq i32 %t159, 0 + %t161 = zext i1 %t160 to i32 + %t162 = icmp ne i32 %t161, 0 + br i1 %t162, label %then66, label %ifend68 then66: - call void @fn_die(ptr @.str1536) + call void @fn_die(ptr @.str1533) br label %ifend68 ifend68: - %t165 = call ptr @fn_getenv_or(ptr @.str1537, ptr @.str1538) - 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 @.str1539, ptr %t170) - %t172 = call ptr @fn_ensure_slash(ptr %t171) - store ptr %t172, ptr %t173 - %t174 = load ptr, ptr %t166 - %t175 = load ptr, ptr %t159 - %t176 = call ptr @fn_sconcat(ptr @.str1540, ptr %t175) - %t177 = call ptr @fn_sconcat(ptr %t174, 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 + %t163 = call ptr @fn_getenv_or(ptr @.str1534, ptr @.str1535) + store ptr %t163, ptr %t164 + %t165 = load ptr, ptr @L_argv + %t166 = getelementptr ptr, ptr %t165, i32 0 + %t167 = load ptr, ptr %t166 + %t168 = call ptr @fn_dir_of(ptr %t167) + %t169 = call ptr @fn_getenv_or(ptr @.str1536, ptr %t168) + %t170 = call ptr @fn_ensure_slash(ptr %t169) + store ptr %t170, ptr %t171 + %t172 = load ptr, ptr %t164 + %t173 = load ptr, ptr %t157 + %t174 = call ptr @fn_sconcat(ptr @.str1537, ptr %t173) + %t175 = call ptr @fn_sconcat(ptr %t172, ptr %t174) + store ptr %t175, ptr %t176 + %t177 = load i32, ptr @g_g_windowed + %t178 = icmp ne i32 %t177, 0 + br i1 %t178, label %then69, label %ifend71 then69: - %t181 = load ptr, ptr %t173 - %t182 = call ptr @fn_path_join(ptr %t181, ptr @.str1541) - store ptr %t182, ptr %t183 - %t184 = load ptr, ptr %t178 - %t185 = load ptr, ptr %t183 - %t186 = call ptr @fn_sconcat(ptr %t185, ptr @.str1543) - %t187 = call ptr @fn_sconcat(ptr @.str1542, ptr %t186) - %t188 = call ptr @fn_sconcat(ptr %t184, ptr %t187) - store ptr %t188, ptr %t178 + %t179 = load ptr, ptr %t171 + %t180 = call ptr @fn_path_join(ptr %t179, ptr @.str1538) + store ptr %t180, ptr %t181 + %t182 = load ptr, ptr %t176 + %t183 = load ptr, ptr %t181 + %t184 = call ptr @fn_sconcat(ptr %t183, ptr @.str1540) + %t185 = call ptr @fn_sconcat(ptr @.str1539, ptr %t184) + %t186 = call ptr @fn_sconcat(ptr %t182, ptr %t185) + store ptr %t186, ptr %t176 br label %ifend71 ifend71: - %t189 = load ptr, ptr %t178 - %t190 = load ptr, ptr %t1 - %t191 = call ptr @fn_sconcat(ptr @.str1544, ptr %t190) - %t192 = call ptr @fn_sconcat(ptr %t189, 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 + %t187 = load ptr, ptr %t176 + %t188 = load ptr, ptr %t1 + %t189 = call ptr @fn_sconcat(ptr @.str1541, ptr %t188) + %t190 = call ptr @fn_sconcat(ptr %t187, ptr %t189) + store ptr %t190, ptr %t176 + %t191 = load ptr, ptr %t176 + %t192 = call i32 @system(ptr %t191) + store i32 %t192, ptr %t193 + %t194 = load i32, ptr %t5 + %t195 = icmp eq i32 %t194, 0 + %t196 = zext i1 %t195 to i32 + %t197 = icmp ne i32 %t196, 0 + br i1 %t197, label %then72, label %ifend74 then72: - %t200 = load ptr, ptr %t159 - %t201 = call ptr @fn_sconcat(ptr @.str1545, ptr %t200) - %t202 = call i32 @system(ptr %t201) + %t198 = load ptr, ptr %t157 + %t199 = call ptr @fn_sconcat(ptr @.str1542, ptr %t198) + %t200 = call i32 @system(ptr %t199) br label %ifend74 ifend74: - %t203 = load i32, ptr %t195 + %t201 = load i32, ptr %t193 + %t202 = icmp ne i32 %t201, 0 + %t203 = zext i1 %t202 to i32 %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 + br i1 %t204, label %then75, label %ifend77 then75: - call void @fn_die(ptr @.str1546) + call void @fn_die(ptr @.str1543) br label %ifend77 ifend77: - %t207 = load i32, ptr %t6 - %t208 = icmp ne i32 %t207, 0 - br i1 %t208, label %then78, label %ifend80 + %t205 = load i32, ptr %t6 + %t206 = icmp ne i32 %t205, 0 + br i1 %t206, 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) + %t207 = load ptr, ptr %t1 + %t208 = call i32 @system(ptr %t207) + store i32 %t208, ptr %t209 + %t210 = load i32, ptr %t209 + %t211 = lshr i32 %t210, 8 + %t212 = and i32 %t211, 255 + call void @exit(i32 %t212) unreachable ifend80: br label %ret ret: - %t215 = load i32, ptr %retval - ret i32 %t215 + %t213 = load i32, ptr %retval + ret i32 %t213 } diff --git a/selfhost/main.ludic b/selfhost/main.ludic index fd1e41c7..861bde52 100644 --- a/selfhost/main.ludic +++ b/selfhost/main.ludic @@ -34,7 +34,7 @@ fn strip_ludic(name: ptr) -> ptr { # env var with a fallback when unset fn getenv_or(name: ptr, dflt: ptr) -> ptr { let v = os_getenv(name) - if ptr_is_null(v) { return dflt } + if (v == null) { return dflt } return v } @@ -52,8 +52,8 @@ fn die(msg: ptr) -> void { } entry { - var path = ptr_null() - var out = ptr_null() + var path = null + var out = null var want = 0 # 0 = auto, 1 = windowed, 2 = headless var emit_ir = false # --emit-llvm: stop after writing IR var fmt = false # --fmt: lex + parse only, then exit (the doc-check gate) @@ -84,11 +84,11 @@ entry { ai = ai + 1 } - if ptr_is_null(path) { + if (path == null) { die("usage: ludicc [-o out] [--windowed|--headless] [--emit-llvm] [--save-temps]\n") } let src = read_file(path) - if ptr_is_null(src) { die("ludicc: cannot open input\n") } + if (src == null) { die("ludicc: cannot open input\n") } cur_dir = dir_of(path) lex(src) @@ -104,7 +104,7 @@ entry { # a game gets a window by default; a plain program stays headless. An explicit # flag always wins. The stdout-IR path (no target) also stays headless, which # is what reseed.sh compiles the compiler itself with. - let has_target = run or (not ptr_is_null(out)) + let has_target = run or ((out != null)) if want == 1 { g_windowed = true } else { if want == 2 { g_windowed = false } else { g_windowed = has_target and has_systems() } } @@ -113,10 +113,10 @@ entry { # --emit-llvm, or no binary target: emit IR and stop (stdout when out is null). if emit_ir { ir_flush(out); return } - if not has_target { ir_flush(ptr_null()); return } + if not has_target { ir_flush(null); return } # a run with no explicit -o lands in a temp file - if run and ptr_is_null(out) { + if run and (out == null) { out = sconcat("/tmp/ludic-run-", strip_ludic(base_name(path))) } diff --git a/selfhost/parse.ludic b/selfhost/parse.ludic index 68c147dd..9081c5ee 100644 --- a/selfhost/parse.ludic +++ b/selfhost/parse.ludic @@ -62,6 +62,7 @@ fn p_primary() -> Node { if t.kind == TK_ID { if streq(t.text, "true") { let n = node(E_BOOL); n.ival = 1; pi = pi + 1; return n } if streq(t.text, "false") { let n = node(E_BOOL); n.ival = 0; pi = pi + 1; return n } + if streq(t.text, "null") { pi = pi + 1; return node(E_NULL) } if streq(t.text, "new") { pi = pi + 1; let n = node(E_NEW); n.s = ptype(); return n } let n = node(E_ID); n.s = t.text; pi = pi + 1; return n } @@ -275,13 +276,13 @@ fn already_loaded(full: ptr) -> bool { # `@pure`, `@deterministic`, … — one channel, not a zoo of prefix keywords. fn parse_one_decl() -> void { var is_export = false - var qspec: Node = ptr_null() - var onspawn_model: ptr = ptr_null() - var ondespawn_model: ptr = ptr_null() - var onattach_prop: ptr = ptr_null() - var onenable_prop: ptr = ptr_null() - var ondisable_prop: ptr = ptr_null() - var hook_phase: ptr = ptr_null() # @OnStart / @OnQuit override the phase + var qspec: Node = null + var onspawn_model: ptr = null + var ondespawn_model: ptr = null + var onattach_prop: ptr = null + var onenable_prop: ptr = null + var ondisable_prop: ptr = null + var hook_phase: ptr = null # @OnStart / @OnQuit override the phase while is_op("@") { pi = pi + 1; let a = eat_id() # collect a leading @annotation if streq(a, "export") { is_export = true } @@ -309,13 +310,13 @@ fn parse_one_decl() -> void { if is_id("model") { push(prog, parse_archetype()); return } if is_id("handler") { let h = parse_system() - if not ptr_is_null(onspawn_model) { register_onspawn(onspawn_model, h.a); return } # spawn hook - if not ptr_is_null(ondespawn_model) { register_ondespawn(ondespawn_model, h.a); return } # despawn hook - if not ptr_is_null(onattach_prop) { register_onattach(onattach_prop, h.a); return } # attach hook - if not ptr_is_null(onenable_prop) { register_onenable(onenable_prop, h.a); return } # enable hook - if not ptr_is_null(ondisable_prop) { register_ondisable(ondisable_prop, h.a); return } # disable hook - if not ptr_is_null(hook_phase) { h.ty = hook_phase } # @OnStart/@OnQuit - if not ptr_is_null(qspec) { # @Queries wraps the body in its S_QUERY + if (onspawn_model != null) { register_onspawn(onspawn_model, h.a); return } # spawn hook + if (ondespawn_model != null) { register_ondespawn(ondespawn_model, h.a); return } # despawn hook + if (onattach_prop != null) { register_onattach(onattach_prop, h.a); return } # attach hook + if (onenable_prop != null) { register_onenable(onenable_prop, h.a); return } # enable hook + if (ondisable_prop != null) { register_ondisable(ondisable_prop, h.a); return } # disable hook + if (hook_phase != null) { h.ty = hook_phase } # @OnStart/@OnQuit + if (qspec != null) { # @Queries wraps the body in its S_QUERY qspec.a = h.a let wrap = node(N_BLOCK); push(wrap.kids, qspec); h.a = wrap } @@ -336,7 +337,7 @@ fn do_import(rel: ptr) -> void { if already_loaded(full) { return } push(loaded_paths, full) let src = read_file(full) - if ptr_is_null(src) { perr(sconcat("cannot open import ", full)) } + if (src == null) { perr(sconcat("cannot open import ", full)) } let saved_toks = toks; let saved_pi = pi; let saved_dir = cur_dir cur_dir = dir_of(full) lex(src) # resets the global token stream diff --git a/selfhost/parse_game.ludic b/selfhost/parse_game.ludic index 9f163151..d4b00198 100644 --- a/selfhost/parse_game.ludic +++ b/selfhost/parse_game.ludic @@ -71,7 +71,7 @@ fn parse_query_for() -> Node { # the whole query backend (iteration, filters, binding, break/continue) is reused. fn mk_and(a: Node, b: Node) -> Node { - if ptr_is_null(a) { return b } + if (a == null) { return b } let n = node(E_BIN); n.s = "and"; n.a = a; n.b = b; return n } @@ -80,7 +80,7 @@ fn mk_and(a: Node, b: Node) -> Node { # expansion (base is the accessed value). Non-destructive: builds a fresh tree, # so a stored computed expression can be expanded at many access sites. fn qualify_fields(e: Node, base: Node) -> Node { - if ptr_is_null(e) { return e } + if (e == null) { return e } if e.kind == E_ID { let m = node(E_MEMBER); m.a = base; m.s = e.s; return m } @@ -99,7 +99,7 @@ fn parse_queries_anno() -> Node { eat_op("(") let qn = node(S_QUERY) let terms = node(N_BLOCK) - var wh: Node = ptr_null() + var wh: Node = null while not is_op(")") { skipnl() if is_op(")") { break } diff --git a/tools/editors/jetbrains/src/main/kotlin/io/ludic/ide/LudicTokens.kt b/tools/editors/jetbrains/src/main/kotlin/io/ludic/ide/LudicTokens.kt index c31d92ed..884dcc5c 100644 --- a/tools/editors/jetbrains/src/main/kotlin/io/ludic/ide/LudicTokens.kt +++ b/tools/editors/jetbrains/src/main/kotlin/io/ludic/ide/LudicTokens.kt @@ -68,8 +68,8 @@ object LudicVocabulary { // compiler intrinsics: the floor the Ludic-written runtime stands on "mem_alloc", "mem_realloc", "mem_free", "mem_copy", "mem_set", "peek8", "poke8", "peek32", "os_argc", "os_arg", "file_stderr", - "poke32", "peekp", "pokep", "peekf", "pokef", "ptr_add", "ptr_null", - "ptr_is_null", "as_fixed", "as_int", "file_open", "file_read", "file_write", + "poke32", "peekp", "pokep", "peekf", "pokef", "ptr_add", + "as_fixed", "as_int", "file_open", "file_read", "file_write", "file_seek", "file_tell", "file_close", "read_byte", "write_byte", "print_str", "str_len", "os_exit", "os_time", "is_windowed", "game_title", "win_open", "win_poll", "win_present", diff --git a/tools/editors/shared/ludic.tmLanguage.json b/tools/editors/shared/ludic.tmLanguage.json index 1bb52a0c..74552513 100644 --- a/tools/editors/shared/ludic.tmLanguage.json +++ b/tools/editors/shared/ludic.tmLanguage.json @@ -167,7 +167,7 @@ { "name": "keyword.other.ludic", "match": "\\b(import|extern)\\b" }, { "name": "storage.type.ludic", "match": "\\b(program|property|model|enum|ui|const|var|let|fn|handler|entry|state)\\b" }, { "name": "support.type.primitive.ludic", "match": "\\b(int|fixed|bool|entity|str|ptr|void)\\b" }, - { "name": "constant.language.boolean.ludic", "match": "\\b(true|false)\\b" }, + { "name": "constant.language.boolean.ludic", "match": "\\b(true|false|null)\\b" }, { "name": "constant.language.phase.ludic", "match": "\\b(Start|Input|FixedUpdate|Update|LateUpdate|Render)\\b" } ] }, @@ -198,7 +198,7 @@ { "comment": "compiler intrinsics — these lower straight to libc or the OS", "name": "support.function.intrinsic.ludic", - "match": "\\b(mem_alloc|mem_realloc|mem_free|mem_copy|mem_set|peek8|poke8|peek32|poke32|peekp|pokep|peekf|pokef|ptr_add|ptr_null|ptr_is_null|as_fixed|as_int|file_open|file_read|file_write|file_seek|file_tell|file_close|read_byte|write_byte|print_str|str_len|os_exit|os_time|os_argc|os_arg|file_stderr|is_windowed|game_title|win_open|win_poll|win_present|win_running|win_close)\\b(?=\\s*\\()" + "match": "\\b(mem_alloc|mem_realloc|mem_free|mem_copy|mem_set|peek8|poke8|peek32|poke32|peekp|pokep|peekf|pokef|ptr_add|as_fixed|as_int|file_open|file_read|file_write|file_seek|file_tell|file_close|read_byte|write_byte|print_str|str_len|os_exit|os_time|os_argc|os_arg|file_stderr|is_windowed|game_title|win_open|win_poll|win_present|win_running|win_close)\\b(?=\\s*\\()" } ] }, diff --git a/tools/editors/vscode/syntaxes/ludic.tmLanguage.json b/tools/editors/vscode/syntaxes/ludic.tmLanguage.json index 1bb52a0c..74552513 100644 --- a/tools/editors/vscode/syntaxes/ludic.tmLanguage.json +++ b/tools/editors/vscode/syntaxes/ludic.tmLanguage.json @@ -167,7 +167,7 @@ { "name": "keyword.other.ludic", "match": "\\b(import|extern)\\b" }, { "name": "storage.type.ludic", "match": "\\b(program|property|model|enum|ui|const|var|let|fn|handler|entry|state)\\b" }, { "name": "support.type.primitive.ludic", "match": "\\b(int|fixed|bool|entity|str|ptr|void)\\b" }, - { "name": "constant.language.boolean.ludic", "match": "\\b(true|false)\\b" }, + { "name": "constant.language.boolean.ludic", "match": "\\b(true|false|null)\\b" }, { "name": "constant.language.phase.ludic", "match": "\\b(Start|Input|FixedUpdate|Update|LateUpdate|Render)\\b" } ] }, @@ -198,7 +198,7 @@ { "comment": "compiler intrinsics — these lower straight to libc or the OS", "name": "support.function.intrinsic.ludic", - "match": "\\b(mem_alloc|mem_realloc|mem_free|mem_copy|mem_set|peek8|poke8|peek32|poke32|peekp|pokep|peekf|pokef|ptr_add|ptr_null|ptr_is_null|as_fixed|as_int|file_open|file_read|file_write|file_seek|file_tell|file_close|read_byte|write_byte|print_str|str_len|os_exit|os_time|os_argc|os_arg|file_stderr|is_windowed|game_title|win_open|win_poll|win_present|win_running|win_close)\\b(?=\\s*\\()" + "match": "\\b(mem_alloc|mem_realloc|mem_free|mem_copy|mem_set|peek8|poke8|peek32|poke32|peekp|pokep|peekf|pokef|ptr_add|as_fixed|as_int|file_open|file_read|file_write|file_seek|file_tell|file_close|read_byte|write_byte|print_str|str_len|os_exit|os_time|os_argc|os_arg|file_stderr|is_windowed|game_title|win_open|win_poll|win_present|win_running|win_close)\\b(?=\\s*\\()" } ] }, diff --git a/tools/ludic-tools/ludic_syntax.h b/tools/ludic-tools/ludic_syntax.h index 805ec435..7238430c 100644 --- a/tools/ludic-tools/ludic_syntax.h +++ b/tools/ludic-tools/ludic_syntax.h @@ -161,8 +161,6 @@ static const LBuiltin LUDIC_INTRINSICS[] = { {"peekf","peekf(p: ptr, off: int) -> fixed","Read a fixed-point word."}, {"pokef","pokef(p: ptr, off: int, v: fixed)","Write a fixed-point word."}, {"ptr_add","ptr_add(p: ptr, off: int) -> ptr","Offset a pointer by bytes."}, - {"ptr_null","ptr_null() -> ptr","The null pointer."}, - {"ptr_is_null","ptr_is_null(p: ptr) -> bool","Null test."}, {"as_fixed","as_fixed(i: int) -> fixed","Reinterpret an int as fixed (no conversion)."}, {"as_int","as_int(f: fixed) -> int","Reinterpret a fixed as int (no conversion)."}, {"file_open","file_open(path: str, mode: str) -> ptr","fopen."}, @@ -259,7 +257,7 @@ static void lud_lex(LLex* L, const char* src){ int len = i - s; char w[128]; if (len < (int)sizeof(w)){ memcpy(w, src + s, len); w[len] = 0; } else { w[0] = 0; } int k = LT_ID; - if (!strcmp(w, "true") || !strcmp(w, "false")) k = LT_BOOL; + if (!strcmp(w, "true") || !strcmp(w, "false") || !strcmp(w, "null")) k = LT_BOOL; else if (lud_in(LUDIC_TYPES, w)) k = LT_TYPE; else if (lud_in(LUDIC_PHASES, w)) k = LT_PHASE; else if (lud_is_keyword(w)) k = LT_KW;