diff --git a/LANGUAGE.md b/LANGUAGE.md index 858e9456..25faa229 100644 --- a/LANGUAGE.md +++ b/LANGUAGE.md @@ -145,6 +145,8 @@ See `examples/menu.ludic` for a complete title screen. | `entity` | entity handle | `i32` | | `str` | string literal | `ptr` | | `ptr` | raw address (runtime/FFI) | `ptr` | +| `byte` | pointer to bytes — `p[i]` reads/writes one byte | `ptr` | +| `words` | pointer to 32-bit words — `w[i]` reads/writes an `int` | `ptr` | Numeric literals: `42` and `0x1affff` are `int`; a literal with a decimal point (`1.5`) is `fixed`. Arithmetic on two `fixed` values lowers to diff --git a/runtime/native/core.ludic b/runtime/native/core.ludic index 5a35d1db..6def4f02 100644 --- a/runtime/native/core.ludic +++ b/runtime/native/core.ludic @@ -20,10 +20,10 @@ # ============================================================================ # ---- state ---------------------------------------------------------------- -var rt_fb: ptr = null # framebuffer, one i32 (0x00RRGGBB) per pixel +var rt_fb: words = null # framebuffer, one i32 (0x00RRGGBB) per pixel var rt_fbw: int = 320 var rt_fbh: int = 240 -var rt_regs: ptr = null # the 64 general-purpose game registers +var rt_regs: words = null # the 64 general-purpose game registers var rt_rng: int = 305419896 # xorshift32 state var rt_alive: int = 1 # platform still running? @@ -62,7 +62,7 @@ fn rt_shutdown() -> void { fn rt_clear(c: int) -> void { let n = rt_fbw * rt_fbh for i in 0 .. n { - poke32(rt_fb, i, c) + rt_fb[i] = c } } @@ -71,7 +71,7 @@ fn rt_put_px(x: int, y: int, c: int) -> void { if y < 0 { return } if x >= rt_fbw { return } if y >= rt_fbh { return } - poke32(rt_fb, y * rt_fbw + x, c) + rt_fb[y * rt_fbw + x] = c } fn rt_fill_rect(x: int, y: int, w: int, h: int, c: int) -> void { @@ -84,7 +84,7 @@ fn rt_fill_rect(x: int, y: int, w: int, h: int, c: int) -> void { let row = j * rt_fbw var i = x0 while i < x1 { - poke32(rt_fb, row + i, c) + rt_fb[row + i] = c i = i + 1 } j = j + 1 @@ -175,13 +175,13 @@ fn rt_text_int(x: int, y: int, n: int, colour: int, sc: int) -> void { fn rt_reg(i: int) -> int { if i < 0 { return 0 } if i >= 64 { return 0 } - return peek32(rt_regs, i) + return rt_regs[i] } fn rt_set_reg(i: int, v: int) -> void { if i < 0 { return } if i >= 64 { return } - poke32(rt_regs, i, v) + rt_regs[i] = v } # ---- rng (xorshift32) ----------------------------------------------------- @@ -290,7 +290,7 @@ fn rt_dump_ppm(path: str) -> void { let px = rt_fbw * rt_fbh let buf = mem_alloc(px * 3) for i in 0 .. px { - let c = peek32(rt_fb, i) + let c = rt_fb[i] buf[i * 3] = (c / 65536) % 256 buf[i * 3 + 1] = (c / 256) % 256 buf[i * 3 + 2] = c % 256 @@ -369,11 +369,11 @@ fn rt_status_text() -> ptr { # only it knows their shape. Everything below belongs to the runtime, so the # runtime writes it — same order both ways. fn rt_save_state(f: ptr) -> void { - let w = mem_alloc(16) - poke32(w, 0, rt_rng) - poke32(w, 1, rt_mapw) - poke32(w, 2, rt_maph) - poke32(w, 3, rt_alive) + let w: words = mem_alloc(16) + w[0] = rt_rng + w[1] = rt_mapw + w[2] = rt_maph + w[3] = rt_alive file_write(f, w, 16) file_write(f, rt_regs, 64 * 4) file_write(f, rt_map, 96 * 64) @@ -382,11 +382,11 @@ fn rt_save_state(f: ptr) -> void { } fn rt_load_state(f: ptr) -> void { - let w = mem_alloc(16) + let w: words = mem_alloc(16) file_read(f, w, 16) - rt_rng = peek32(w, 0) - rt_mapw = peek32(w, 1) - rt_maph = peek32(w, 2) + rt_rng = w[0] + rt_mapw = w[1] + rt_maph = w[2] file_read(f, rt_regs, 64 * 4) file_read(f, rt_map, 96 * 64) file_read(f, rt_statusbuf, 96) diff --git a/runtime/native/image.ludic b/runtime/native/image.ludic index 3145bc90..178121d0 100644 --- a/runtime/native/image.ludic +++ b/runtime/native/image.ludic @@ -14,11 +14,11 @@ const SPR_MAX: int = 160 const SPR_SZ: int = 16 var img_px: ptr = null # IMG_MAX pointers to RGBA buffers -var img_w: ptr = null -var img_h: ptr = null +var img_w: words = null +var img_h: words = null var img_n: int = 0 -var spr_px: ptr = null # SPR_MAX * 16 * 16 RGBA pixels, one block +var spr_px: words = null # SPR_MAX * 16 * 16 RGBA pixels, one block var spr_n: int = 0 fn rt_image_init() -> void { @@ -60,7 +60,7 @@ 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 = null +var png_px: words = null fn rt_decode_png(path: str) -> bool { png_w = 0 @@ -168,7 +168,7 @@ fn rt_decode_png(path: str) -> bool { } # expand to 0xAARRGGBB - let out = mem_alloc(w * h * 4) + let out: words = mem_alloc(w * h * 4) let maxv = (1 << bd) - 1 for y in 0 .. h { let row = y * (stride + 1) + 1 @@ -211,7 +211,7 @@ fn rt_decode_png(path: str) -> bool { G = g B = g } - poke32(out, y * w + x, (((A << 24) | (R << 16)) | ((G << 8) | B))) + out[y * w + x] = (((A << 24) | (R << 16)) | ((G << 8) | B)) } } @@ -233,8 +233,8 @@ fn rt_image_load(path: str) -> int { let id = img_n img_n = img_n + 1 pokep(img_px, id, png_px) - poke32(img_w, id, png_w) - poke32(img_h, id, png_h) + img_w[id] = png_w + img_h[id] = png_h return id } @@ -249,7 +249,7 @@ fn rt_blend_px(x: int, y: int, argb: int) -> void { var g = ((argb >> 8) & 255) var b = (argb & 255) if a != 255 { - let dst = peek32(rt_fb, y * rt_fbw + x) + let dst = rt_fb[y * rt_fbw + x] let dr = ((dst >> 16) & 255) let dg = ((dst >> 8) & 255) let db = (dst & 255) @@ -257,18 +257,18 @@ fn rt_blend_px(x: int, y: int, argb: int) -> void { g = (g * a + dg * (255 - a)) / 255 b = (b * a + db * (255 - a)) / 255 } - poke32(rt_fb, y * rt_fbw + x, (((r << 16) | (g << 8)) | b)) + rt_fb[y * rt_fbw + x] = (((r << 16) | (g << 8)) | b) } fn rt_draw_image(id: int, dx: int, dy: int) -> void { if id < 0 { return } if id >= img_n { return } - let w = peek32(img_w, id) - let h = peek32(img_h, id) - let s = peekp(img_px, id) + let w = img_w[id] + let h = img_h[id] + let s: words = peekp(img_px, id) for y in 0 .. h { for x in 0 .. w { - rt_blend_px(dx + x, dy + y, peek32(s, y * w + x)) + rt_blend_px(dx + x, dy + y, s[y * w + x]) } } } @@ -278,12 +278,12 @@ fn rt_draw_image_scaled(id: int, dx: int, dy: int, dw: int, dh: int) -> void { if id >= img_n { return } if dw <= 0 { return } if dh <= 0 { return } - let w = peek32(img_w, id) - let h = peek32(img_h, id) - let s = peekp(img_px, id) + let w = img_w[id] + let h = img_h[id] + let s: words = peekp(img_px, id) for y in 0 .. dh { for x in 0 .. dw { - rt_blend_px(dx + x, dy + y, peek32(s, (y * h / dh) * w + x * w / dw)) + rt_blend_px(dx + x, dy + y, s[(y * h / dh) * w + x * w / dw]) } } } @@ -303,13 +303,13 @@ fn rt_draw_9slice(id: int, dx: int, dy: int, dw: int, dh: int, inset: int) -> vo if id >= img_n { return } if dw <= 0 { return } if dh <= 0 { return } - let w = peek32(img_w, id) - let h = peek32(img_h, id) - let s = peekp(img_px, id) + let w = img_w[id] + let h = img_h[id] + let s: words = peekp(img_px, id) for y in 0 .. dh { let sy = rt_9map(y, dh, h, inset) for x in 0 .. dw { - rt_blend_px(dx + x, dy + y, peek32(s, sy * w + rt_9map(x, dw, w, inset))) + rt_blend_px(dx + x, dy + y, s[sy * w + rt_9map(x, dw, w, inset)]) } } } @@ -326,11 +326,11 @@ fn rt_png_load(path: str) -> int { var px = 0 if x < png_w { if y < png_h { - let c = peek32(png_px, y * png_w + x) + let c = png_px[y * png_w + x] if ((c >> 24) & 255) >= 128 { px = ((255 << 24) | (c & 16777215)) } } } - poke32(spr_px, base + y * SPR_SZ + x, px) + spr_px[base + y * SPR_SZ + x] = px } } mem_free(png_px) @@ -344,7 +344,7 @@ fn rt_draw_sprite(id: int, px: int, py: int) -> void { let base = id * SPR_SZ * SPR_SZ for y in 0 .. SPR_SZ { for x in 0 .. SPR_SZ { - let p = peek32(spr_px, base + y * SPR_SZ + x) + let p = spr_px[base + y * SPR_SZ + x] if ((p >> 24) & 255) != 0 { rt_put_px(px + x, py + y, (p & 16777215)) } @@ -359,7 +359,7 @@ fn rt_draw_sprite_scaled(id: int, px: int, py: int, sc: int) -> void { let base = id * SPR_SZ * SPR_SZ for y in 0 .. SPR_SZ { for x in 0 .. SPR_SZ { - let p = peek32(spr_px, base + y * SPR_SZ + x) + let p = spr_px[base + y * SPR_SZ + x] if ((p >> 24) & 255) != 0 { rt_fill_rect(px + x * sc, py + y * sc, sc, sc, (p & 16777215)) } @@ -379,7 +379,7 @@ fn rt_sprites_load(path: str) -> void { let d = rt_read_file(path) if (d == null) { spr_n = 0; return } let size = rt_file_len - let pal = mem_alloc(128 * 4) + let pal: words = mem_alloc(128 * 4) mem_set(pal, 0, 128 * 4) var cur = 0 - 1 var row = 0 @@ -400,7 +400,7 @@ fn rt_sprites_load(path: str) -> void { let hv = rt_hexval(d[start + 6 + k]) if hv >= 0 { v = v * 16 + hv } } - if ch < 128 { poke32(pal, ch, ((255 << 24) | v)) } + if ch < 128 { pal[ch] = ((255 << 24) | v) } } if c0 == 115 { # 's' — "spr" starts a new sprite cur = 0 - 1 @@ -418,8 +418,7 @@ fn rt_sprites_load(path: str) -> void { if row < SPR_SZ { for x in 0 .. SPR_SZ { if x < len { - poke32(spr_px, cur * SPR_SZ * SPR_SZ + row * SPR_SZ + x, - peek32(pal, (d[start + x] & 127))) + spr_px[cur * SPR_SZ * SPR_SZ + row * SPR_SZ + x] = pal[(d[start + x] & 127)] } } row = row + 1 diff --git a/runtime/native/inflate.ludic b/runtime/native/inflate.ludic index 0db47880..932347e4 100644 --- a/runtime/native/inflate.ludic +++ b/runtime/native/inflate.ludic @@ -53,40 +53,40 @@ fn z_table_new(nsym: int) -> ptr { } # lengths[i] = code length of symbol i (0 = symbol unused) -fn z_table_build(table: ptr, lengths: ptr, n: int) -> void { +fn z_table_build(table: words, lengths: words, n: int) -> void { for i in 0 .. 16 { - poke32(table, i, 0) + table[i] = 0 } for s in 0 .. n { - let l = peek32(lengths, s) - poke32(table, l, peek32(table, l) + 1) + let l = lengths[s] + table[l] = table[l] + 1 } - poke32(table, 0, 0) # length 0 means "not present" + table[0] = 0 # length 0 means "not present" # offset of each length's first symbol - let offs = mem_alloc(16 * 4) - poke32(offs, 1, 0) + let offs: words = mem_alloc(16 * 4) + offs[1] = 0 for l in 1 .. 15 { - poke32(offs, l + 1, peek32(offs, l) + peek32(table, l)) + offs[l + 1] = offs[l] + table[l] } for s in 0 .. n { - let l = peek32(lengths, s) + let l = lengths[s] if l != 0 { - poke32(table, 16 + peek32(offs, l), s) - poke32(offs, l, peek32(offs, l) + 1) + table[16 + offs[l]] = s + offs[l] = offs[l] + 1 } } mem_free(offs) } -fn z_decode(table: ptr) -> int { +fn z_decode(table: words) -> int { var code = 0 var first = 0 var index = 0 for len in 1 .. 16 { code = (code | z_bits(1)) - let count = peek32(table, len) + let count = table[len] if code - first < count { - return peek32(table, 16 + index + (code - first)) + return table[16 + index + (code - first)] } index = index + count first = ((first + count) << 1) @@ -173,13 +173,13 @@ fn z_codes(out: ptr, at: int, cap: int, lit: ptr, dist: ptr) -> int { } fn z_fixed_tables(lit: ptr, dist: ptr) -> void { - let lengths = mem_alloc(288 * 4) - for i in 0 .. 144 { poke32(lengths, i, 8) } - for i in 144 .. 256 { poke32(lengths, i, 9) } - for i in 256 .. 280 { poke32(lengths, i, 7) } - for i in 280 .. 288 { poke32(lengths, i, 8) } + let lengths: words = mem_alloc(288 * 4) + for i in 0 .. 144 { lengths[i] = 8 } + for i in 144 .. 256 { lengths[i] = 9 } + for i in 256 .. 280 { lengths[i] = 7 } + for i in 280 .. 288 { lengths[i] = 8 } z_table_build(lit, lengths, 288) - for i in 0 .. 30 { poke32(lengths, i, 5) } + for i in 0 .. 30 { lengths[i] = 5 } z_table_build(dist, lengths, 30) mem_free(lengths) } @@ -191,13 +191,13 @@ fn z_dynamic_tables(lit: ptr, dist: ptr) -> int { if nlen > 286 { return 0 } if ndist > 30 { return 0 } - let lengths = mem_alloc(320 * 4) - for i in 0 .. 19 { poke32(lengths, i, 0) } + let lengths: words = mem_alloc(320 * 4) + for i in 0 .. 19 { lengths[i] = 0 } # the code-length alphabet is transmitted in this fixed permutation # 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 — biased by '0' so it is one literal let order = "@AB08796:5;4<3=2>1?" for i in 0 .. ncode { - poke32(lengths, order[i] - 48, z_bits(3)) + lengths[order[i] - 48] = z_bits(3) } let clen = z_table_new(19) z_table_build(clen, lengths, 19) @@ -207,7 +207,7 @@ fn z_dynamic_tables(lit: ptr, dist: ptr) -> int { let sym = z_decode(clen) if sym < 0 { return 0 } if sym < 16 { - poke32(lengths, n, sym) + lengths[n] = sym n = n + 1 } if sym >= 16 { @@ -215,14 +215,14 @@ fn z_dynamic_tables(lit: ptr, dist: ptr) -> int { var rep = 0 if sym == 16 { if n == 0 { return 0 } - prev = peek32(lengths, n - 1) + prev = lengths[n - 1] rep = 3 + z_bits(2) } if sym == 17 { rep = 3 + z_bits(3) } if sym == 18 { rep = 11 + z_bits(7) } for k in 0 .. rep { if n < 320 { - poke32(lengths, n, prev) + lengths[n] = prev n = n + 1 } } @@ -230,8 +230,8 @@ fn z_dynamic_tables(lit: ptr, dist: ptr) -> int { } z_table_build(lit, lengths, nlen) # the distance lengths follow the literal ones in the same buffer - let dl = mem_alloc(32 * 4) - for i in 0 .. ndist { poke32(dl, i, peek32(lengths, nlen + i)) } + let dl: words = mem_alloc(32 * 4) + for i in 0 .. ndist { dl[i] = lengths[nlen + i] } z_table_build(dist, dl, ndist) mem_free(dl) mem_free(lengths) diff --git a/runtime/native/truetype.ludic b/runtime/native/truetype.ludic index 66239951..bcc43ef4 100644 --- a/runtime/native/truetype.ludic +++ b/runtime/native/truetype.ludic @@ -19,26 +19,26 @@ const TT_GC: int = 512 # glyph cache entries # ---- per-font tables (parallel arrays; index = font id) ------------------- 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_size: words = null +var tt_upem: words = null +var tt_nglyf: words = null +var tt_locfm: words = null +var tt_nhm: words = null +var tt_asc: words = null +var tt_desc: words = null +var tt_gap: words = null +var tt_glyf: words = null +var tt_loca: words = null +var tt_hmtx: words = null +var tt_cmap: words = null +var tt_cfmt: words = null var tt_n: int = 0 # ---- outline + edge scratch (reused for every glyph) ---------------------- var ol_x: ptr = null var ol_y: ptr = null -var ol_on: ptr = null -var ol_ends: ptr = null +var ol_on: words = null +var ol_ends: words = null var ol_n: int = 0 var ol_ne: int = 0 @@ -49,18 +49,18 @@ var ed_y1: ptr = null var ed_n: int = 0 var sc_x: ptr = null # scanline crossings -var sc_d: ptr = null +var sc_d: words = null # ---- glyph cache ---------------------------------------------------------- -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_used: words = null +var gc_font: words = null +var gc_cp: words = null +var gc_px: words = null +var gc_w: words = null +var gc_h: words = null +var gc_ox: words = null +var gc_oy: words = null +var gc_adv: words = null var gc_bmp: ptr = null fn rt_tt_init() -> void { @@ -139,8 +139,8 @@ fn tt_find_table(d: ptr, base: int, a: int, b: int, c: int, e: int) -> int { # pick the most capable Unicode subtable, as the C loader did fn tt_pick_cmap(id: int, d: ptr, co: int) -> void { - poke32(tt_cmap, id, 0 - 1) - poke32(tt_cfmt, id, 0) + tt_cmap[id] = 0 - 1 + tt_cfmt[id] = 0 if co < 0 { return } let n = tt_u16(d, co + 2) var best = 0 - 1 @@ -162,8 +162,8 @@ fn tt_pick_cmap(id: int, d: ptr, co: int) -> void { } } if best < 0 { return } - poke32(tt_cmap, id, best) - poke32(tt_cfmt, id, tt_u16(d, best)) + tt_cmap[id] = best + tt_cfmt[id] = tt_u16(d, best) } fn rt_font_load(path: str) -> int { @@ -194,19 +194,19 @@ fn rt_font_load(path: str) -> int { let id = tt_n tt_n = tt_n + 1 pokep(tt_data, id, d) - poke32(tt_size, id, size) + tt_size[id] = size var upem = tt_u16(d, head + 18) if upem <= 0 { upem = 1000 } - poke32(tt_upem, id, upem) - poke32(tt_locfm, id, tt_i16(d, head + 50)) - poke32(tt_nglyf, id, tt_u16(d, maxp + 4)) - poke32(tt_asc, id, tt_i16(d, hhea + 4)) - poke32(tt_desc, id, tt_i16(d, hhea + 6)) - poke32(tt_gap, id, tt_i16(d, hhea + 8)) - poke32(tt_nhm, id, tt_u16(d, hhea + 34)) - poke32(tt_glyf, id, glyf) - poke32(tt_loca, id, loca) - poke32(tt_hmtx, id, hmtx) + tt_upem[id] = upem + tt_locfm[id] = tt_i16(d, head + 50) + tt_nglyf[id] = tt_u16(d, maxp + 4) + tt_asc[id] = tt_i16(d, hhea + 4) + tt_desc[id] = tt_i16(d, hhea + 6) + tt_gap[id] = tt_i16(d, hhea + 8) + tt_nhm[id] = tt_u16(d, hhea + 34) + tt_glyf[id] = glyf + tt_loca[id] = loca + tt_hmtx[id] = hmtx tt_pick_cmap(id, d, tt_find_table(d, base, 99, 109, 97, 112)) return id } @@ -214,9 +214,9 @@ fn rt_font_load(path: str) -> int { # ---- codepoint -> glyph id ------------------------------------------------ fn tt_glyph_index(id: int, cp: int) -> int { let d = peekp(tt_data, id) - let s = peek32(tt_cmap, id) + let s = tt_cmap[id] if s < 0 { return 0 } - let fmt = peek32(tt_cfmt, id) + let fmt = tt_cfmt[id] if fmt == 4 { if cp > 65535 { return 0 } @@ -263,8 +263,8 @@ fn tt_glyph_index(id: int, cp: int) -> int { fn tt_advance(id: int, gid: int) -> int { let d = peekp(tt_data, id) - let hmtx = peek32(tt_hmtx, id) - let n = peek32(tt_nhm, id) + let hmtx = tt_hmtx[id] + let n = tt_nhm[id] if gid < n { return tt_u16(d, hmtx + gid * 4) } return tt_u16(d, hmtx + (n - 1) * 4) } @@ -274,33 +274,33 @@ fn ol_pt(x: fixed, y: fixed, on: int) -> void { if ol_n >= TT_PTS { return } pokef(ol_x, ol_n, x) pokef(ol_y, ol_n, y) - poke32(ol_on, ol_n, on) + ol_on[ol_n] = on ol_n = ol_n + 1 } fn tt_glyph_start(id: int, gid: int) -> int { let d = peekp(tt_data, id) - let loca = peek32(tt_loca, id) - if peek32(tt_locfm, id) == 0 { return tt_u16(d, loca + gid * 2) * 2 } + let loca = tt_loca[id] + if tt_locfm[id] == 0 { return tt_u16(d, loca + gid * 2) * 2 } return tt_u32(d, loca + gid * 4) } fn tt_glyph_end(id: int, gid: int) -> int { let d = peekp(tt_data, id) - let loca = peek32(tt_loca, id) - if peek32(tt_locfm, id) == 0 { return tt_u16(d, loca + (gid + 1) * 2) * 2 } + let loca = tt_loca[id] + if tt_locfm[id] == 0 { return tt_u16(d, loca + (gid + 1) * 2) * 2 } return tt_u32(d, loca + (gid + 1) * 4) } # Append glyph `gid`, transformed by [a b c e] + (dx,dy), to the outline. fn tt_load_outline(id: int, gid: int, a: fixed, b: fixed, c: fixed, e: fixed, dx: fixed, dy: fixed, depth: int) -> void { if gid < 0 { return } - if gid >= peek32(tt_nglyf, id) { return } + if gid >= tt_nglyf[id] { return } if depth > 5 { return } let goff = tt_glyph_start(id, gid) let gend = tt_glyph_end(id, gid) if goff >= gend { return } let d = peekp(tt_data, id) - let g = peek32(tt_glyf, id) + goff + let g = tt_glyf[id] + goff let nc = tt_i16(d, g) if nc >= 0 { @@ -327,8 +327,8 @@ fn tt_load_outline(id: int, gid: int, a: fixed, b: fixed, c: fixed, e: fixed, dx } } - let xs = mem_alloc((npts + 1) * 4) - let ys = mem_alloc((npts + 1) * 4) + let xs: words = mem_alloc((npts + 1) * 4) + let ys: words = mem_alloc((npts + 1) * 4) var xv = 0 for k in 0 .. npts { let fl = flags[k] @@ -339,7 +339,7 @@ fn tt_load_outline(id: int, gid: int, a: fixed, b: fixed, c: fixed, e: fixed, dx } else { if (fl & 16) == 0 { xv = xv + tt_i16(d, p); p = p + 2 } } - poke32(xs, k, xv) + xs[k] = xv } var yv = 0 for k in 0 .. npts { @@ -351,19 +351,19 @@ fn tt_load_outline(id: int, gid: int, a: fixed, b: fixed, c: fixed, e: fixed, dx } else { if (fl & 32) == 0 { yv = yv + tt_i16(d, p); p = p + 2 } } - poke32(ys, k, yv) + ys[k] = yv } var start = 0 for ci in 0 .. nc { let last = tt_u16(d, endpts + ci * 2) for k in start .. last + 1 { - let X = fx(peek32(xs, k)) - let Y = fx(peek32(ys, k)) + let X = fx(xs[k]) + let Y = fx(ys[k]) ol_pt(a * X + c * Y + dx, b * X + e * Y + dy, (flags[k] & 1)) } if ol_ne < 256 { - poke32(ol_ends, ol_ne, ol_n) + ol_ends[ol_ne] = ol_n ol_ne = ol_ne + 1 } start = last + 1 diff --git a/runtime/native/truetype_raster.ludic b/runtime/native/truetype_raster.ludic index 13e26ec8..aa3753a4 100644 --- a/runtime/native/truetype_raster.ludic +++ b/runtime/native/truetype_raster.ludic @@ -52,7 +52,7 @@ var gr_oy: int = 0 var gr_adv: int = 0 fn tt_raster(id: int, gid: int, px: int) -> ptr { - let upem = peek32(tt_upem, id) + let upem = tt_upem[id] let scale = fx(px) / upem gr_adv = flr(fx(tt_advance(id, gid)) * scale + 0.5) gr_w = 0 @@ -95,12 +95,12 @@ fn tt_raster(id: int, gid: int, px: int) -> ptr { # build edges in supersample space (y grows downward) var start = 0 for ci in 0 .. ol_ne { - let end = peek32(ol_ends, ci) + let end = ol_ends[ci] let cnt = end - start if cnt >= 2 { var first_on = 0 - 1 for i in 0 .. cnt { - if first_on < 0 { if peek32(ol_on, start + i) == 1 { first_on = i } } + if first_on < 0 { if ol_on[start + i] == 1 { first_on = i } } } var sx = 0.0 var sy = 0.0 @@ -122,7 +122,7 @@ fn tt_raster(id: int, gid: int, px: int) -> ptr { let i = (first_on + 1 + step) % cnt let ix = (peekf(ol_x, start + i) * scale - fx(x0)) * TT_SS let iy = (fx(y1) - peekf(ol_y, start + i) * scale) * TT_SS - if peek32(ol_on, start + i) == 1 { + if ol_on[start + i] == 1 { ed_add(curx, cury, ix, iy) curx = ix cury = iy @@ -132,7 +132,7 @@ fn tt_raster(id: int, gid: int, px: int) -> ptr { let jy = (fx(y1) - peekf(ol_y, start + j) * scale) * TT_SS var ex = jx var ey = jy - if peek32(ol_on, start + j) == 1 { + if ol_on[start + j] == 1 { step = step + 1 } else { ex = (ix + jx) / 2 # implied on-curve midpoint @@ -167,37 +167,37 @@ fn tt_raster(id: int, gid: int, px: int) -> ptr { if hit == 1 { let t = (yc - ya) / (yb - ya) pokef(sc_x, m, peekf(ed_x0, i) + t * (peekf(ed_x1, i) - peekf(ed_x0, i))) - if yb > ya { poke32(sc_d, m, 1) } else { poke32(sc_d, m, 0 - 1) } + if yb > ya { sc_d[m] = 1 } else { sc_d[m] = 0 - 1 } m = m + 1 } } # insertion sort the crossings by x for i in 1 .. m { let kx = peekf(sc_x, i) - let kd = peek32(sc_d, i) + let kd = sc_d[i] var j = i - 1 var placed = 0 while j >= 0 { if peekf(sc_x, j) > kx { pokef(sc_x, j + 1, peekf(sc_x, j)) - poke32(sc_d, j + 1, peek32(sc_d, j)) + sc_d[j + 1] = sc_d[j] j = j - 1 } else { pokef(sc_x, j + 1, kx) - poke32(sc_d, j + 1, kd) + sc_d[j + 1] = kd placed = 1 j = 0 - 1 } } if placed == 0 { pokef(sc_x, 0, kx) - poke32(sc_d, 0, kd) + sc_d[0] = kd } } var wind = 0 let oy = sy / TT_SS for i in 0 .. m - 1 { - wind = wind + peek32(sc_d, i) + wind = wind + sc_d[i] if wind != 0 { var xa = peekf(sc_x, i) var xb = peekf(sc_x, i + 1) @@ -239,30 +239,30 @@ fn tt_glyph_get(font: int, cp: int, px: int) -> int { let h = gc_hash(font, cp, px) for k in 0 .. 8 { let s = ((h + k) & (TT_GC - 1)) - if peek32(gc_used, s) == 1 { - if peek32(gc_font, s) == font { - if peek32(gc_cp, s) == cp { - if peek32(gc_px, s) == px { return s } + if gc_used[s] == 1 { + if gc_font[s] == font { + if gc_cp[s] == cp { + if gc_px[s] == px { return s } } } } } let s = h - if peek32(gc_used, s) == 1 { + if gc_used[s] == 1 { let old = peekp(gc_bmp, s) if (old == null) == false { mem_free(old) } } let bmp = tt_raster(font, tt_glyph_index(font, cp), px) pokep(gc_bmp, s, bmp) - poke32(gc_used, s, 1) - poke32(gc_font, s, font) - poke32(gc_cp, s, cp) - poke32(gc_px, s, px) - poke32(gc_w, s, gr_w) - poke32(gc_h, s, gr_h) - poke32(gc_ox, s, gr_ox) - poke32(gc_oy, s, gr_oy) - poke32(gc_adv, s, gr_adv) + gc_used[s] = 1 + gc_font[s] = font + gc_cp[s] = cp + gc_px[s] = px + gc_w[s] = gr_w + gc_h[s] = gr_h + gc_ox[s] = gr_ox + gc_oy[s] = gr_oy + gc_adv[s] = gr_adv return s } @@ -313,11 +313,11 @@ fn tt_blit(bmp: ptr, w: int, h: int, dx: int, dy: int, colour: int) -> void { let pxx = dx + x if pxx >= 0 { if pxx < rt_fbw { - let d = peek32(rt_fb, py * rt_fbw + pxx) + let d = rt_fb[py * rt_fbw + pxx] let rr = (cr * a + ((d >> 16) & 255) * (255 - a)) / 255 let rg = (cg * a + ((d >> 8) & 255) * (255 - a)) / 255 let rb = (cb * a + (d & 255) * (255 - a)) / 255 - poke32(rt_fb, py * rt_fbw + pxx, (((rr << 16) | (rg << 8)) | rb)) + rt_fb[py * rt_fbw + pxx] = (((rr << 16) | (rg << 8)) | rb) } } } @@ -331,10 +331,10 @@ fn rt_text_ttf(font: int, x: int, y: int, s: str, colour: int, px: int) -> void if font < 0 { return } if font >= tt_n { return } if px <= 0 { return } - let upem = peek32(tt_upem, font) + let upem = tt_upem[font] let scale = fx(px) / upem - var baseline = y + flr(fx(peek32(tt_asc, font)) * scale + 0.5) - let lineh = flr(fx(peek32(tt_asc, font) - peek32(tt_desc, font) + peek32(tt_gap, font)) * scale + 0.5) + var baseline = y + flr(fx(tt_asc[font]) * scale + 0.5) + let lineh = flr(fx(tt_asc[font] - tt_desc[font] + tt_gap[font]) * scale + 0.5) var penx = x var i = 0 while s[i] != 0 { @@ -345,8 +345,8 @@ fn rt_text_ttf(font: int, x: int, y: int, s: str, colour: int, px: int) -> void baseline = baseline + lineh } else { let g = tt_glyph_get(font, cp, px) - tt_blit(peekp(gc_bmp, g), peek32(gc_w, g), peek32(gc_h, g), penx + peek32(gc_ox, g), baseline - peek32(gc_oy, g), colour) - penx = penx + peek32(gc_adv, g) + tt_blit(peekp(gc_bmp, g), gc_w[g], gc_h[g], penx + gc_ox[g], baseline - gc_oy[g], colour) + penx = penx + gc_adv[g] } } } @@ -365,7 +365,7 @@ fn rt_text_w(font: int, s: str, px: int) -> int { if w > best { best = w } w = 0 } else { - w = w + peek32(gc_adv, tt_glyph_get(font, cp, px)) + w = w + gc_adv[tt_glyph_get(font, cp, px)] } } if w > best { best = w } @@ -375,6 +375,6 @@ fn rt_text_w(font: int, s: str, px: int) -> int { fn rt_text_h(font: int, px: int) -> int { if font < 0 { return 0 } if font >= tt_n { return 0 } - let scale = fx(px) / peek32(tt_upem, font) - return flr(fx(peek32(tt_asc, font) - peek32(tt_desc, font) + peek32(tt_gap, font)) * scale + 0.5) + let scale = fx(px) / tt_upem[font] + return flr(fx(tt_asc[font] - tt_desc[font] + tt_gap[font]) * scale + 0.5) } diff --git a/runtime/native/ui.ludic b/runtime/native/ui.ludic index 395fcb10..bea7ef4b 100644 --- a/runtime/native/ui.ludic +++ b/runtime/native/ui.ludic @@ -45,33 +45,33 @@ const K_VISIBLE: int = 18 const K_IMG: int = 19 const K_SKIN: int = 20 -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_type: words = null +var ui_parent: words = null +var ui_w: words = null +var ui_h: words = null +var ui_x: words = null +var ui_y: words = null +var ui_haspos: words = null +var ui_pad: words = null +var ui_gap: words = null +var ui_bg: words = null +var ui_fg: words = null +var ui_border: words = null +var ui_align: words = null +var ui_grow: words = null +var ui_font: words = null +var ui_size: words = null +var ui_skin: words = null +var ui_inset: words = null +var ui_img: words = null +var ui_focusable: words = null +var ui_rx: words = null +var ui_ry: words = null +var ui_rw: words = null +var ui_rh: words = null +var ui_visible: words = null +var ui_fired: words = null +var ui_hasdyn: words = null var ui_dyn: ptr = null # UI_MAX * 96 bytes var ui_text: ptr = null # UI_MAX static string pointers @@ -115,29 +115,29 @@ fn rt_ui_init() -> void { fn rt_ui_reset(n: int) -> void { ui_n = n for i in 0 .. n { - poke32(ui_type, i, 0) - poke32(ui_parent, i, 0 - 1) - poke32(ui_w, i, 0) - poke32(ui_h, i, 0) - poke32(ui_x, i, 0) - poke32(ui_y, i, 0) - poke32(ui_haspos, i, 0) - poke32(ui_pad, i, 0) - poke32(ui_gap, i, 0) - poke32(ui_bg, i, 0 - 1) - poke32(ui_fg, i, 0 - 1) - poke32(ui_border, i, 0 - 1) - poke32(ui_align, i, 0 - 1) - poke32(ui_grow, i, 0) - poke32(ui_font, i, 0 - 1) - poke32(ui_size, i, 8) - poke32(ui_skin, i, 0 - 1) - poke32(ui_inset, i, 6) - poke32(ui_img, i, 0 - 1) - poke32(ui_focusable, i, 0) - poke32(ui_visible, i, 1) - poke32(ui_fired, i, 0) - poke32(ui_hasdyn, i, 0) + ui_type[i] = 0 + ui_parent[i] = 0 - 1 + ui_w[i] = 0 + ui_h[i] = 0 + ui_x[i] = 0 + ui_y[i] = 0 + ui_haspos[i] = 0 + ui_pad[i] = 0 + ui_gap[i] = 0 + ui_bg[i] = 0 - 1 + ui_fg[i] = 0 - 1 + ui_border[i] = 0 - 1 + ui_align[i] = 0 - 1 + ui_grow[i] = 0 + ui_font[i] = 0 - 1 + ui_size[i] = 8 + ui_skin[i] = 0 - 1 + ui_inset[i] = 6 + ui_img[i] = 0 - 1 + ui_focusable[i] = 0 + ui_visible[i] = 1 + ui_fired[i] = 0 + ui_hasdyn[i] = 0 pokep(ui_text, i, null) } } @@ -145,27 +145,27 @@ fn rt_ui_reset(n: int) -> void { fn rt_ui_set(i: int, k: int, v: int) -> void { if i < 0 { return } if i >= UI_MAX { return } - if k == K_TYPE { poke32(ui_type, i, v) } - if k == K_PARENT { poke32(ui_parent, i, v) } - if k == K_W { poke32(ui_w, i, v) } - if k == K_H { poke32(ui_h, i, v) } - if k == K_X { poke32(ui_x, i, v) } - if k == K_Y { poke32(ui_y, i, v) } - if k == K_HASPOS { poke32(ui_haspos, i, v) } - if k == K_PAD { poke32(ui_pad, i, v) } - if k == K_GAP { poke32(ui_gap, i, v) } - if k == K_BG { poke32(ui_bg, i, v) } - if k == K_FG { poke32(ui_fg, i, v) } - if k == K_BORDER { poke32(ui_border, i, v) } - if k == K_ALIGN { poke32(ui_align, i, v) } - if k == K_GROW { poke32(ui_grow, i, v) } - if k == K_FONT { poke32(ui_font, i, v) } - if k == K_SIZE { poke32(ui_size, i, v) } - if k == K_SKININSET { poke32(ui_inset, i, v) } - if k == K_FOCUSABLE { poke32(ui_focusable, i, v) } - if k == K_VISIBLE { poke32(ui_visible, i, v) } - if k == K_IMG { poke32(ui_img, i, v) } - if k == K_SKIN { poke32(ui_skin, i, v) } + if k == K_TYPE { ui_type[i] = v } + if k == K_PARENT { ui_parent[i] = v } + if k == K_W { ui_w[i] = v } + if k == K_H { ui_h[i] = v } + if k == K_X { ui_x[i] = v } + if k == K_Y { ui_y[i] = v } + if k == K_HASPOS { ui_haspos[i] = v } + if k == K_PAD { ui_pad[i] = v } + if k == K_GAP { ui_gap[i] = v } + if k == K_BG { ui_bg[i] = v } + if k == K_FG { ui_fg[i] = v } + if k == K_BORDER { ui_border[i] = v } + if k == K_ALIGN { ui_align[i] = v } + if k == K_GROW { ui_grow[i] = v } + if k == K_FONT { ui_font[i] = v } + if k == K_SIZE { ui_size[i] = v } + if k == K_SKININSET { ui_inset[i] = v } + if k == K_FOCUSABLE { ui_focusable[i] = v } + if k == K_VISIBLE { ui_visible[i] = v } + if k == K_IMG { ui_img[i] = v } + if k == K_SKIN { ui_skin[i] = v } } fn rt_ui_static_text(i: int, s: str) -> void { @@ -176,7 +176,7 @@ fn rt_ui_static_text(i: int, s: str) -> void { # ---- text helpers: TrueType when a font is loaded, bitmap otherwise ------- fn ui_str(i: int) -> ptr { - if peek32(ui_hasdyn, i) == 1 { return ptr_add(ui_dyn, i * 96) } + if ui_hasdyn[i] == 1 { return ptr_add(ui_dyn, i * 96) } let t = peekp(ui_text, i) if (t == null) { return ptr_add(ui_dyn, i * 96) } return t @@ -222,7 +222,7 @@ fn ui_under(i: int, root: int) -> bool { var k = i while k >= 0 { if k == root { return true } - k = peek32(ui_parent, k) + k = ui_parent[k] } return false } @@ -231,55 +231,55 @@ fn ui_under(i: int, root: int) -> bool { fn ui_measure() -> void { var i = ui_n - 1 while i >= 0 { - if peek32(ui_visible, i) == 0 { - poke32(ui_rw, i, 0) - poke32(ui_rh, i, 0) + if ui_visible[i] == 0 { + ui_rw[i] = 0 + ui_rh[i] = 0 } else { - let t = peek32(ui_type, i) - let pad = peek32(ui_pad, i) + let t = ui_type[i] + let pad = ui_pad[i] var cw = 0 var ch = 0 if t == WT_LABEL { cw = 0 - 1 } if t == WT_BUTTON { cw = 0 - 1 } if cw == 0 - 1 { let s = ui_str(i) - cw = ui_tw(peek32(ui_font, i), s, peek32(ui_size, i)) + 2 * pad - ch = ui_th(peek32(ui_font, i), peek32(ui_size, i)) + 2 * pad + cw = ui_tw(ui_font[i], s, ui_size[i]) + 2 * pad + ch = ui_th(ui_font[i], ui_size[i]) + 2 * pad if t == WT_BUTTON { cw = cw + 10 ch = ch + 6 } } else { if t == WT_IMAGE { - let im = peek32(ui_img, i) + let im = ui_img[i] if im >= 0 { - cw = peek32(img_w, im) - ch = peek32(img_h, im) + cw = img_w[im] + ch = img_h[im] } } else { if t == WT_SPACER { - cw = peek32(ui_w, i) - ch = peek32(ui_h, i) + cw = ui_w[i] + ch = ui_h[i] } else { let dir = ui_dir(t) var mainsz = 0 var cross = 0 var nc = 0 for c in 0 .. ui_n { - if peek32(ui_parent, c) == i { - if peek32(ui_visible, c) == 1 { + if ui_parent[c] == i { + if ui_visible[c] == 1 { if dir == 1 { - mainsz = mainsz + peek32(ui_rh, c) - cross = max(cross, peek32(ui_rw, c)) + mainsz = mainsz + ui_rh[c] + cross = max(cross, ui_rw[c]) } else { - mainsz = mainsz + peek32(ui_rw, c) - cross = max(cross, peek32(ui_rh, c)) + mainsz = mainsz + ui_rw[c] + cross = max(cross, ui_rh[c]) } nc = nc + 1 } } } - if nc > 1 { mainsz = mainsz + peek32(ui_gap, i) * (nc - 1) } + if nc > 1 { mainsz = mainsz + ui_gap[i] * (nc - 1) } mainsz = mainsz + 2 * pad cross = cross + 2 * pad if dir == 1 { @@ -292,20 +292,20 @@ fn ui_measure() -> void { } } } - var rw = peek32(ui_w, i) - var rh = peek32(ui_h, i) + var rw = ui_w[i] + var rh = ui_h[i] if rw == 0 { rw = cw } if rh == 0 { rh = ch } - poke32(ui_rw, i, rw) - poke32(ui_rh, i, rh) + ui_rw[i] = rw + ui_rh[i] = rh } i = i - 1 } } fn ui_eff_align(child: int, parent: int) -> int { - if peek32(ui_align, child) >= 0 { return peek32(ui_align, child) } - if peek32(ui_align, parent) >= 0 { return peek32(ui_align, parent) } + if ui_align[child] >= 0 { return ui_align[child] } + if ui_align[parent] >= 0 { return ui_align[parent] } return 0 } diff --git a/runtime/native/ui_draw.ludic b/runtime/native/ui_draw.ludic index 9b10e87c..1559ac70 100644 --- a/runtime/native/ui_draw.ludic +++ b/runtime/native/ui_draw.ludic @@ -3,24 +3,24 @@ # ---- arrange: rects, parents before children ------------------------------ fn ui_arrange(i: int, x: int, y: int) -> void { - poke32(ui_rx, i, x) - poke32(ui_ry, i, y) - let t = peek32(ui_type, i) + ui_rx[i] = x + ui_ry[i] = y + let t = ui_type[i] if ui_is_container(t) == false { return } let dir = ui_dir(t) - let pad = peek32(ui_pad, i) - let gap = peek32(ui_gap, i) - let innerw = peek32(ui_rw, i) - 2 * pad - let innerh = peek32(ui_rh, i) - 2 * pad + let pad = ui_pad[i] + let gap = ui_gap[i] + let innerw = ui_rw[i] - 2 * pad + let innerh = ui_rh[i] - 2 * pad var total = 0 var ng = 0 var grows = 0 for c in 0 .. ui_n { - if peek32(ui_parent, c) == i { - if peek32(ui_visible, c) == 1 { - if dir == 1 { total = total + peek32(ui_rh, c) } else { total = total + peek32(ui_rw, c) } + if ui_parent[c] == i { + if ui_visible[c] == 1 { + if dir == 1 { total = total + ui_rh[c] } else { total = total + ui_rw[c] } ng = ng + 1 - grows = grows + peek32(ui_grow, c) + grows = grows + ui_grow[c] } } } @@ -31,18 +31,18 @@ fn ui_arrange(i: int, x: int, y: int) -> void { var cx = x + pad var cy = y + pad for c in 0 .. ui_n { - if peek32(ui_parent, c) == i { - if peek32(ui_visible, c) == 1 { - var kw = peek32(ui_rw, c) - var kh = peek32(ui_rh, c) - if peek32(ui_grow, c) != 0 { + if ui_parent[c] == i { + if ui_visible[c] == 1 { + var kw = ui_rw[c] + var kh = ui_rh[c] + if ui_grow[c] != 0 { if grows > 0 { if dir == 1 { kh = kh + extra / grows } else { kw = kw + extra / grows } } } let al = ui_eff_align(c, i) - poke32(ui_rw, c, kw) - poke32(ui_rh, c, kh) + ui_rw[c] = kw + ui_rh[c] = kh if dir == 1 { var ax = x + pad if al == 1 { ax = x + pad + (innerw - kw) / 2 } @@ -64,11 +64,11 @@ fn ui_arrange(i: int, x: int, y: int) -> void { fn ui_layout() -> void { if ui_active < 0 { return } ui_measure() - var px = (rt_fbw - peek32(ui_rw, ui_active)) / 2 - var py = (rt_fbh - peek32(ui_rh, ui_active)) / 2 - if peek32(ui_haspos, ui_active) == 1 { - px = peek32(ui_x, ui_active) - py = peek32(ui_y, ui_active) + var px = (rt_fbw - ui_rw[ui_active]) / 2 + var py = (rt_fbh - ui_rh[ui_active]) / 2 + if ui_haspos[ui_active] == 1 { + px = ui_x[ui_active] + py = ui_y[ui_active] } ui_arrange(ui_active, px, py) } @@ -85,77 +85,77 @@ fn ui_lighten(c: int) -> int { } fn ui_draw_node(i: int) -> void { - if peek32(ui_visible, i) == 0 { return } - let t = peek32(ui_type, i) - let rx = peek32(ui_rx, i) - let ry = peek32(ui_ry, i) - let rw = peek32(ui_rw, i) - let rh = peek32(ui_rh, i) - let skin = peek32(ui_skin, i) + if ui_visible[i] == 0 { return } + let t = ui_type[i] + let rx = ui_rx[i] + let ry = ui_ry[i] + let rw = ui_rw[i] + let rh = ui_rh[i] + let skin = ui_skin[i] var focused = 0 if i == ui_focus { focused = 1 } if t == WT_PANEL { if skin >= 0 { - rt_draw_9slice(skin, rx, ry, rw, rh, peek32(ui_inset, i)) + rt_draw_9slice(skin, rx, ry, rw, rh, ui_inset[i]) } else { - if peek32(ui_bg, i) >= 0 { rt_fill_rect(rx, ry, rw, rh, peek32(ui_bg, i)) } - if peek32(ui_border, i) >= 0 { rt_frame_rect(rx, ry, rw, rh, peek32(ui_border, i)) } + if ui_bg[i] >= 0 { rt_fill_rect(rx, ry, rw, rh, ui_bg[i]) } + if ui_border[i] >= 0 { rt_frame_rect(rx, ry, rw, rh, ui_border[i]) } } } if t == WT_BUTTON { - var bg = peek32(ui_bg, i) + var bg = ui_bg[i] if bg < 0 { bg = 0x2a2a3a } if focused == 1 { bg = ui_lighten(bg) } if skin >= 0 { - rt_draw_9slice(skin, rx, ry, rw, rh, peek32(ui_inset, i)) + rt_draw_9slice(skin, rx, ry, rw, rh, ui_inset[i]) } else { rt_fill_rect(rx, ry, rw, rh, bg) } - var bc = peek32(ui_border, i) + var bc = ui_border[i] if bc < 0 { bc = 0x555577 } if focused == 1 { bc = 0xffff00 } rt_frame_rect(rx, ry, rw, rh, bc) let s = ui_str(i) - var fg = peek32(ui_fg, i) + var fg = ui_fg[i] if fg < 0 { fg = 0xffffff } - let font = peek32(ui_font, i) - let size = peek32(ui_size, i) + let font = ui_font[i] + let size = ui_size[i] ui_draw_text(font, rx + (rw - ui_tw(font, s, size)) / 2, ry + (rh - ui_th(font, size)) / 2, s, fg, size) } if t == WT_LABEL { let s = ui_str(i) - var fg = peek32(ui_fg, i) + var fg = ui_fg[i] if fg < 0 { fg = 0xffffff } - let font = peek32(ui_font, i) - let size = peek32(ui_size, i) - let pad = peek32(ui_pad, i) + let font = ui_font[i] + let size = ui_size[i] + let pad = ui_pad[i] let tw = ui_tw(font, s, size) var tx = rx + pad - let al = peek32(ui_align, i) + let al = ui_align[i] if al == 1 { tx = rx + (rw - tw) / 2 } if al == 2 { tx = rx + rw - pad - tw } ui_draw_text(font, tx, ry + pad, s, fg, size) } if t == WT_IMAGE { - if peek32(ui_img, i) >= 0 { rt_draw_image_scaled(peek32(ui_img, i), rx, ry, rw, rh) } + if ui_img[i] >= 0 { rt_draw_image_scaled(ui_img[i], rx, ry, rw, rh) } } for c in 0 .. ui_n { - if peek32(ui_parent, c) == i { ui_draw_node(c) } + if ui_parent[c] == i { ui_draw_node(c) } } } # ---- focus and activation ------------------------------------------------- -var ui_fl: ptr = null +var ui_fl: words = null fn ui_focusables() -> int { 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 { - if peek32(ui_visible, i) == 1 { + if ui_focusable[i] == 1 { + if ui_visible[i] == 1 { if ui_under(i, ui_active) { - poke32(ui_fl, n, i) + ui_fl[n] = i n = n + 1 } } @@ -168,12 +168,12 @@ fn rt_ui_open(root: int) -> void { ui_active = root let n = ui_focusables() ui_focus = 0 - 1 - if n > 0 { ui_focus = peek32(ui_fl, 0) } + if n > 0 { ui_focus = ui_fl[0] } } fn rt_ui_tick(k: int) -> void { if ui_active < 0 { return } - for i in 0 .. ui_n { poke32(ui_fired, i, 0) } + for i in 0 .. ui_n { ui_fired[i] = 0 } ui_layout() let n = ui_focusables() if n == 0 { @@ -182,23 +182,23 @@ fn rt_ui_tick(k: int) -> void { } var cur = 0 - 1 for i in 0 .. n { - if peek32(ui_fl, i) == ui_focus { cur = i } + if ui_fl[i] == ui_focus { cur = i } } if cur < 0 { cur = 0 - ui_focus = peek32(ui_fl, 0) + ui_focus = ui_fl[0] } if k == 119 { # 'w' cur = (cur - 1 + n) % n - ui_focus = peek32(ui_fl, cur) + ui_focus = ui_fl[cur] } if k == 115 { # 's' cur = (cur + 1) % n - ui_focus = peek32(ui_fl, cur) + ui_focus = ui_fl[cur] } - if k == 32 { poke32(ui_fired, ui_focus, 1) } - if k == 10 { poke32(ui_fired, ui_focus, 1) } - if k == 13 { poke32(ui_fired, ui_focus, 1) } + if k == 32 { ui_fired[ui_focus] = 1 } + if k == 10 { ui_fired[ui_focus] = 1 } + if k == 13 { ui_fired[ui_focus] = 1 } } fn rt_ui_render() -> void { @@ -211,7 +211,7 @@ fn rt_ui_render() -> void { fn rt_ui_clicked(id: int) -> bool { if id < 0 { return false } if id >= ui_n { return false } - return peek32(ui_fired, id) == 1 + return ui_fired[id] == 1 } fn rt_ui_set_text(id: int, s: str) -> void { @@ -229,7 +229,7 @@ fn rt_ui_set_text(id: int, s: str) -> void { } } ui_dyn[base + i] = 0 - poke32(ui_hasdyn, id, 1) + ui_hasdyn[id] = 1 } fn rt_ui_set_int(id: int, n: int) -> void { @@ -263,7 +263,7 @@ fn rt_ui_set_int(id: int, n: int) -> void { } } ui_dyn[base + at] = 0 - poke32(ui_hasdyn, id, 1) + ui_hasdyn[id] = 1 } fn rt_ui_focus(id: int) -> void { @@ -279,5 +279,5 @@ fn rt_ui_focused() -> int { fn rt_ui_visible(id: int, v: int) -> void { if id < 0 { return } if id >= ui_n { return } - poke32(ui_visible, id, v) + ui_visible[id] = v } diff --git a/selfhost/emit_addr.ludic b/selfhost/emit_addr.ludic index d7c82c41..8f64a81b 100644 --- a/selfhost/emit_addr.ludic +++ b/selfhost/emit_addr.ludic @@ -21,9 +21,14 @@ fn emit_member_addr(e: Node) -> ptr { # address of `base[index]` (slices only in this subset) fn emit_index_addr(e: Node) -> ptr { let base = emit_expr(e.a) - if not is_slice_ty(base.ty) { # a raw ptr/str: address of byte i. + if not is_slice_ty(base.ty) { # a raw pointer: address of element i let bi = emit_expr(e.b) # (evaluate index first — it may set g_addr_ty) - let r = emit_bind(`getelementptr inbounds i8, ptr {base.code}, i32 {bi.code}`) + if (base.ty == "words") { # a `words` buffer: 32-bit elements + let rw = emit_bind(`getelementptr inbounds i32, ptr {base.code}, i32 {bi.code}`) + g_addr_ty = "int" + return rw + } + let r = emit_bind(`getelementptr inbounds i8, ptr {base.code}, i32 {bi.code}`) # a ptr/str: bytes g_addr_ty = "byte" # set last so the caller sees it return r } diff --git a/selfhost/emit_core.ludic b/selfhost/emit_core.ludic index 8ba9d731..705a0b73 100644 --- a/selfhost/emit_core.ludic +++ b/selfhost/emit_core.ludic @@ -54,6 +54,7 @@ fn lbl(pfx: ptr) -> ptr { let r = (pfx + itoa(ll_lbl)); ll_lbl = ll_lbl + 1; r fn llty(t: ptr) -> ptr { if (t == "int") or (t == "bool") or (t == "fixed") { return "i32" } if (t == "byte") { return "i8" } # a single byte (p[i] on a raw ptr) + if (t == "words") { return "ptr" } # a 32-bit-word buffer (w[i] is i32) if (t == "void") { return "void" } return "ptr" } diff --git a/selfhost/emit_intrin.ludic b/selfhost/emit_intrin.ludic index f9722fd6..a03a37a7 100644 --- a/selfhost/emit_intrin.ludic +++ b/selfhost/emit_intrin.ludic @@ -13,7 +13,6 @@ fn is_intrinsic(name: ptr) -> bool { if (name == "os_argc") or (name == "os_arg") or (name == "os_exit") or (name == "file_stderr") { return true } if (name == "file_stdout") { return true } if (name == "os_system") or (name == "os_getenv") { return true } - if (name == "peek32") or (name == "poke32") { return true } return false } # emit " = \n" and return r @@ -87,19 +86,7 @@ fn emit_intrinsic(name: ptr, e: Node) -> Val { return val(emit_bind(`call ptr @getenv(ptr {n})`), "str") } # bitwise ops are the operators & | ^ << >> ~ now (see emit_bin / p_mul). - if (name == "peek32") { - let p = arg_code(e, 0); let i = arg_code(e, 1) - let g = nreg() - emit(" "); emit(g); emit(" = getelementptr inbounds i32, ptr "); emit(p); emit(", i32 "); emit(i); emit("\n") - return val(emit_bind(`load i32, ptr {g}`), "int") - } - if (name == "poke32") { - let p = arg_code(e, 0); let i = arg_code(e, 1); let v = arg_code(e, 2) - let g = nreg() - emit(" "); emit(g); emit(" = getelementptr inbounds i32, ptr "); emit(p); emit(", i32 "); emit(i); emit("\n") - emit(" store i32 "); emit(v); emit(", ptr "); emit(g); emit("\n") - return val("0", "void") - } + # peek32 / poke32 are `words` indexing now: w[i] and w[i] = v (see emit_index_addr). g_intrin_ok = false return val("0", "void") } diff --git a/selfhost/ludicc.seed.ll b/selfhost/ludicc.seed.ll index cccd05f2..f20084da 100644 --- a/selfhost/ludicc.seed.ll +++ b/selfhost/ludicc.seed.ll @@ -320,1401 +320,1388 @@ declare void @win_close() @.str240 = private unnamed_addr constant [4 x i8] c"i32\00" @.str241 = private unnamed_addr constant [5 x i8] c"byte\00" @.str242 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str243 = private unnamed_addr constant [5 x i8] c"void\00" -@.str244 = private unnamed_addr constant [5 x i8] c"void\00" -@.str245 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str246 = private unnamed_addr constant [6 x i8] c"%Cmp_\00" -@.str247 = private unnamed_addr constant [4 x i8] c"int\00" -@.str248 = private unnamed_addr constant [2 x i8] c".\00" -@.str249 = private unnamed_addr constant [2 x i8] c".\00" -@.str250 = private unnamed_addr constant [6 x i8] c"@.str\00" -@.str251 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" -@.str252 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" -@.str253 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" -@.str254 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str255 = private unnamed_addr constant [5 x i8] c"null\00" -@.str256 = private unnamed_addr constant [2 x i8] c"0\00" -@.str257 = private unnamed_addr constant [2 x i8] c"-\00" -@.str258 = private unnamed_addr constant [2 x i8] c"-\00" -@.str259 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str260 = private unnamed_addr constant [5 x i8] c"null\00" -@.str261 = private unnamed_addr constant [2 x i8] c"0\00" -@.str262 = private unnamed_addr constant [34 x i8] c"; Ludic (self-hosted) -> LLVM IR\0A\00" -@.str263 = private unnamed_addr constant [31 x i8] c"declare i32 @printf(ptr, ...)\0A\00" -@.str264 = private unnamed_addr constant [26 x i8] c"declare ptr @malloc(i64)\0A\00" -@.str265 = private unnamed_addr constant [32 x i8] c"declare ptr @realloc(ptr, i64)\0A\00" -@.str266 = private unnamed_addr constant [25 x i8] c"declare void @free(ptr)\0A\00" -@.str267 = private unnamed_addr constant [30 x i8] c"declare ptr @fopen(ptr, ptr)\0A\00" -@.str268 = private unnamed_addr constant [40 x i8] c"declare i64 @fread(ptr, i64, i64, ptr)\0A\00" -@.str269 = private unnamed_addr constant [41 x i8] c"declare i64 @fwrite(ptr, i64, i64, ptr)\0A\00" -@.str270 = private unnamed_addr constant [35 x i8] c"declare i32 @fseek(ptr, i64, i32)\0A\00" -@.str271 = private unnamed_addr constant [25 x i8] c"declare i64 @ftell(ptr)\0A\00" -@.str272 = private unnamed_addr constant [26 x i8] c"declare i32 @fclose(ptr)\0A\00" -@.str273 = private unnamed_addr constant [25 x i8] c"declare void @exit(i32)\0A\00" -@.str274 = private unnamed_addr constant [26 x i8] c"declare i32 @system(ptr)\0A\00" -@.str275 = private unnamed_addr constant [26 x i8] c"declare ptr @getenv(ptr)\0A\00" -@.str276 = private unnamed_addr constant [36 x i8] c"declare ptr @memcpy(ptr, ptr, i64)\0A\00" -@.str277 = private unnamed_addr constant [36 x i8] c"declare ptr @memset(ptr, i32, i64)\0A\00" -@.str278 = private unnamed_addr constant [26 x i8] c"declare i64 @strlen(ptr)\0A\00" -@.str279 = private unnamed_addr constant [24 x i8] c"declare i32 @getchar()\0A\00" -@.str280 = private unnamed_addr constant [27 x i8] c"declare i32 @putchar(i32)\0A\00" -@.str281 = private unnamed_addr constant [24 x i8] c"declare i64 @time(ptr)\0A\00" -@.str282 = private unnamed_addr constant [44 x i8] c"declare void @win_open(i32, i32, i32, ptr)\0A\00" -@.str283 = private unnamed_addr constant [25 x i8] c"declare i32 @win_poll()\0A\00" -@.str284 = private unnamed_addr constant [42 x i8] c"declare void @win_present(ptr, i32, i32)\0A\00" -@.str285 = private unnamed_addr constant [28 x i8] c"declare i32 @win_running()\0A\00" -@.str286 = private unnamed_addr constant [27 x i8] c"declare void @win_close()\0A\00" -@.str287 = private unnamed_addr constant [34 x i8] c"@__stderrp = external global ptr\0A\00" -@.str288 = private unnamed_addr constant [34 x i8] c"@__stdoutp = external global ptr\0A\00" -@.str289 = 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" -@.str290 = private unnamed_addr constant [65 x i8] c"@.fmt_line = private unnamed_addr constant [4 x i8] c\22%s\5C0A\5C00\22\0A\00" -@.str291 = private unnamed_addr constant [33 x i8] c"@L_argc = internal global i32 0\0A\00" -@.str292 = private unnamed_addr constant [36 x i8] c"@L_argv = internal global ptr null\0A\00" -@.str293 = private unnamed_addr constant [46 x i8] c"@.gametitle = private unnamed_addr constant [\00" -@.str294 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" -@.str295 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" -@.str296 = private unnamed_addr constant [34 x i8] c"%LSlice = type { ptr, i32, i32 }\0A\00" -@.str297 = private unnamed_addr constant [11 x i8] c" = type { \00" -@.str298 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str299 = private unnamed_addr constant [3 x i8] c", \00" -@.str300 = private unnamed_addr constant [4 x i8] c" }\0A\00" -@.str301 = private unnamed_addr constant [4 x i8] c"@g_\00" -@.str302 = private unnamed_addr constant [20 x i8] c" = internal global \00" -@.str303 = private unnamed_addr constant [2 x i8] c" \00" -@.str304 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str305 = private unnamed_addr constant [41 x i8] c"define i32 @fn_str_eq(ptr %a, ptr %b) {\0A\00" -@.str306 = private unnamed_addr constant [25 x i8] c"entry:\0A br label %loop\0A\00" -@.str307 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %cont ]\0A\00" -@.str308 = private unnamed_addr constant [51 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %i\0A\00" -@.str309 = private unnamed_addr constant [51 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %i\0A\00" -@.str310 = private unnamed_addr constant [51 x i8] c" %ca = load i8, ptr %pa\0A %cb = load i8, ptr %pb\0A\00" -@.str311 = private unnamed_addr constant [66 x i8] c" %df = icmp ne i8 %ca, %cb\0A br i1 %df, label %ret0, label %chk\0A\00" -@.str312 = private unnamed_addr constant [70 x i8] c"chk:\0A %zt = icmp eq i8 %ca, 0\0A br i1 %zt, label %ret1, label %cont\0A\00" -@.str313 = private unnamed_addr constant [46 x i8] c"cont:\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00" -@.str314 = private unnamed_addr constant [39 x i8] c"ret1:\0A ret i32 1\0Aret0:\0A ret i32 0\0A}\0A\00" -@.str315 = private unnamed_addr constant [45 x i8] c"define ptr @fn_str_concat(ptr %a, ptr %b) {\0A\00" -@.str316 = private unnamed_addr constant [23 x i8] c"entry:\0A br label %al\0A\00" -@.str317 = private unnamed_addr constant [51 x i8] c"al:\0A %ia = phi i32 [ 0, %entry ], [ %ia1, %alb ]\0A\00" -@.str318 = private unnamed_addr constant [78 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %ia\0A %cca = load i8, ptr %pa\0A\00" -@.str319 = private unnamed_addr constant [64 x i8] c" %za = icmp eq i8 %cca, 0\0A br i1 %za, label %bl0, label %alb\0A\00" -@.str320 = private unnamed_addr constant [45 x i8] c"alb:\0A %ia1 = add i32 %ia, 1\0A br label %al\0A\00" -@.str321 = private unnamed_addr constant [21 x i8] c"bl0:\0A br label %bl\0A\00" -@.str322 = private unnamed_addr constant [49 x i8] c"bl:\0A %ib = phi i32 [ 0, %bl0 ], [ %ib1, %blb ]\0A\00" -@.str323 = private unnamed_addr constant [78 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %ib\0A %ccb = load i8, ptr %pb\0A\00" -@.str324 = private unnamed_addr constant [66 x i8] c" %zb = icmp eq i8 %ccb, 0\0A br i1 %zb, label %alloc, label %blb\0A\00" -@.str325 = private unnamed_addr constant [45 x i8] c"blb:\0A %ib1 = add i32 %ib, 1\0A br label %bl\0A\00" -@.str326 = private unnamed_addr constant [58 x i8] c"alloc:\0A %sum = add i32 %ia, %ib\0A %sz = add i32 %sum, 1\0A\00" -@.str327 = private unnamed_addr constant [83 x i8] c" %sz64 = sext i32 %sz to i64\0A %out = call ptr @malloc(i64 %sz64)\0A br label %c1\0A\00" -@.str328 = private unnamed_addr constant [49 x i8] c"c1:\0A %i = phi i32 [ 0, %alloc ], [ %i1, %c1b ]\0A\00" -@.str329 = private unnamed_addr constant [66 x i8] c" %d1 = icmp slt i32 %i, %ia\0A br i1 %d1, label %c1b, label %c2i\0A\00" -@.str330 = private unnamed_addr constant [81 x i8] c"c1b:\0A %s1 = getelementptr inbounds i8, ptr %a, i32 %i\0A %v1 = load i8, ptr %s1\0A\00" -@.str331 = private unnamed_addr constant [77 x i8] c" %o1 = getelementptr inbounds i8, ptr %out, i32 %i\0A store i8 %v1, ptr %o1\0A\00" -@.str332 = private unnamed_addr constant [38 x i8] c" %i1 = add i32 %i, 1\0A br label %c1\0A\00" -@.str333 = private unnamed_addr constant [21 x i8] c"c2i:\0A br label %c2\0A\00" -@.str334 = private unnamed_addr constant [47 x i8] c"c2:\0A %j = phi i32 [ 0, %c2i ], [ %j1, %c2b ]\0A\00" -@.str335 = private unnamed_addr constant [66 x i8] c" %d2 = icmp slt i32 %j, %ib\0A br i1 %d2, label %c2b, label %fin\0A\00" -@.str336 = private unnamed_addr constant [81 x i8] c"c2b:\0A %s2 = getelementptr inbounds i8, ptr %b, i32 %j\0A %v2 = load i8, ptr %s2\0A\00" -@.str337 = private unnamed_addr constant [102 x i8] c" %oj = add i32 %ia, %j\0A %o2 = getelementptr inbounds i8, ptr %out, i32 %oj\0A store i8 %v2, ptr %o2\0A\00" -@.str338 = private unnamed_addr constant [38 x i8] c" %j1 = add i32 %j, 1\0A br label %c2\0A\00" -@.str339 = private unnamed_addr constant [99 x i8] c"fin:\0A %pe = getelementptr inbounds i8, ptr %out, i32 %sum\0A store i8 0, ptr %pe\0A ret ptr %out\0A}\0A\00" -@.str340 = private unnamed_addr constant [35 x i8] c"define ptr @fn_int_str(i32 %n0) {\0A\00" -@.str341 = private unnamed_addr constant [42 x i8] c"entry:\0A %buf = call ptr @malloc(i64 24)\0A\00" -@.str342 = private unnamed_addr constant [56 x i8] c" %isneg = icmp slt i32 %n0, 0\0A %neg = sub i32 0, %n0\0A\00" -@.str343 = private unnamed_addr constant [44 x i8] c" %n = select i1 %isneg, i32 %neg, i32 %n0\0A\00" -@.str344 = private unnamed_addr constant [79 x i8] c" %term = getelementptr inbounds i8, ptr %buf, i32 23\0A store i8 0, ptr %term\0A\00" -@.str345 = private unnamed_addr constant [70 x i8] c" %iszero = icmp eq i32 %n0, 0\0A br i1 %iszero, label %zc, label %dl\0A\00" -@.str346 = private unnamed_addr constant [94 x i8] c"zc:\0A %zp = getelementptr inbounds i8, ptr %buf, i32 22\0A store i8 48, ptr %zp\0A ret ptr %zp\0A\00" -@.str347 = private unnamed_addr constant [23 x i8] c"dl:\0A br label %dloop\0A\00" -@.str348 = private unnamed_addr constant [104 x i8] c"dloop:\0A %pos = phi i32 [ 22, %dl ], [ %pos2, %dbody ]\0A %cur = phi i32 [ %n, %dl ], [ %cur2, %dbody ]\0A\00" -@.str349 = private unnamed_addr constant [72 x i8] c" %done = icmp eq i32 %cur, 0\0A br i1 %done, label %sign, label %dbody\0A\00" -@.str350 = private unnamed_addr constant [85 x i8] c"dbody:\0A %d = urem i32 %cur, 10\0A %ch = add i32 %d, 48\0A %ch8 = trunc i32 %ch to i8\0A\00" -@.str351 = private unnamed_addr constant [80 x i8] c" %pp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 %ch8, ptr %pp\0A\00" -@.str352 = private unnamed_addr constant [73 x i8] c" %cur2 = udiv i32 %cur, 10\0A %pos2 = sub i32 %pos, 1\0A br label %dloop\0A\00" -@.str353 = private unnamed_addr constant [49 x i8] c"sign:\0A br i1 %isneg, label %addneg, label %fin\0A\00" -@.str354 = private unnamed_addr constant [128 x i8] c"addneg:\0A %sp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 45, ptr %sp\0A %posn = sub i32 %pos, 1\0A br label %fin\0A\00" -@.str355 = private unnamed_addr constant [60 x i8] c"fin:\0A %fpos = phi i32 [ %pos, %sign ], [ %posn, %addneg ]\0A\00" -@.str356 = private unnamed_addr constant [101 x i8] c" %rpos = add i32 %fpos, 1\0A %res = getelementptr inbounds i8, ptr %buf, i32 %rpos\0A ret ptr %res\0A}\0A\00" -@.str357 = private unnamed_addr constant [58 x i8] c"define ptr @fn_str_slice(ptr %s, i32 %start, i32 %end) {\0A\00" -@.str358 = private unnamed_addr constant [62 x i8] c"entry:\0A %len = sub i32 %end, %start\0A %sz = add i32 %len, 1\0A\00" -@.str359 = private unnamed_addr constant [85 x i8] c" %sz64 = sext i32 %sz to i64\0A %out = call ptr @malloc(i64 %sz64)\0A br label %loop\0A\00" -@.str360 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %body ]\0A\00" -@.str361 = private unnamed_addr constant [66 x i8] c" %d = icmp slt i32 %i, %len\0A br i1 %d, label %body, label %fin\0A\00" -@.str362 = private unnamed_addr constant [109 x i8] c"body:\0A %si = add i32 %start, %i\0A %sp = getelementptr inbounds i8, ptr %s, i32 %si\0A %c = load i8, ptr %sp\0A\00" -@.str363 = private unnamed_addr constant [115 x i8] c" %op = getelementptr inbounds i8, ptr %out, i32 %i\0A store i8 %c, ptr %op\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00" -@.str364 = private unnamed_addr constant [99 x i8] c"fin:\0A %tp = getelementptr inbounds i8, ptr %out, i32 %len\0A store i8 0, ptr %tp\0A ret ptr %out\0A}\0A\00" -@.str365 = private unnamed_addr constant [32 x i8] c"member access on non-aggregate \00" -@.str366 = private unnamed_addr constant [15 x i8] c"no such field \00" -@.str367 = private unnamed_addr constant [3 x i8] c" \00" -@.str368 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" -@.str369 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str370 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str371 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str372 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" -@.str373 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str374 = private unnamed_addr constant [5 x i8] c"byte\00" -@.str375 = private unnamed_addr constant [3 x i8] c" \00" -@.str376 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str377 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" -@.str378 = private unnamed_addr constant [3 x i8] c" \00" -@.str379 = private unnamed_addr constant [18 x i8] c" = load ptr, ptr \00" -@.str380 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str243 = private unnamed_addr constant [6 x i8] c"words\00" +@.str244 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str245 = private unnamed_addr constant [5 x i8] c"void\00" +@.str246 = private unnamed_addr constant [5 x i8] c"void\00" +@.str247 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str248 = private unnamed_addr constant [6 x i8] c"%Cmp_\00" +@.str249 = private unnamed_addr constant [4 x i8] c"int\00" +@.str250 = private unnamed_addr constant [2 x i8] c".\00" +@.str251 = private unnamed_addr constant [2 x i8] c".\00" +@.str252 = private unnamed_addr constant [6 x i8] c"@.str\00" +@.str253 = private unnamed_addr constant [35 x i8] c" = private unnamed_addr constant [\00" +@.str254 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" +@.str255 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\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 [2 x i8] c"-\00" +@.str260 = private unnamed_addr constant [2 x i8] c"-\00" +@.str261 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str262 = private unnamed_addr constant [5 x i8] c"null\00" +@.str263 = private unnamed_addr constant [2 x i8] c"0\00" +@.str264 = private unnamed_addr constant [34 x i8] c"; Ludic (self-hosted) -> LLVM IR\0A\00" +@.str265 = private unnamed_addr constant [31 x i8] c"declare i32 @printf(ptr, ...)\0A\00" +@.str266 = private unnamed_addr constant [26 x i8] c"declare ptr @malloc(i64)\0A\00" +@.str267 = private unnamed_addr constant [32 x i8] c"declare ptr @realloc(ptr, i64)\0A\00" +@.str268 = private unnamed_addr constant [25 x i8] c"declare void @free(ptr)\0A\00" +@.str269 = private unnamed_addr constant [30 x i8] c"declare ptr @fopen(ptr, ptr)\0A\00" +@.str270 = private unnamed_addr constant [40 x i8] c"declare i64 @fread(ptr, i64, i64, ptr)\0A\00" +@.str271 = private unnamed_addr constant [41 x i8] c"declare i64 @fwrite(ptr, i64, i64, ptr)\0A\00" +@.str272 = private unnamed_addr constant [35 x i8] c"declare i32 @fseek(ptr, i64, i32)\0A\00" +@.str273 = private unnamed_addr constant [25 x i8] c"declare i64 @ftell(ptr)\0A\00" +@.str274 = private unnamed_addr constant [26 x i8] c"declare i32 @fclose(ptr)\0A\00" +@.str275 = private unnamed_addr constant [25 x i8] c"declare void @exit(i32)\0A\00" +@.str276 = private unnamed_addr constant [26 x i8] c"declare i32 @system(ptr)\0A\00" +@.str277 = private unnamed_addr constant [26 x i8] c"declare ptr @getenv(ptr)\0A\00" +@.str278 = private unnamed_addr constant [36 x i8] c"declare ptr @memcpy(ptr, ptr, i64)\0A\00" +@.str279 = private unnamed_addr constant [36 x i8] c"declare ptr @memset(ptr, i32, i64)\0A\00" +@.str280 = private unnamed_addr constant [26 x i8] c"declare i64 @strlen(ptr)\0A\00" +@.str281 = private unnamed_addr constant [24 x i8] c"declare i32 @getchar()\0A\00" +@.str282 = private unnamed_addr constant [27 x i8] c"declare i32 @putchar(i32)\0A\00" +@.str283 = private unnamed_addr constant [24 x i8] c"declare i64 @time(ptr)\0A\00" +@.str284 = private unnamed_addr constant [44 x i8] c"declare void @win_open(i32, i32, i32, ptr)\0A\00" +@.str285 = private unnamed_addr constant [25 x i8] c"declare i32 @win_poll()\0A\00" +@.str286 = private unnamed_addr constant [42 x i8] c"declare void @win_present(ptr, i32, i32)\0A\00" +@.str287 = private unnamed_addr constant [28 x i8] c"declare i32 @win_running()\0A\00" +@.str288 = private unnamed_addr constant [27 x i8] c"declare void @win_close()\0A\00" +@.str289 = private unnamed_addr constant [34 x i8] c"@__stderrp = external global ptr\0A\00" +@.str290 = private unnamed_addr constant [34 x i8] c"@__stdoutp = external global ptr\0A\00" +@.str291 = 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" +@.str292 = private unnamed_addr constant [65 x i8] c"@.fmt_line = private unnamed_addr constant [4 x i8] c\22%s\5C0A\5C00\22\0A\00" +@.str293 = private unnamed_addr constant [33 x i8] c"@L_argc = internal global i32 0\0A\00" +@.str294 = private unnamed_addr constant [36 x i8] c"@L_argv = internal global ptr null\0A\00" +@.str295 = private unnamed_addr constant [46 x i8] c"@.gametitle = private unnamed_addr constant [\00" +@.str296 = private unnamed_addr constant [10 x i8] c" x i8] c\22\00" +@.str297 = private unnamed_addr constant [6 x i8] c"\5C00\22\0A\00" +@.str298 = private unnamed_addr constant [34 x i8] c"%LSlice = type { ptr, i32, i32 }\0A\00" +@.str299 = private unnamed_addr constant [11 x i8] c" = type { \00" +@.str300 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str301 = private unnamed_addr constant [3 x i8] c", \00" +@.str302 = private unnamed_addr constant [4 x i8] c" }\0A\00" +@.str303 = private unnamed_addr constant [4 x i8] c"@g_\00" +@.str304 = private unnamed_addr constant [20 x i8] c" = internal global \00" +@.str305 = private unnamed_addr constant [2 x i8] c" \00" +@.str306 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str307 = private unnamed_addr constant [41 x i8] c"define i32 @fn_str_eq(ptr %a, ptr %b) {\0A\00" +@.str308 = private unnamed_addr constant [25 x i8] c"entry:\0A br label %loop\0A\00" +@.str309 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %cont ]\0A\00" +@.str310 = private unnamed_addr constant [51 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %i\0A\00" +@.str311 = private unnamed_addr constant [51 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %i\0A\00" +@.str312 = private unnamed_addr constant [51 x i8] c" %ca = load i8, ptr %pa\0A %cb = load i8, ptr %pb\0A\00" +@.str313 = private unnamed_addr constant [66 x i8] c" %df = icmp ne i8 %ca, %cb\0A br i1 %df, label %ret0, label %chk\0A\00" +@.str314 = private unnamed_addr constant [70 x i8] c"chk:\0A %zt = icmp eq i8 %ca, 0\0A br i1 %zt, label %ret1, label %cont\0A\00" +@.str315 = private unnamed_addr constant [46 x i8] c"cont:\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00" +@.str316 = private unnamed_addr constant [39 x i8] c"ret1:\0A ret i32 1\0Aret0:\0A ret i32 0\0A}\0A\00" +@.str317 = private unnamed_addr constant [45 x i8] c"define ptr @fn_str_concat(ptr %a, ptr %b) {\0A\00" +@.str318 = private unnamed_addr constant [23 x i8] c"entry:\0A br label %al\0A\00" +@.str319 = private unnamed_addr constant [51 x i8] c"al:\0A %ia = phi i32 [ 0, %entry ], [ %ia1, %alb ]\0A\00" +@.str320 = private unnamed_addr constant [78 x i8] c" %pa = getelementptr inbounds i8, ptr %a, i32 %ia\0A %cca = load i8, ptr %pa\0A\00" +@.str321 = private unnamed_addr constant [64 x i8] c" %za = icmp eq i8 %cca, 0\0A br i1 %za, label %bl0, label %alb\0A\00" +@.str322 = private unnamed_addr constant [45 x i8] c"alb:\0A %ia1 = add i32 %ia, 1\0A br label %al\0A\00" +@.str323 = private unnamed_addr constant [21 x i8] c"bl0:\0A br label %bl\0A\00" +@.str324 = private unnamed_addr constant [49 x i8] c"bl:\0A %ib = phi i32 [ 0, %bl0 ], [ %ib1, %blb ]\0A\00" +@.str325 = private unnamed_addr constant [78 x i8] c" %pb = getelementptr inbounds i8, ptr %b, i32 %ib\0A %ccb = load i8, ptr %pb\0A\00" +@.str326 = private unnamed_addr constant [66 x i8] c" %zb = icmp eq i8 %ccb, 0\0A br i1 %zb, label %alloc, label %blb\0A\00" +@.str327 = private unnamed_addr constant [45 x i8] c"blb:\0A %ib1 = add i32 %ib, 1\0A br label %bl\0A\00" +@.str328 = private unnamed_addr constant [58 x i8] c"alloc:\0A %sum = add i32 %ia, %ib\0A %sz = add i32 %sum, 1\0A\00" +@.str329 = private unnamed_addr constant [83 x i8] c" %sz64 = sext i32 %sz to i64\0A %out = call ptr @malloc(i64 %sz64)\0A br label %c1\0A\00" +@.str330 = private unnamed_addr constant [49 x i8] c"c1:\0A %i = phi i32 [ 0, %alloc ], [ %i1, %c1b ]\0A\00" +@.str331 = private unnamed_addr constant [66 x i8] c" %d1 = icmp slt i32 %i, %ia\0A br i1 %d1, label %c1b, label %c2i\0A\00" +@.str332 = private unnamed_addr constant [81 x i8] c"c1b:\0A %s1 = getelementptr inbounds i8, ptr %a, i32 %i\0A %v1 = load i8, ptr %s1\0A\00" +@.str333 = private unnamed_addr constant [77 x i8] c" %o1 = getelementptr inbounds i8, ptr %out, i32 %i\0A store i8 %v1, ptr %o1\0A\00" +@.str334 = private unnamed_addr constant [38 x i8] c" %i1 = add i32 %i, 1\0A br label %c1\0A\00" +@.str335 = private unnamed_addr constant [21 x i8] c"c2i:\0A br label %c2\0A\00" +@.str336 = private unnamed_addr constant [47 x i8] c"c2:\0A %j = phi i32 [ 0, %c2i ], [ %j1, %c2b ]\0A\00" +@.str337 = private unnamed_addr constant [66 x i8] c" %d2 = icmp slt i32 %j, %ib\0A br i1 %d2, label %c2b, label %fin\0A\00" +@.str338 = private unnamed_addr constant [81 x i8] c"c2b:\0A %s2 = getelementptr inbounds i8, ptr %b, i32 %j\0A %v2 = load i8, ptr %s2\0A\00" +@.str339 = private unnamed_addr constant [102 x i8] c" %oj = add i32 %ia, %j\0A %o2 = getelementptr inbounds i8, ptr %out, i32 %oj\0A store i8 %v2, ptr %o2\0A\00" +@.str340 = private unnamed_addr constant [38 x i8] c" %j1 = add i32 %j, 1\0A br label %c2\0A\00" +@.str341 = private unnamed_addr constant [99 x i8] c"fin:\0A %pe = getelementptr inbounds i8, ptr %out, i32 %sum\0A store i8 0, ptr %pe\0A ret ptr %out\0A}\0A\00" +@.str342 = private unnamed_addr constant [35 x i8] c"define ptr @fn_int_str(i32 %n0) {\0A\00" +@.str343 = private unnamed_addr constant [42 x i8] c"entry:\0A %buf = call ptr @malloc(i64 24)\0A\00" +@.str344 = private unnamed_addr constant [56 x i8] c" %isneg = icmp slt i32 %n0, 0\0A %neg = sub i32 0, %n0\0A\00" +@.str345 = private unnamed_addr constant [44 x i8] c" %n = select i1 %isneg, i32 %neg, i32 %n0\0A\00" +@.str346 = private unnamed_addr constant [79 x i8] c" %term = getelementptr inbounds i8, ptr %buf, i32 23\0A store i8 0, ptr %term\0A\00" +@.str347 = private unnamed_addr constant [70 x i8] c" %iszero = icmp eq i32 %n0, 0\0A br i1 %iszero, label %zc, label %dl\0A\00" +@.str348 = private unnamed_addr constant [94 x i8] c"zc:\0A %zp = getelementptr inbounds i8, ptr %buf, i32 22\0A store i8 48, ptr %zp\0A ret ptr %zp\0A\00" +@.str349 = private unnamed_addr constant [23 x i8] c"dl:\0A br label %dloop\0A\00" +@.str350 = private unnamed_addr constant [104 x i8] c"dloop:\0A %pos = phi i32 [ 22, %dl ], [ %pos2, %dbody ]\0A %cur = phi i32 [ %n, %dl ], [ %cur2, %dbody ]\0A\00" +@.str351 = private unnamed_addr constant [72 x i8] c" %done = icmp eq i32 %cur, 0\0A br i1 %done, label %sign, label %dbody\0A\00" +@.str352 = private unnamed_addr constant [85 x i8] c"dbody:\0A %d = urem i32 %cur, 10\0A %ch = add i32 %d, 48\0A %ch8 = trunc i32 %ch to i8\0A\00" +@.str353 = private unnamed_addr constant [80 x i8] c" %pp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 %ch8, ptr %pp\0A\00" +@.str354 = private unnamed_addr constant [73 x i8] c" %cur2 = udiv i32 %cur, 10\0A %pos2 = sub i32 %pos, 1\0A br label %dloop\0A\00" +@.str355 = private unnamed_addr constant [49 x i8] c"sign:\0A br i1 %isneg, label %addneg, label %fin\0A\00" +@.str356 = private unnamed_addr constant [128 x i8] c"addneg:\0A %sp = getelementptr inbounds i8, ptr %buf, i32 %pos\0A store i8 45, ptr %sp\0A %posn = sub i32 %pos, 1\0A br label %fin\0A\00" +@.str357 = private unnamed_addr constant [60 x i8] c"fin:\0A %fpos = phi i32 [ %pos, %sign ], [ %posn, %addneg ]\0A\00" +@.str358 = private unnamed_addr constant [101 x i8] c" %rpos = add i32 %fpos, 1\0A %res = getelementptr inbounds i8, ptr %buf, i32 %rpos\0A ret ptr %res\0A}\0A\00" +@.str359 = private unnamed_addr constant [58 x i8] c"define ptr @fn_str_slice(ptr %s, i32 %start, i32 %end) {\0A\00" +@.str360 = private unnamed_addr constant [62 x i8] c"entry:\0A %len = sub i32 %end, %start\0A %sz = add i32 %len, 1\0A\00" +@.str361 = private unnamed_addr constant [85 x i8] c" %sz64 = sext i32 %sz to i64\0A %out = call ptr @malloc(i64 %sz64)\0A br label %loop\0A\00" +@.str362 = private unnamed_addr constant [52 x i8] c"loop:\0A %i = phi i32 [ 0, %entry ], [ %i1, %body ]\0A\00" +@.str363 = private unnamed_addr constant [66 x i8] c" %d = icmp slt i32 %i, %len\0A br i1 %d, label %body, label %fin\0A\00" +@.str364 = private unnamed_addr constant [109 x i8] c"body:\0A %si = add i32 %start, %i\0A %sp = getelementptr inbounds i8, ptr %s, i32 %si\0A %c = load i8, ptr %sp\0A\00" +@.str365 = private unnamed_addr constant [115 x i8] c" %op = getelementptr inbounds i8, ptr %out, i32 %i\0A store i8 %c, ptr %op\0A %i1 = add i32 %i, 1\0A br label %loop\0A\00" +@.str366 = private unnamed_addr constant [99 x i8] c"fin:\0A %tp = getelementptr inbounds i8, ptr %out, i32 %len\0A store i8 0, ptr %tp\0A ret ptr %out\0A}\0A\00" +@.str367 = private unnamed_addr constant [32 x i8] c"member access on non-aggregate \00" +@.str368 = private unnamed_addr constant [15 x i8] c"no such field \00" +@.str369 = private unnamed_addr constant [3 x i8] c" \00" +@.str370 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" +@.str371 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str372 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str373 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str374 = private unnamed_addr constant [6 x i8] c"words\00" +@.str375 = private unnamed_addr constant [33 x i8] c"getelementptr inbounds i32, ptr \00" +@.str376 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str377 = private unnamed_addr constant [4 x i8] c"int\00" +@.str378 = private unnamed_addr constant [32 x i8] c"getelementptr inbounds i8, ptr \00" +@.str379 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str380 = private unnamed_addr constant [5 x i8] c"byte\00" @.str381 = private unnamed_addr constant [3 x i8] c" \00" -@.str382 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" -@.str383 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str384 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str385 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str386 = private unnamed_addr constant [10 x i8] c"mem_alloc\00" -@.str387 = private unnamed_addr constant [12 x i8] c"mem_realloc\00" -@.str388 = private unnamed_addr constant [10 x i8] c"file_open\00" -@.str389 = private unnamed_addr constant [10 x i8] c"file_read\00" -@.str390 = private unnamed_addr constant [11 x i8] c"file_write\00" -@.str391 = private unnamed_addr constant [10 x i8] c"file_seek\00" -@.str392 = private unnamed_addr constant [10 x i8] c"file_tell\00" -@.str393 = private unnamed_addr constant [11 x i8] c"file_close\00" -@.str394 = private unnamed_addr constant [8 x i8] c"os_argc\00" -@.str395 = private unnamed_addr constant [7 x i8] c"os_arg\00" -@.str396 = private unnamed_addr constant [8 x i8] c"os_exit\00" -@.str397 = private unnamed_addr constant [12 x i8] c"file_stderr\00" -@.str398 = private unnamed_addr constant [12 x i8] c"file_stdout\00" -@.str399 = private unnamed_addr constant [10 x i8] c"os_system\00" -@.str400 = private unnamed_addr constant [10 x i8] c"os_getenv\00" -@.str401 = private unnamed_addr constant [7 x i8] c"peek32\00" -@.str402 = private unnamed_addr constant [7 x i8] c"poke32\00" -@.str403 = private unnamed_addr constant [3 x i8] c" \00" -@.str404 = private unnamed_addr constant [4 x i8] c" = \00" -@.str405 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str406 = private unnamed_addr constant [10 x i8] c"mem_alloc\00" -@.str407 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str408 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str409 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" -@.str410 = private unnamed_addr constant [2 x i8] c")\00" -@.str411 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str412 = private unnamed_addr constant [12 x i8] c"mem_realloc\00" -@.str413 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str414 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str415 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" -@.str416 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str417 = private unnamed_addr constant [2 x i8] c")\00" -@.str418 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str419 = private unnamed_addr constant [10 x i8] c"file_open\00" -@.str420 = private unnamed_addr constant [21 x i8] c"call ptr @fopen(ptr \00" -@.str421 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str422 = private unnamed_addr constant [2 x i8] c")\00" -@.str423 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str424 = private unnamed_addr constant [10 x i8] c"file_read\00" -@.str425 = private unnamed_addr constant [11 x i8] c"file_write\00" -@.str426 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str427 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str428 = private unnamed_addr constant [7 x i8] c"@fread\00" +@.str382 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" +@.str383 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" +@.str384 = private unnamed_addr constant [3 x i8] c" \00" +@.str385 = private unnamed_addr constant [18 x i8] c" = load ptr, ptr \00" +@.str386 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str387 = private unnamed_addr constant [3 x i8] c" \00" +@.str388 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" +@.str389 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str390 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str391 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str392 = private unnamed_addr constant [10 x i8] c"mem_alloc\00" +@.str393 = private unnamed_addr constant [12 x i8] c"mem_realloc\00" +@.str394 = private unnamed_addr constant [10 x i8] c"file_open\00" +@.str395 = private unnamed_addr constant [10 x i8] c"file_read\00" +@.str396 = private unnamed_addr constant [11 x i8] c"file_write\00" +@.str397 = private unnamed_addr constant [10 x i8] c"file_seek\00" +@.str398 = private unnamed_addr constant [10 x i8] c"file_tell\00" +@.str399 = private unnamed_addr constant [11 x i8] c"file_close\00" +@.str400 = private unnamed_addr constant [8 x i8] c"os_argc\00" +@.str401 = private unnamed_addr constant [7 x i8] c"os_arg\00" +@.str402 = private unnamed_addr constant [8 x i8] c"os_exit\00" +@.str403 = private unnamed_addr constant [12 x i8] c"file_stderr\00" +@.str404 = private unnamed_addr constant [12 x i8] c"file_stdout\00" +@.str405 = private unnamed_addr constant [10 x i8] c"os_system\00" +@.str406 = private unnamed_addr constant [10 x i8] c"os_getenv\00" +@.str407 = private unnamed_addr constant [3 x i8] c" \00" +@.str408 = private unnamed_addr constant [4 x i8] c" = \00" +@.str409 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str410 = private unnamed_addr constant [10 x i8] c"mem_alloc\00" +@.str411 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str412 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str413 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" +@.str414 = private unnamed_addr constant [2 x i8] c")\00" +@.str415 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str416 = private unnamed_addr constant [12 x i8] c"mem_realloc\00" +@.str417 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str418 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str419 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" +@.str420 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str421 = private unnamed_addr constant [2 x i8] c")\00" +@.str422 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str423 = private unnamed_addr constant [10 x i8] c"file_open\00" +@.str424 = private unnamed_addr constant [21 x i8] c"call ptr @fopen(ptr \00" +@.str425 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str426 = private unnamed_addr constant [2 x i8] c")\00" +@.str427 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str428 = private unnamed_addr constant [10 x i8] c"file_read\00" @.str429 = private unnamed_addr constant [11 x i8] c"file_write\00" -@.str430 = private unnamed_addr constant [8 x i8] c"@fwrite\00" -@.str431 = private unnamed_addr constant [10 x i8] c"call i64 \00" -@.str432 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str433 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" -@.str434 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str435 = private unnamed_addr constant [2 x i8] c")\00" -@.str436 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str437 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str438 = private unnamed_addr constant [4 x i8] c"int\00" -@.str439 = private unnamed_addr constant [10 x i8] c"file_seek\00" -@.str440 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str441 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str442 = private unnamed_addr constant [21 x i8] c"call i32 @fseek(ptr \00" -@.str443 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str444 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str445 = private unnamed_addr constant [2 x i8] c")\00" -@.str446 = private unnamed_addr constant [4 x i8] c"int\00" -@.str447 = private unnamed_addr constant [10 x i8] c"file_tell\00" -@.str448 = private unnamed_addr constant [21 x i8] c"call i64 @ftell(ptr \00" +@.str430 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str431 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str432 = private unnamed_addr constant [7 x i8] c"@fread\00" +@.str433 = private unnamed_addr constant [11 x i8] c"file_write\00" +@.str434 = private unnamed_addr constant [8 x i8] c"@fwrite\00" +@.str435 = private unnamed_addr constant [10 x i8] c"call i64 \00" +@.str436 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str437 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" +@.str438 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str439 = private unnamed_addr constant [2 x i8] c")\00" +@.str440 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str441 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str442 = private unnamed_addr constant [4 x i8] c"int\00" +@.str443 = private unnamed_addr constant [10 x i8] c"file_seek\00" +@.str444 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str445 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str446 = private unnamed_addr constant [21 x i8] c"call i32 @fseek(ptr \00" +@.str447 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str448 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str449 = private unnamed_addr constant [2 x i8] c")\00" -@.str450 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str451 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str452 = private unnamed_addr constant [4 x i8] c"int\00" -@.str453 = private unnamed_addr constant [11 x i8] c"file_close\00" -@.str454 = private unnamed_addr constant [24 x i8] c" call i32 @fclose(ptr \00" -@.str455 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str456 = private unnamed_addr constant [2 x i8] c"0\00" -@.str457 = private unnamed_addr constant [5 x i8] c"void\00" -@.str458 = private unnamed_addr constant [8 x i8] c"os_argc\00" -@.str459 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_argc\00" -@.str460 = private unnamed_addr constant [4 x i8] c"int\00" -@.str461 = private unnamed_addr constant [7 x i8] c"os_arg\00" -@.str462 = private unnamed_addr constant [22 x i8] c"load ptr, ptr @L_argv\00" -@.str463 = private unnamed_addr constant [24 x i8] c"getelementptr ptr, ptr \00" -@.str464 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str465 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" -@.str466 = private unnamed_addr constant [4 x i8] c"str\00" -@.str467 = private unnamed_addr constant [8 x i8] c"os_exit\00" -@.str468 = private unnamed_addr constant [23 x i8] c" call void @exit(i32 \00" -@.str469 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str470 = private unnamed_addr constant [15 x i8] c" unreachable\0A\00" -@.str471 = private unnamed_addr constant [2 x i8] c"0\00" -@.str472 = private unnamed_addr constant [5 x i8] c"void\00" -@.str473 = private unnamed_addr constant [12 x i8] c"file_stderr\00" -@.str474 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stderrp\00" -@.str475 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str476 = private unnamed_addr constant [12 x i8] c"file_stdout\00" -@.str477 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stdoutp\00" -@.str478 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str479 = private unnamed_addr constant [10 x i8] c"os_system\00" -@.str480 = private unnamed_addr constant [22 x i8] c"call i32 @system(ptr \00" -@.str481 = private unnamed_addr constant [2 x i8] c")\00" -@.str482 = private unnamed_addr constant [4 x i8] c"int\00" -@.str483 = private unnamed_addr constant [10 x i8] c"os_getenv\00" -@.str484 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" +@.str450 = private unnamed_addr constant [4 x i8] c"int\00" +@.str451 = private unnamed_addr constant [10 x i8] c"file_tell\00" +@.str452 = private unnamed_addr constant [21 x i8] c"call i64 @ftell(ptr \00" +@.str453 = private unnamed_addr constant [2 x i8] c")\00" +@.str454 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str455 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str456 = private unnamed_addr constant [4 x i8] c"int\00" +@.str457 = private unnamed_addr constant [11 x i8] c"file_close\00" +@.str458 = private unnamed_addr constant [24 x i8] c" call i32 @fclose(ptr \00" +@.str459 = private unnamed_addr constant [3 x i8] c")\0A\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 [8 x i8] c"os_argc\00" +@.str463 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_argc\00" +@.str464 = private unnamed_addr constant [4 x i8] c"int\00" +@.str465 = private unnamed_addr constant [7 x i8] c"os_arg\00" +@.str466 = private unnamed_addr constant [22 x i8] c"load ptr, ptr @L_argv\00" +@.str467 = private unnamed_addr constant [24 x i8] c"getelementptr ptr, ptr \00" +@.str468 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str469 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" +@.str470 = private unnamed_addr constant [4 x i8] c"str\00" +@.str471 = private unnamed_addr constant [8 x i8] c"os_exit\00" +@.str472 = private unnamed_addr constant [23 x i8] c" call void @exit(i32 \00" +@.str473 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str474 = private unnamed_addr constant [15 x i8] c" unreachable\0A\00" +@.str475 = private unnamed_addr constant [2 x i8] c"0\00" +@.str476 = private unnamed_addr constant [5 x i8] c"void\00" +@.str477 = private unnamed_addr constant [12 x i8] c"file_stderr\00" +@.str478 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stderrp\00" +@.str479 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str480 = private unnamed_addr constant [12 x i8] c"file_stdout\00" +@.str481 = private unnamed_addr constant [25 x i8] c"load ptr, ptr @__stdoutp\00" +@.str482 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str483 = private unnamed_addr constant [10 x i8] c"os_system\00" +@.str484 = private unnamed_addr constant [22 x i8] c"call i32 @system(ptr \00" @.str485 = private unnamed_addr constant [2 x i8] c")\00" -@.str486 = private unnamed_addr constant [4 x i8] c"str\00" -@.str487 = private unnamed_addr constant [7 x i8] c"peek32\00" -@.str488 = private unnamed_addr constant [3 x i8] c" \00" -@.str489 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" -@.str490 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str491 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str492 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str493 = private unnamed_addr constant [4 x i8] c"int\00" -@.str494 = private unnamed_addr constant [7 x i8] c"poke32\00" -@.str495 = private unnamed_addr constant [3 x i8] c" \00" -@.str496 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" -@.str497 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str498 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str499 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str500 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str501 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str502 = private unnamed_addr constant [2 x i8] c"0\00" -@.str503 = private unnamed_addr constant [5 x i8] c"void\00" -@.str504 = private unnamed_addr constant [2 x i8] c"0\00" -@.str505 = private unnamed_addr constant [5 x i8] c"void\00" -@.str506 = private unnamed_addr constant [9 x i8] c"mem_free\00" -@.str507 = private unnamed_addr constant [9 x i8] c"mem_copy\00" -@.str508 = private unnamed_addr constant [8 x i8] c"mem_set\00" -@.str509 = private unnamed_addr constant [8 x i8] c"ptr_add\00" -@.str510 = private unnamed_addr constant [10 x i8] c"read_byte\00" -@.str511 = private unnamed_addr constant [11 x i8] c"write_byte\00" -@.str512 = private unnamed_addr constant [8 x i8] c"str_len\00" -@.str513 = private unnamed_addr constant [8 x i8] c"os_time\00" -@.str514 = private unnamed_addr constant [6 x i8] c"peekf\00" -@.str515 = private unnamed_addr constant [6 x i8] c"pokef\00" -@.str516 = private unnamed_addr constant [9 x i8] c"as_fixed\00" -@.str517 = private unnamed_addr constant [7 x i8] c"as_int\00" -@.str518 = private unnamed_addr constant [6 x i8] c"peekp\00" -@.str519 = private unnamed_addr constant [6 x i8] c"pokep\00" -@.str520 = private unnamed_addr constant [12 x i8] c"is_windowed\00" -@.str521 = private unnamed_addr constant [11 x i8] c"game_title\00" -@.str522 = private unnamed_addr constant [9 x i8] c"win_open\00" -@.str523 = private unnamed_addr constant [9 x i8] c"win_poll\00" -@.str524 = private unnamed_addr constant [12 x i8] c"win_present\00" -@.str525 = private unnamed_addr constant [12 x i8] c"win_running\00" -@.str526 = private unnamed_addr constant [10 x i8] c"win_close\00" -@.str527 = private unnamed_addr constant [9 x i8] c"mem_free\00" -@.str528 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \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 [9 x i8] c"mem_copy\00" -@.str533 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str534 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str535 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" -@.str536 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str537 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str538 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str539 = private unnamed_addr constant [2 x i8] c"0\00" -@.str540 = private unnamed_addr constant [5 x i8] c"void\00" -@.str541 = private unnamed_addr constant [8 x i8] c"mem_set\00" -@.str542 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str543 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str544 = private unnamed_addr constant [24 x i8] c" call ptr @memset(ptr \00" -@.str545 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str546 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str547 = private unnamed_addr constant [3 x i8] c")\0A\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 [8 x i8] c"ptr_add\00" -@.str551 = private unnamed_addr constant [3 x i8] c" \00" -@.str552 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, 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 [4 x i8] c"ptr\00" -@.str556 = private unnamed_addr constant [10 x i8] c"read_byte\00" -@.str557 = private unnamed_addr constant [20 x i8] c"call i32 @getchar()\00" -@.str558 = private unnamed_addr constant [4 x i8] c"int\00" -@.str559 = private unnamed_addr constant [11 x i8] c"write_byte\00" -@.str560 = private unnamed_addr constant [25 x i8] c" call i32 @putchar(i32 \00" -@.str561 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str562 = private unnamed_addr constant [2 x i8] c"0\00" -@.str563 = private unnamed_addr constant [5 x i8] c"void\00" -@.str564 = private unnamed_addr constant [8 x i8] c"str_len\00" -@.str565 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" -@.str566 = private unnamed_addr constant [2 x i8] c")\00" -@.str567 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str568 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str569 = private unnamed_addr constant [4 x i8] c"int\00" -@.str570 = private unnamed_addr constant [8 x i8] c"os_time\00" -@.str571 = private unnamed_addr constant [25 x i8] c"call i64 @time(ptr null)\00" -@.str572 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str573 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str574 = private unnamed_addr constant [4 x i8] c"int\00" -@.str575 = private unnamed_addr constant [6 x i8] c"peekf\00" -@.str576 = private unnamed_addr constant [3 x i8] c" \00" -@.str577 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" -@.str578 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str579 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str580 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str581 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str582 = private unnamed_addr constant [6 x i8] c"pokef\00" -@.str583 = private unnamed_addr constant [3 x i8] c" \00" -@.str584 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" -@.str585 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str586 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str587 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str588 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str589 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str590 = private unnamed_addr constant [2 x i8] c"0\00" -@.str591 = private unnamed_addr constant [5 x i8] c"void\00" -@.str592 = private unnamed_addr constant [6 x i8] c"peekp\00" -@.str593 = private unnamed_addr constant [3 x i8] c" \00" -@.str594 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds ptr, ptr \00" -@.str595 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str596 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str597 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" -@.str598 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str599 = private unnamed_addr constant [6 x i8] c"pokep\00" -@.str600 = private unnamed_addr constant [3 x i8] c" \00" -@.str601 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds ptr, ptr \00" -@.str602 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str603 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str604 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str605 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str606 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str607 = private unnamed_addr constant [2 x i8] c"0\00" -@.str608 = private unnamed_addr constant [5 x i8] c"void\00" -@.str609 = private unnamed_addr constant [9 x i8] c"as_fixed\00" -@.str610 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str611 = private unnamed_addr constant [7 x i8] c"as_int\00" -@.str612 = private unnamed_addr constant [4 x i8] c"int\00" -@.str613 = private unnamed_addr constant [12 x i8] c"is_windowed\00" -@.str614 = private unnamed_addr constant [2 x i8] c"1\00" -@.str615 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str616 = private unnamed_addr constant [2 x i8] c"0\00" -@.str617 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str618 = private unnamed_addr constant [11 x i8] c"game_title\00" -@.str619 = private unnamed_addr constant [12 x i8] c"@.gametitle\00" -@.str620 = private unnamed_addr constant [4 x i8] c"str\00" -@.str621 = private unnamed_addr constant [9 x i8] c"win_poll\00" -@.str622 = private unnamed_addr constant [21 x i8] c"call i32 @win_poll()\00" -@.str623 = private unnamed_addr constant [4 x i8] c"int\00" -@.str624 = private unnamed_addr constant [12 x i8] c"win_running\00" -@.str625 = private unnamed_addr constant [24 x i8] c"call i32 @win_running()\00" -@.str626 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str627 = private unnamed_addr constant [9 x i8] c"win_open\00" -@.str628 = private unnamed_addr constant [27 x i8] c" call void @win_open(i32 \00" -@.str629 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str630 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str631 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str632 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str486 = private unnamed_addr constant [4 x i8] c"int\00" +@.str487 = private unnamed_addr constant [10 x i8] c"os_getenv\00" +@.str488 = private unnamed_addr constant [22 x i8] c"call ptr @getenv(ptr \00" +@.str489 = private unnamed_addr constant [2 x i8] c")\00" +@.str490 = private unnamed_addr constant [4 x i8] c"str\00" +@.str491 = private unnamed_addr constant [2 x i8] c"0\00" +@.str492 = private unnamed_addr constant [5 x i8] c"void\00" +@.str493 = private unnamed_addr constant [9 x i8] c"mem_free\00" +@.str494 = private unnamed_addr constant [9 x i8] c"mem_copy\00" +@.str495 = private unnamed_addr constant [8 x i8] c"mem_set\00" +@.str496 = private unnamed_addr constant [8 x i8] c"ptr_add\00" +@.str497 = private unnamed_addr constant [10 x i8] c"read_byte\00" +@.str498 = private unnamed_addr constant [11 x i8] c"write_byte\00" +@.str499 = private unnamed_addr constant [8 x i8] c"str_len\00" +@.str500 = private unnamed_addr constant [8 x i8] c"os_time\00" +@.str501 = private unnamed_addr constant [6 x i8] c"peekf\00" +@.str502 = private unnamed_addr constant [6 x i8] c"pokef\00" +@.str503 = private unnamed_addr constant [9 x i8] c"as_fixed\00" +@.str504 = private unnamed_addr constant [7 x i8] c"as_int\00" +@.str505 = private unnamed_addr constant [6 x i8] c"peekp\00" +@.str506 = private unnamed_addr constant [6 x i8] c"pokep\00" +@.str507 = private unnamed_addr constant [12 x i8] c"is_windowed\00" +@.str508 = private unnamed_addr constant [11 x i8] c"game_title\00" +@.str509 = private unnamed_addr constant [9 x i8] c"win_open\00" +@.str510 = private unnamed_addr constant [9 x i8] c"win_poll\00" +@.str511 = private unnamed_addr constant [12 x i8] c"win_present\00" +@.str512 = private unnamed_addr constant [12 x i8] c"win_running\00" +@.str513 = private unnamed_addr constant [10 x i8] c"win_close\00" +@.str514 = private unnamed_addr constant [9 x i8] c"mem_free\00" +@.str515 = private unnamed_addr constant [23 x i8] c" call void @free(ptr \00" +@.str516 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str517 = private unnamed_addr constant [2 x i8] c"0\00" +@.str518 = private unnamed_addr constant [5 x i8] c"void\00" +@.str519 = private unnamed_addr constant [9 x i8] c"mem_copy\00" +@.str520 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str521 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str522 = private unnamed_addr constant [24 x i8] c" call ptr @memcpy(ptr \00" +@.str523 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str524 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str525 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str526 = private unnamed_addr constant [2 x i8] c"0\00" +@.str527 = private unnamed_addr constant [5 x i8] c"void\00" +@.str528 = private unnamed_addr constant [8 x i8] c"mem_set\00" +@.str529 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str530 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str531 = private unnamed_addr constant [24 x i8] c" call ptr @memset(ptr \00" +@.str532 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str533 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str534 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str535 = private unnamed_addr constant [2 x i8] c"0\00" +@.str536 = private unnamed_addr constant [5 x i8] c"void\00" +@.str537 = private unnamed_addr constant [8 x i8] c"ptr_add\00" +@.str538 = private unnamed_addr constant [3 x i8] c" \00" +@.str539 = private unnamed_addr constant [35 x i8] c" = getelementptr inbounds i8, ptr \00" +@.str540 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str541 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str542 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str543 = private unnamed_addr constant [10 x i8] c"read_byte\00" +@.str544 = private unnamed_addr constant [20 x i8] c"call i32 @getchar()\00" +@.str545 = private unnamed_addr constant [4 x i8] c"int\00" +@.str546 = private unnamed_addr constant [11 x i8] c"write_byte\00" +@.str547 = private unnamed_addr constant [25 x i8] c" call i32 @putchar(i32 \00" +@.str548 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str549 = private unnamed_addr constant [2 x i8] c"0\00" +@.str550 = private unnamed_addr constant [5 x i8] c"void\00" +@.str551 = private unnamed_addr constant [8 x i8] c"str_len\00" +@.str552 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" +@.str553 = private unnamed_addr constant [2 x i8] c")\00" +@.str554 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str555 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str556 = private unnamed_addr constant [4 x i8] c"int\00" +@.str557 = private unnamed_addr constant [8 x i8] c"os_time\00" +@.str558 = private unnamed_addr constant [25 x i8] c"call i64 @time(ptr null)\00" +@.str559 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str560 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str561 = private unnamed_addr constant [4 x i8] c"int\00" +@.str562 = private unnamed_addr constant [6 x i8] c"peekf\00" +@.str563 = private unnamed_addr constant [3 x i8] c" \00" +@.str564 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" +@.str565 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str566 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str567 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str568 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str569 = private unnamed_addr constant [6 x i8] c"pokef\00" +@.str570 = private unnamed_addr constant [3 x i8] c" \00" +@.str571 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds i32, ptr \00" +@.str572 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str573 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str574 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str575 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str576 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str577 = private unnamed_addr constant [2 x i8] c"0\00" +@.str578 = private unnamed_addr constant [5 x i8] c"void\00" +@.str579 = private unnamed_addr constant [6 x i8] c"peekp\00" +@.str580 = private unnamed_addr constant [3 x i8] c" \00" +@.str581 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds ptr, ptr \00" +@.str582 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str583 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str584 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" +@.str585 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str586 = private unnamed_addr constant [6 x i8] c"pokep\00" +@.str587 = private unnamed_addr constant [3 x i8] c" \00" +@.str588 = private unnamed_addr constant [36 x i8] c" = getelementptr inbounds ptr, ptr \00" +@.str589 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str590 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str591 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str592 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str593 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str594 = private unnamed_addr constant [2 x i8] c"0\00" +@.str595 = private unnamed_addr constant [5 x i8] c"void\00" +@.str596 = private unnamed_addr constant [9 x i8] c"as_fixed\00" +@.str597 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str598 = private unnamed_addr constant [7 x i8] c"as_int\00" +@.str599 = private unnamed_addr constant [4 x i8] c"int\00" +@.str600 = private unnamed_addr constant [12 x i8] c"is_windowed\00" +@.str601 = private unnamed_addr constant [2 x i8] c"1\00" +@.str602 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str603 = private unnamed_addr constant [2 x i8] c"0\00" +@.str604 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str605 = private unnamed_addr constant [11 x i8] c"game_title\00" +@.str606 = private unnamed_addr constant [12 x i8] c"@.gametitle\00" +@.str607 = private unnamed_addr constant [4 x i8] c"str\00" +@.str608 = private unnamed_addr constant [9 x i8] c"win_poll\00" +@.str609 = private unnamed_addr constant [21 x i8] c"call i32 @win_poll()\00" +@.str610 = private unnamed_addr constant [4 x i8] c"int\00" +@.str611 = private unnamed_addr constant [12 x i8] c"win_running\00" +@.str612 = private unnamed_addr constant [24 x i8] c"call i32 @win_running()\00" +@.str613 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str614 = private unnamed_addr constant [9 x i8] c"win_open\00" +@.str615 = private unnamed_addr constant [27 x i8] c" call void @win_open(i32 \00" +@.str616 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str617 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str618 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str619 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str620 = private unnamed_addr constant [2 x i8] c"0\00" +@.str621 = private unnamed_addr constant [5 x i8] c"void\00" +@.str622 = private unnamed_addr constant [12 x i8] c"win_present\00" +@.str623 = private unnamed_addr constant [30 x i8] c" call void @win_present(ptr \00" +@.str624 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str625 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str626 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str627 = private unnamed_addr constant [2 x i8] c"0\00" +@.str628 = private unnamed_addr constant [5 x i8] c"void\00" +@.str629 = private unnamed_addr constant [10 x i8] c"win_close\00" +@.str630 = private unnamed_addr constant [26 x i8] c" call void @win_close()\0A\00" +@.str631 = private unnamed_addr constant [2 x i8] c"0\00" +@.str632 = private unnamed_addr constant [5 x i8] c"void\00" @.str633 = private unnamed_addr constant [2 x i8] c"0\00" @.str634 = private unnamed_addr constant [5 x i8] c"void\00" -@.str635 = private unnamed_addr constant [12 x i8] c"win_present\00" -@.str636 = private unnamed_addr constant [30 x i8] c" call void @win_present(ptr \00" -@.str637 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str638 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str639 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str640 = private unnamed_addr constant [2 x i8] c"0\00" -@.str641 = private unnamed_addr constant [5 x i8] c"void\00" -@.str642 = private unnamed_addr constant [10 x i8] c"win_close\00" -@.str643 = private unnamed_addr constant [26 x i8] c" call void @win_close()\0A\00" -@.str644 = private unnamed_addr constant [2 x i8] c"0\00" -@.str645 = private unnamed_addr constant [5 x i8] c"void\00" -@.str646 = private unnamed_addr constant [2 x i8] c"0\00" -@.str647 = private unnamed_addr constant [5 x i8] c"void\00" -@.str648 = private unnamed_addr constant [4 x i8] c"min\00" -@.str649 = private unnamed_addr constant [4 x i8] c"max\00" -@.str650 = private unnamed_addr constant [4 x i8] c"abs\00" -@.str651 = private unnamed_addr constant [6 x i8] c"clamp\00" -@.str652 = private unnamed_addr constant [4 x i8] c"abs\00" -@.str653 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" -@.str654 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str655 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" -@.str656 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str635 = private unnamed_addr constant [4 x i8] c"min\00" +@.str636 = private unnamed_addr constant [4 x i8] c"max\00" +@.str637 = private unnamed_addr constant [4 x i8] c"abs\00" +@.str638 = private unnamed_addr constant [6 x i8] c"clamp\00" +@.str639 = private unnamed_addr constant [4 x i8] c"abs\00" +@.str640 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" +@.str641 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str642 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" +@.str643 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str644 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str645 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str646 = private unnamed_addr constant [4 x i8] c"int\00" +@.str647 = private unnamed_addr constant [4 x i8] c"min\00" +@.str648 = private unnamed_addr constant [4 x i8] c"max\00" +@.str649 = private unnamed_addr constant [4 x i8] c"slt\00" +@.str650 = private unnamed_addr constant [4 x i8] c"max\00" +@.str651 = private unnamed_addr constant [4 x i8] c"sgt\00" +@.str652 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str653 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str654 = private unnamed_addr constant [3 x i8] c", \00" +@.str655 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str656 = private unnamed_addr constant [7 x i8] c", i32 \00" @.str657 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str658 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str659 = private unnamed_addr constant [4 x i8] c"int\00" -@.str660 = private unnamed_addr constant [4 x i8] c"min\00" -@.str661 = private unnamed_addr constant [4 x i8] c"max\00" -@.str662 = private unnamed_addr constant [4 x i8] c"slt\00" -@.str663 = private unnamed_addr constant [4 x i8] c"max\00" -@.str664 = private unnamed_addr constant [4 x i8] c"sgt\00" -@.str665 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str666 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str667 = private unnamed_addr constant [3 x i8] c", \00" -@.str668 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str669 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str670 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str671 = private unnamed_addr constant [4 x i8] c"int\00" -@.str672 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" -@.str673 = private unnamed_addr constant [3 x i8] c", \00" -@.str674 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str675 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str676 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str677 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" -@.str678 = private unnamed_addr constant [3 x i8] c", \00" -@.str679 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str680 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str681 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str682 = private unnamed_addr constant [4 x i8] c"int\00" -@.str683 = private unnamed_addr constant [15 x i8] c"getelementptr \00" -@.str684 = private unnamed_addr constant [18 x i8] c", ptr null, i32 1\00" -@.str685 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" -@.str686 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str687 = private unnamed_addr constant [27 x i8] c"unknown record type in new\00" -@.str688 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" -@.str689 = private unnamed_addr constant [2 x i8] c")\00" -@.str690 = private unnamed_addr constant [3 x i8] c" \00" -@.str691 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" -@.str692 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str693 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str694 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str695 = private unnamed_addr constant [2 x i8] c"0\00" -@.str696 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str697 = private unnamed_addr constant [5 x i8] c"null\00" -@.str698 = private unnamed_addr constant [9 x i8] c" store \00" -@.str699 = private unnamed_addr constant [2 x i8] c" \00" -@.str700 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str658 = private unnamed_addr constant [4 x i8] c"int\00" +@.str659 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" +@.str660 = private unnamed_addr constant [3 x i8] c", \00" +@.str661 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str662 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str663 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str664 = private unnamed_addr constant [14 x i8] c"icmp sgt i32 \00" +@.str665 = private unnamed_addr constant [3 x i8] c", \00" +@.str666 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str667 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str668 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str669 = private unnamed_addr constant [4 x i8] c"int\00" +@.str670 = private unnamed_addr constant [15 x i8] c"getelementptr \00" +@.str671 = private unnamed_addr constant [18 x i8] c", ptr null, i32 1\00" +@.str672 = private unnamed_addr constant [14 x i8] c"ptrtoint ptr \00" +@.str673 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str674 = private unnamed_addr constant [27 x i8] c"unknown record type in new\00" +@.str675 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" +@.str676 = private unnamed_addr constant [2 x i8] c")\00" +@.str677 = private unnamed_addr constant [3 x i8] c" \00" +@.str678 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" +@.str679 = private unnamed_addr constant [7 x i8] c", ptr \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 [2 x i8] c"0\00" +@.str683 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str684 = private unnamed_addr constant [5 x i8] c"null\00" +@.str685 = private unnamed_addr constant [9 x i8] c" store \00" +@.str686 = private unnamed_addr constant [2 x i8] c" \00" +@.str687 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str688 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str689 = private unnamed_addr constant [8 x i8] c"%LSlice\00" +@.str690 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" +@.str691 = private unnamed_addr constant [2 x i8] c")\00" +@.str692 = private unnamed_addr constant [3 x i8] c" \00" +@.str693 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" +@.str694 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" +@.str695 = private unnamed_addr constant [23 x i8] c" store ptr null, ptr \00" +@.str696 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str697 = private unnamed_addr constant [3 x i8] c" \00" +@.str698 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" +@.str699 = private unnamed_addr constant [16 x i8] c", i32 0, i32 1\0A\00" +@.str700 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" @.str701 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str702 = private unnamed_addr constant [8 x i8] c"%LSlice\00" -@.str703 = private unnamed_addr constant [22 x i8] c"call ptr @malloc(i64 \00" -@.str704 = private unnamed_addr constant [2 x i8] c")\00" -@.str705 = private unnamed_addr constant [3 x i8] c" \00" -@.str706 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str707 = private unnamed_addr constant [16 x i8] c", i32 0, i32 0\0A\00" -@.str708 = private unnamed_addr constant [23 x i8] c" store ptr null, ptr \00" -@.str709 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str710 = private unnamed_addr constant [3 x i8] c" \00" -@.str711 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str712 = private unnamed_addr constant [16 x i8] c", i32 0, i32 1\0A\00" -@.str713 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" -@.str714 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str715 = private unnamed_addr constant [3 x i8] c" \00" -@.str716 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str717 = private unnamed_addr constant [16 x i8] c", i32 0, i32 2\0A\00" -@.str718 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" -@.str719 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str720 = private unnamed_addr constant [3 x i8] c" \00" -@.str721 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" -@.str722 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str723 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str724 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str725 = private unnamed_addr constant [4 x i8] c"int\00" -@.str726 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" -@.str727 = private unnamed_addr constant [2 x i8] c")\00" -@.str728 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str729 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str730 = private unnamed_addr constant [4 x i8] c"int\00" -@.str731 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str732 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str733 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" -@.str734 = private unnamed_addr constant [3 x i8] c", \00" -@.str735 = private unnamed_addr constant [5 x i8] c"grow\00" -@.str736 = private unnamed_addr constant [4 x i8] c"put\00" -@.str737 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str738 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str739 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str740 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str741 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str742 = private unnamed_addr constant [9 x i8] c"mul i32 \00" -@.str743 = private unnamed_addr constant [4 x i8] c", 2\00" -@.str744 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str745 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str746 = private unnamed_addr constant [11 x i8] c"select i1 \00" -@.str747 = private unnamed_addr constant [14 x i8] c", i32 8, i32 \00" -@.str748 = private unnamed_addr constant [10 x i8] c"zext i32 \00" -@.str749 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str750 = private unnamed_addr constant [9 x i8] c"mul i64 \00" -@.str751 = private unnamed_addr constant [3 x i8] c", \00" +@.str702 = private unnamed_addr constant [3 x i8] c" \00" +@.str703 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" +@.str704 = private unnamed_addr constant [16 x i8] c", i32 0, i32 2\0A\00" +@.str705 = private unnamed_addr constant [20 x i8] c" store i32 0, ptr \00" +@.str706 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str707 = private unnamed_addr constant [3 x i8] c" \00" +@.str708 = private unnamed_addr constant [40 x i8] c" = getelementptr inbounds %LSlice, ptr \00" +@.str709 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str710 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str711 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str712 = private unnamed_addr constant [4 x i8] c"int\00" +@.str713 = private unnamed_addr constant [22 x i8] c"call i64 @strlen(ptr \00" +@.str714 = private unnamed_addr constant [2 x i8] c")\00" +@.str715 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str716 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str717 = private unnamed_addr constant [4 x i8] c"int\00" +@.str718 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str719 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str720 = private unnamed_addr constant [14 x i8] c"icmp sge i32 \00" +@.str721 = private unnamed_addr constant [3 x i8] c", \00" +@.str722 = private unnamed_addr constant [5 x i8] c"grow\00" +@.str723 = private unnamed_addr constant [4 x i8] c"put\00" +@.str724 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str725 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str726 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str727 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str728 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str729 = private unnamed_addr constant [9 x i8] c"mul i32 \00" +@.str730 = private unnamed_addr constant [4 x i8] c", 2\00" +@.str731 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str732 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str733 = private unnamed_addr constant [11 x i8] c"select i1 \00" +@.str734 = private unnamed_addr constant [14 x i8] c", i32 8, i32 \00" +@.str735 = private unnamed_addr constant [10 x i8] c"zext i32 \00" +@.str736 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str737 = private unnamed_addr constant [9 x i8] c"mul i64 \00" +@.str738 = private unnamed_addr constant [3 x i8] c", \00" +@.str739 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" +@.str740 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" +@.str741 = private unnamed_addr constant [7 x i8] c", i64 \00" +@.str742 = private unnamed_addr constant [2 x i8] c")\00" +@.str743 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str744 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str745 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str746 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str747 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str748 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str749 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str750 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str751 = private unnamed_addr constant [3 x i8] c":\0A\00" @.str752 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" -@.str753 = private unnamed_addr constant [23 x i8] c"call ptr @realloc(ptr \00" -@.str754 = private unnamed_addr constant [7 x i8] c", i64 \00" -@.str755 = private unnamed_addr constant [2 x i8] c")\00" -@.str756 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str757 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str758 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str759 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str753 = private unnamed_addr constant [3 x i8] c" \00" +@.str754 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" +@.str755 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str756 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str757 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str758 = private unnamed_addr constant [9 x i8] c" store \00" +@.str759 = private unnamed_addr constant [2 x i8] c" \00" @.str760 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str761 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str762 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str763 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str764 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str765 = private unnamed_addr constant [15 x i8] c"load ptr, ptr \00" -@.str766 = private unnamed_addr constant [3 x i8] c" \00" -@.str767 = private unnamed_addr constant [27 x i8] c" = getelementptr inbounds \00" -@.str768 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str769 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str770 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str771 = private unnamed_addr constant [9 x i8] c" store \00" -@.str772 = private unnamed_addr constant [2 x i8] c" \00" -@.str773 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str774 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str775 = private unnamed_addr constant [9 x i8] c"add i32 \00" -@.str776 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str777 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str778 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str779 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str780 = private unnamed_addr constant [2 x i8] c"0\00" -@.str781 = private unnamed_addr constant [5 x i8] c"void\00" -@.str782 = private unnamed_addr constant [6 x i8] c"load \00" -@.str783 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str784 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str785 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str786 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str787 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str788 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str789 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str790 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str791 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str792 = private unnamed_addr constant [3 x i8] c"sc\00" -@.str793 = private unnamed_addr constant [6 x i8] c"scend\00" -@.str794 = private unnamed_addr constant [4 x i8] c"and\00" -@.str795 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str796 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str797 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str798 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str799 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str800 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str801 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str802 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str803 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str804 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str805 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str806 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str807 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str808 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str809 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str810 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str811 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str812 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str813 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str814 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str815 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str816 = private unnamed_addr constant [2 x i8] c"<\00" -@.str817 = private unnamed_addr constant [4 x i8] c"slt\00" -@.str818 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str819 = private unnamed_addr constant [4 x i8] c"sle\00" -@.str820 = private unnamed_addr constant [2 x i8] c">\00" -@.str821 = private unnamed_addr constant [4 x i8] c"sgt\00" -@.str822 = private unnamed_addr constant [3 x i8] c">=\00" -@.str823 = private unnamed_addr constant [4 x i8] c"sge\00" -@.str824 = private unnamed_addr constant [3 x i8] c"==\00" -@.str825 = private unnamed_addr constant [3 x i8] c"eq\00" -@.str826 = private unnamed_addr constant [3 x i8] c"ne\00" -@.str827 = private unnamed_addr constant [2 x i8] c"<\00" -@.str828 = private unnamed_addr constant [3 x i8] c"<=\00" -@.str829 = private unnamed_addr constant [2 x i8] c">\00" -@.str830 = private unnamed_addr constant [3 x i8] c">=\00" -@.str831 = private unnamed_addr constant [3 x i8] c"==\00" -@.str832 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str833 = private unnamed_addr constant [2 x i8] c"+\00" -@.str834 = private unnamed_addr constant [4 x i8] c"add\00" -@.str835 = private unnamed_addr constant [2 x i8] c"-\00" -@.str836 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str837 = private unnamed_addr constant [2 x i8] c"*\00" -@.str838 = private unnamed_addr constant [4 x i8] c"mul\00" -@.str839 = private unnamed_addr constant [2 x i8] c"/\00" -@.str840 = private unnamed_addr constant [5 x i8] c"sdiv\00" -@.str841 = private unnamed_addr constant [2 x i8] c"&\00" -@.str842 = private unnamed_addr constant [4 x i8] c"and\00" -@.str843 = private unnamed_addr constant [2 x i8] c"|\00" -@.str844 = private unnamed_addr constant [3 x i8] c"or\00" -@.str845 = private unnamed_addr constant [2 x i8] c"^\00" -@.str846 = private unnamed_addr constant [4 x i8] c"xor\00" -@.str847 = private unnamed_addr constant [3 x i8] c"<<\00" -@.str848 = private unnamed_addr constant [4 x i8] c"shl\00" -@.str849 = private unnamed_addr constant [3 x i8] c">>\00" -@.str850 = private unnamed_addr constant [5 x i8] c"lshr\00" -@.str851 = private unnamed_addr constant [5 x i8] c"srem\00" -@.str852 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str853 = private unnamed_addr constant [9 x i8] c"shl i32 \00" -@.str854 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str855 = private unnamed_addr constant [2 x i8] c"+\00" -@.str856 = private unnamed_addr constant [29 x i8] c"call ptr @fn_str_concat(ptr \00" -@.str857 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str858 = private unnamed_addr constant [2 x i8] c")\00" -@.str859 = private unnamed_addr constant [4 x i8] c"str\00" -@.str860 = private unnamed_addr constant [25 x i8] c"call i32 @fn_str_eq(ptr \00" -@.str861 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str862 = private unnamed_addr constant [2 x i8] c")\00" -@.str863 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str864 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str865 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str866 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str867 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str868 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str869 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str870 = private unnamed_addr constant [4 x i8] c"and\00" -@.str871 = private unnamed_addr constant [3 x i8] c"or\00" -@.str872 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str873 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str874 = private unnamed_addr constant [2 x i8] c"+\00" -@.str875 = private unnamed_addr constant [2 x i8] c"+\00" -@.str876 = private unnamed_addr constant [3 x i8] c"==\00" -@.str877 = private unnamed_addr constant [3 x i8] c"!=\00" -@.str878 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str879 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str880 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str881 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str882 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str883 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str884 = private unnamed_addr constant [6 x i8] c"icmp \00" -@.str885 = private unnamed_addr constant [2 x i8] c" \00" -@.str886 = private unnamed_addr constant [2 x i8] c" \00" -@.str887 = private unnamed_addr constant [3 x i8] c", \00" -@.str888 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str889 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str890 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str891 = private unnamed_addr constant [2 x i8] c"*\00" -@.str892 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str893 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str894 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str895 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str896 = private unnamed_addr constant [9 x i8] c"mul i64 \00" -@.str897 = private unnamed_addr constant [3 x i8] c", \00" -@.str898 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" -@.str899 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str900 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str901 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str902 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str903 = private unnamed_addr constant [2 x i8] c"/\00" -@.str904 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str905 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str906 = private unnamed_addr constant [9 x i8] c"shl i64 \00" -@.str907 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str908 = private unnamed_addr constant [10 x i8] c"sext i32 \00" -@.str909 = private unnamed_addr constant [8 x i8] c" to i64\00" -@.str910 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" -@.str911 = private unnamed_addr constant [3 x i8] c", \00" -@.str912 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" -@.str913 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str914 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str915 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str916 = private unnamed_addr constant [3 x i8] c", \00" -@.str917 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str918 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str919 = private unnamed_addr constant [3 x i8] c", \00" -@.str920 = private unnamed_addr constant [4 x i8] c"int\00" -@.str921 = private unnamed_addr constant [5 x i8] c"self\00" +@.str762 = private unnamed_addr constant [9 x i8] c"add i32 \00" +@.str763 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str764 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str765 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str766 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str767 = private unnamed_addr constant [2 x i8] c"0\00" +@.str768 = private unnamed_addr constant [5 x i8] c"void\00" +@.str769 = private unnamed_addr constant [6 x i8] c"load \00" +@.str770 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str771 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str772 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str773 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str774 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str775 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str776 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str777 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str778 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str779 = private unnamed_addr constant [3 x i8] c"sc\00" +@.str780 = private unnamed_addr constant [6 x i8] c"scend\00" +@.str781 = private unnamed_addr constant [4 x i8] c"and\00" +@.str782 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str783 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str784 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str785 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str786 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str787 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str788 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str789 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str790 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str791 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str792 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str793 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str794 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str795 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str796 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str797 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str798 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str799 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str800 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str801 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str802 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str803 = private unnamed_addr constant [2 x i8] c"<\00" +@.str804 = private unnamed_addr constant [4 x i8] c"slt\00" +@.str805 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str806 = private unnamed_addr constant [4 x i8] c"sle\00" +@.str807 = private unnamed_addr constant [2 x i8] c">\00" +@.str808 = private unnamed_addr constant [4 x i8] c"sgt\00" +@.str809 = private unnamed_addr constant [3 x i8] c">=\00" +@.str810 = private unnamed_addr constant [4 x i8] c"sge\00" +@.str811 = private unnamed_addr constant [3 x i8] c"==\00" +@.str812 = private unnamed_addr constant [3 x i8] c"eq\00" +@.str813 = private unnamed_addr constant [3 x i8] c"ne\00" +@.str814 = private unnamed_addr constant [2 x i8] c"<\00" +@.str815 = private unnamed_addr constant [3 x i8] c"<=\00" +@.str816 = private unnamed_addr constant [2 x i8] c">\00" +@.str817 = private unnamed_addr constant [3 x i8] c">=\00" +@.str818 = private unnamed_addr constant [3 x i8] c"==\00" +@.str819 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str820 = private unnamed_addr constant [2 x i8] c"+\00" +@.str821 = private unnamed_addr constant [4 x i8] c"add\00" +@.str822 = private unnamed_addr constant [2 x i8] c"-\00" +@.str823 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str824 = private unnamed_addr constant [2 x i8] c"*\00" +@.str825 = private unnamed_addr constant [4 x i8] c"mul\00" +@.str826 = private unnamed_addr constant [2 x i8] c"/\00" +@.str827 = private unnamed_addr constant [5 x i8] c"sdiv\00" +@.str828 = private unnamed_addr constant [2 x i8] c"&\00" +@.str829 = private unnamed_addr constant [4 x i8] c"and\00" +@.str830 = private unnamed_addr constant [2 x i8] c"|\00" +@.str831 = private unnamed_addr constant [3 x i8] c"or\00" +@.str832 = private unnamed_addr constant [2 x i8] c"^\00" +@.str833 = private unnamed_addr constant [4 x i8] c"xor\00" +@.str834 = private unnamed_addr constant [3 x i8] c"<<\00" +@.str835 = private unnamed_addr constant [4 x i8] c"shl\00" +@.str836 = private unnamed_addr constant [3 x i8] c">>\00" +@.str837 = private unnamed_addr constant [5 x i8] c"lshr\00" +@.str838 = private unnamed_addr constant [5 x i8] c"srem\00" +@.str839 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str840 = private unnamed_addr constant [9 x i8] c"shl i32 \00" +@.str841 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str842 = private unnamed_addr constant [2 x i8] c"+\00" +@.str843 = private unnamed_addr constant [29 x i8] c"call ptr @fn_str_concat(ptr \00" +@.str844 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str845 = private unnamed_addr constant [2 x i8] c")\00" +@.str846 = private unnamed_addr constant [4 x i8] c"str\00" +@.str847 = private unnamed_addr constant [25 x i8] c"call i32 @fn_str_eq(ptr \00" +@.str848 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str849 = private unnamed_addr constant [2 x i8] c")\00" +@.str850 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str851 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str852 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str853 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str854 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str855 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str856 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str857 = private unnamed_addr constant [4 x i8] c"and\00" +@.str858 = private unnamed_addr constant [3 x i8] c"or\00" +@.str859 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str860 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str861 = private unnamed_addr constant [2 x i8] c"+\00" +@.str862 = private unnamed_addr constant [2 x i8] c"+\00" +@.str863 = private unnamed_addr constant [3 x i8] c"==\00" +@.str864 = private unnamed_addr constant [3 x i8] c"!=\00" +@.str865 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str866 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str867 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str868 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str869 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str870 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str871 = private unnamed_addr constant [6 x i8] c"icmp \00" +@.str872 = private unnamed_addr constant [2 x i8] c" \00" +@.str873 = private unnamed_addr constant [2 x i8] c" \00" +@.str874 = private unnamed_addr constant [3 x i8] c", \00" +@.str875 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str876 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str877 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str878 = private unnamed_addr constant [2 x i8] c"*\00" +@.str879 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str880 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str881 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str882 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str883 = private unnamed_addr constant [9 x i8] c"mul i64 \00" +@.str884 = private unnamed_addr constant [3 x i8] c", \00" +@.str885 = private unnamed_addr constant [10 x i8] c"ashr i64 \00" +@.str886 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str887 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str888 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str889 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str890 = private unnamed_addr constant [2 x i8] c"/\00" +@.str891 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str892 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str893 = private unnamed_addr constant [9 x i8] c"shl i64 \00" +@.str894 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str895 = private unnamed_addr constant [10 x i8] c"sext i32 \00" +@.str896 = private unnamed_addr constant [8 x i8] c" to i64\00" +@.str897 = private unnamed_addr constant [10 x i8] c"sdiv i64 \00" +@.str898 = private unnamed_addr constant [3 x i8] c", \00" +@.str899 = private unnamed_addr constant [11 x i8] c"trunc i64 \00" +@.str900 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str901 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str902 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str903 = private unnamed_addr constant [3 x i8] c", \00" +@.str904 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str905 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str906 = private unnamed_addr constant [3 x i8] c", \00" +@.str907 = private unnamed_addr constant [4 x i8] c"int\00" +@.str908 = private unnamed_addr constant [5 x i8] c"self\00" +@.str909 = private unnamed_addr constant [2 x i8] c"0\00" +@.str910 = private unnamed_addr constant [7 x i8] c"entity\00" +@.str911 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str912 = private unnamed_addr constant [7 x i8] c"entity\00" +@.str913 = private unnamed_addr constant [4 x i8] c"key\00" +@.str914 = private unnamed_addr constant [21 x i8] c"load i32, ptr @L_key\00" +@.str915 = private unnamed_addr constant [4 x i8] c"int\00" +@.str916 = private unnamed_addr constant [5 x i8] c"save\00" +@.str917 = private unnamed_addr constant [23 x i8] c" call void @L_save()\0A\00" +@.str918 = private unnamed_addr constant [2 x i8] c"0\00" +@.str919 = private unnamed_addr constant [5 x i8] c"void\00" +@.str920 = private unnamed_addr constant [9 x i8] c"ui_build\00" +@.str921 = private unnamed_addr constant [25 x i8] c" call void @ui_build()\0A\00" @.str922 = private unnamed_addr constant [2 x i8] c"0\00" -@.str923 = private unnamed_addr constant [7 x i8] c"entity\00" -@.str924 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str925 = private unnamed_addr constant [7 x i8] c"entity\00" -@.str926 = private unnamed_addr constant [4 x i8] c"key\00" -@.str927 = private unnamed_addr constant [21 x i8] c"load i32, ptr @L_key\00" -@.str928 = private unnamed_addr constant [4 x i8] c"int\00" -@.str929 = private unnamed_addr constant [5 x i8] c"save\00" -@.str930 = private unnamed_addr constant [23 x i8] c" call void @L_save()\0A\00" -@.str931 = private unnamed_addr constant [2 x i8] c"0\00" -@.str932 = private unnamed_addr constant [5 x i8] c"void\00" -@.str933 = private unnamed_addr constant [9 x i8] c"ui_build\00" -@.str934 = private unnamed_addr constant [25 x i8] c" call void @ui_build()\0A\00" -@.str935 = private unnamed_addr constant [2 x i8] c"0\00" -@.str936 = private unnamed_addr constant [5 x i8] c"void\00" -@.str937 = private unnamed_addr constant [5 x i8] c"load\00" -@.str938 = private unnamed_addr constant [19 x i8] c"call i32 @L_load()\00" -@.str939 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str940 = private unnamed_addr constant [5 x i8] c"quit\00" -@.str941 = private unnamed_addr constant [31 x i8] c" store i32 0, ptr @L_running\0A\00" -@.str942 = private unnamed_addr constant [2 x i8] c"0\00" -@.str943 = private unnamed_addr constant [5 x i8] c"void\00" -@.str944 = private unnamed_addr constant [4 x i8] c"len\00" -@.str945 = private unnamed_addr constant [5 x i8] c"push\00" -@.str946 = private unnamed_addr constant [4 x i8] c"str\00" -@.str947 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str948 = private unnamed_addr constant [26 x i8] c"call ptr @fn_int_str(i32 \00" -@.str949 = private unnamed_addr constant [2 x i8] c")\00" -@.str950 = private unnamed_addr constant [4 x i8] c"str\00" -@.str951 = private unnamed_addr constant [6 x i8] c"print\00" -@.str952 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str953 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" -@.str954 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str955 = private unnamed_addr constant [50 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_int, i32 \00" -@.str956 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str923 = private unnamed_addr constant [5 x i8] c"void\00" +@.str924 = private unnamed_addr constant [5 x i8] c"load\00" +@.str925 = private unnamed_addr constant [19 x i8] c"call i32 @L_load()\00" +@.str926 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str927 = private unnamed_addr constant [5 x i8] c"quit\00" +@.str928 = private unnamed_addr constant [31 x i8] c" store i32 0, ptr @L_running\0A\00" +@.str929 = private unnamed_addr constant [2 x i8] c"0\00" +@.str930 = private unnamed_addr constant [5 x i8] c"void\00" +@.str931 = private unnamed_addr constant [4 x i8] c"len\00" +@.str932 = private unnamed_addr constant [5 x i8] c"push\00" +@.str933 = private unnamed_addr constant [4 x i8] c"str\00" +@.str934 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str935 = private unnamed_addr constant [26 x i8] c"call ptr @fn_int_str(i32 \00" +@.str936 = private unnamed_addr constant [2 x i8] c")\00" +@.str937 = private unnamed_addr constant [4 x i8] c"str\00" +@.str938 = private unnamed_addr constant [6 x i8] c"print\00" +@.str939 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str940 = private unnamed_addr constant [51 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_line, ptr \00" +@.str941 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str942 = private unnamed_addr constant [50 x i8] c" call i32 (ptr, ...) @printf(ptr @.fmt_int, i32 \00" +@.str943 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str944 = private unnamed_addr constant [2 x i8] c"0\00" +@.str945 = private unnamed_addr constant [5 x i8] c"void\00" +@.str946 = private unnamed_addr constant [3 x i8] c"fx\00" +@.str947 = private unnamed_addr constant [9 x i8] c"shl i32 \00" +@.str948 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str949 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str950 = private unnamed_addr constant [4 x i8] c"flr\00" +@.str951 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" +@.str952 = private unnamed_addr constant [5 x i8] c", 16\00" +@.str953 = private unnamed_addr constant [4 x i8] c"int\00" +@.str954 = private unnamed_addr constant [4 x i8] c"rt_\00" +@.str955 = private unnamed_addr constant [18 x i8] c"unknown function \00" +@.str956 = private unnamed_addr constant [3 x i8] c" \00" @.str957 = private unnamed_addr constant [2 x i8] c"0\00" @.str958 = private unnamed_addr constant [5 x i8] c"void\00" -@.str959 = private unnamed_addr constant [3 x i8] c"fx\00" -@.str960 = private unnamed_addr constant [9 x i8] c"shl i32 \00" -@.str961 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str962 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str963 = private unnamed_addr constant [4 x i8] c"flr\00" -@.str964 = private unnamed_addr constant [10 x i8] c"ashr i32 \00" -@.str965 = private unnamed_addr constant [5 x i8] c", 16\00" -@.str966 = private unnamed_addr constant [4 x i8] c"int\00" -@.str967 = private unnamed_addr constant [4 x i8] c"rt_\00" -@.str968 = private unnamed_addr constant [18 x i8] c"unknown function \00" -@.str969 = private unnamed_addr constant [3 x i8] c" \00" -@.str970 = private unnamed_addr constant [2 x i8] c"0\00" -@.str971 = private unnamed_addr constant [5 x i8] c"void\00" -@.str972 = private unnamed_addr constant [4 x i8] c" = \00" -@.str973 = private unnamed_addr constant [6 x i8] c"call \00" -@.str974 = private unnamed_addr constant [6 x i8] c" @fn_\00" -@.str975 = private unnamed_addr constant [2 x i8] c"(\00" -@.str976 = private unnamed_addr constant [3 x i8] c", \00" -@.str977 = private unnamed_addr constant [2 x i8] c" \00" -@.str978 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str979 = private unnamed_addr constant [2 x i8] c"0\00" -@.str980 = private unnamed_addr constant [4 x i8] c"int\00" -@.str981 = private unnamed_addr constant [4 x i8] c"int\00" -@.str982 = private unnamed_addr constant [6 x i8] c"fixed\00" -@.str983 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str984 = private unnamed_addr constant [5 x i8] c"null\00" -@.str985 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str986 = private unnamed_addr constant [28 x i8] c"call ptr @fn_str_slice(ptr \00" -@.str987 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str988 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str989 = private unnamed_addr constant [2 x i8] c")\00" -@.str990 = private unnamed_addr constant [4 x i8] c"str\00" -@.str991 = private unnamed_addr constant [4 x i8] c"str\00" +@.str959 = private unnamed_addr constant [4 x i8] c" = \00" +@.str960 = private unnamed_addr constant [6 x i8] c"call \00" +@.str961 = private unnamed_addr constant [6 x i8] c" @fn_\00" +@.str962 = private unnamed_addr constant [2 x i8] c"(\00" +@.str963 = private unnamed_addr constant [3 x i8] c", \00" +@.str964 = private unnamed_addr constant [2 x i8] c" \00" +@.str965 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str966 = private unnamed_addr constant [2 x i8] c"0\00" +@.str967 = private unnamed_addr constant [4 x i8] c"int\00" +@.str968 = private unnamed_addr constant [4 x i8] c"int\00" +@.str969 = private unnamed_addr constant [6 x i8] c"fixed\00" +@.str970 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str971 = private unnamed_addr constant [5 x i8] c"null\00" +@.str972 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str973 = private unnamed_addr constant [28 x i8] c"call ptr @fn_str_slice(ptr \00" +@.str974 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str975 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str976 = private unnamed_addr constant [2 x i8] c")\00" +@.str977 = private unnamed_addr constant [4 x i8] c"str\00" +@.str978 = private unnamed_addr constant [4 x i8] c"str\00" +@.str979 = private unnamed_addr constant [4 x i8] c"int\00" +@.str980 = private unnamed_addr constant [6 x i8] c"load \00" +@.str981 = private unnamed_addr constant [10 x i8] c", ptr @g_\00" +@.str982 = private unnamed_addr constant [4 x i8] c"int\00" +@.str983 = private unnamed_addr constant [20 x i8] c"unknown identifier \00" +@.str984 = private unnamed_addr constant [4 x i8] c"int\00" +@.str985 = private unnamed_addr constant [5 x i8] c"byte\00" +@.str986 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" +@.str987 = private unnamed_addr constant [9 x i8] c"zext i8 \00" +@.str988 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str989 = private unnamed_addr constant [4 x i8] c"int\00" +@.str990 = private unnamed_addr constant [2 x i8] c"-\00" +@.str991 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" @.str992 = private unnamed_addr constant [4 x i8] c"int\00" -@.str993 = private unnamed_addr constant [6 x i8] c"load \00" -@.str994 = private unnamed_addr constant [10 x i8] c", ptr @g_\00" -@.str995 = private unnamed_addr constant [4 x i8] c"int\00" -@.str996 = private unnamed_addr constant [20 x i8] c"unknown identifier \00" -@.str997 = private unnamed_addr constant [4 x i8] c"int\00" -@.str998 = private unnamed_addr constant [5 x i8] c"byte\00" -@.str999 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" -@.str1000 = private unnamed_addr constant [9 x i8] c"zext i8 \00" -@.str1001 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str1002 = private unnamed_addr constant [4 x i8] c"int\00" -@.str1003 = private unnamed_addr constant [2 x i8] c"-\00" -@.str1004 = private unnamed_addr constant [12 x i8] c"sub i32 0, \00" -@.str1005 = private unnamed_addr constant [4 x i8] c"int\00" -@.str1006 = private unnamed_addr constant [2 x i8] c"~\00" -@.str1007 = private unnamed_addr constant [9 x i8] c"xor i32 \00" -@.str1008 = private unnamed_addr constant [5 x i8] c", -1\00" -@.str1009 = private unnamed_addr constant [4 x i8] c"int\00" -@.str1010 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str1011 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1012 = private unnamed_addr constant [9 x i8] c"zext i1 \00" -@.str1013 = private unnamed_addr constant [8 x i8] c" to i32\00" -@.str1014 = private unnamed_addr constant [5 x i8] c"bool\00" -@.str1015 = private unnamed_addr constant [23 x i8] c"cannot emit expression\00" -@.str1016 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1017 = private unnamed_addr constant [4 x i8] c"int\00" -@.str1018 = private unnamed_addr constant [9 x i8] c" store \00" -@.str1019 = private unnamed_addr constant [2 x i8] c" \00" -@.str1020 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1021 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1022 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1023 = private unnamed_addr constant [4 x i8] c"int\00" -@.str1024 = private unnamed_addr constant [29 x i8] c"cannot assign to immutable '\00" -@.str1025 = private unnamed_addr constant [41 x i8] c"' (declared with let; use var) \E2\80\94 line \00" -@.str1026 = private unnamed_addr constant [19 x i8] c"assign to unknown \00" -@.str1027 = private unnamed_addr constant [4 x i8] c"@g_\00" -@.str1028 = private unnamed_addr constant [22 x i8] c"bad assignment target\00" -@.str1029 = private unnamed_addr constant [2 x i8] c"=\00" -@.str1030 = private unnamed_addr constant [6 x i8] c"load \00" -@.str1031 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1032 = private unnamed_addr constant [4 x i8] c"add\00" -@.str1033 = private unnamed_addr constant [3 x i8] c"-=\00" -@.str1034 = private unnamed_addr constant [4 x i8] c"sub\00" -@.str1035 = private unnamed_addr constant [3 x i8] c"*=\00" -@.str1036 = private unnamed_addr constant [4 x i8] c"mul\00" -@.str1037 = private unnamed_addr constant [3 x i8] c"/=\00" -@.str1038 = private unnamed_addr constant [5 x i8] c"sdiv\00" -@.str1039 = private unnamed_addr constant [6 x i8] c" i32 \00" -@.str1040 = private unnamed_addr constant [3 x i8] c", \00" -@.str1041 = private unnamed_addr constant [3 x i8] c"i8\00" -@.str1042 = private unnamed_addr constant [11 x i8] c"trunc i32 \00" -@.str1043 = private unnamed_addr constant [7 x i8] c" to i8\00" -@.str1044 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1045 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1046 = private unnamed_addr constant [5 x i8] c"then\00" -@.str1047 = private unnamed_addr constant [5 x i8] c"else\00" -@.str1048 = private unnamed_addr constant [6 x i8] c"ifend\00" -@.str1049 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1050 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1051 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1052 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1053 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1054 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1055 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1056 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1057 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1058 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1059 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1060 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1061 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str993 = private unnamed_addr constant [2 x i8] c"~\00" +@.str994 = private unnamed_addr constant [9 x i8] c"xor i32 \00" +@.str995 = private unnamed_addr constant [5 x i8] c", -1\00" +@.str996 = private unnamed_addr constant [4 x i8] c"int\00" +@.str997 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str998 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str999 = private unnamed_addr constant [9 x i8] c"zext i1 \00" +@.str1000 = private unnamed_addr constant [8 x i8] c" to i32\00" +@.str1001 = private unnamed_addr constant [5 x i8] c"bool\00" +@.str1002 = private unnamed_addr constant [23 x i8] c"cannot emit expression\00" +@.str1003 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1004 = private unnamed_addr constant [4 x i8] c"int\00" +@.str1005 = private unnamed_addr constant [9 x i8] c" store \00" +@.str1006 = private unnamed_addr constant [2 x i8] c" \00" +@.str1007 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1008 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1009 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1010 = private unnamed_addr constant [4 x i8] c"int\00" +@.str1011 = private unnamed_addr constant [29 x i8] c"cannot assign to immutable '\00" +@.str1012 = private unnamed_addr constant [41 x i8] c"' (declared with let; use var) \E2\80\94 line \00" +@.str1013 = private unnamed_addr constant [19 x i8] c"assign to unknown \00" +@.str1014 = private unnamed_addr constant [4 x i8] c"@g_\00" +@.str1015 = private unnamed_addr constant [22 x i8] c"bad assignment target\00" +@.str1016 = private unnamed_addr constant [2 x i8] c"=\00" +@.str1017 = private unnamed_addr constant [6 x i8] c"load \00" +@.str1018 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1019 = private unnamed_addr constant [4 x i8] c"add\00" +@.str1020 = private unnamed_addr constant [3 x i8] c"-=\00" +@.str1021 = private unnamed_addr constant [4 x i8] c"sub\00" +@.str1022 = private unnamed_addr constant [3 x i8] c"*=\00" +@.str1023 = private unnamed_addr constant [4 x i8] c"mul\00" +@.str1024 = private unnamed_addr constant [3 x i8] c"/=\00" +@.str1025 = private unnamed_addr constant [5 x i8] c"sdiv\00" +@.str1026 = private unnamed_addr constant [6 x i8] c" i32 \00" +@.str1027 = private unnamed_addr constant [3 x i8] c", \00" +@.str1028 = private unnamed_addr constant [3 x i8] c"i8\00" +@.str1029 = private unnamed_addr constant [11 x i8] c"trunc i32 \00" +@.str1030 = private unnamed_addr constant [7 x i8] c" to i8\00" +@.str1031 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1032 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1033 = private unnamed_addr constant [5 x i8] c"then\00" +@.str1034 = private unnamed_addr constant [5 x i8] c"else\00" +@.str1035 = private unnamed_addr constant [6 x i8] c"ifend\00" +@.str1036 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1037 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1038 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1039 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1040 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1041 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1042 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1043 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1044 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1045 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1046 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1047 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1048 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1049 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1050 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1051 = private unnamed_addr constant [6 x i8] c"wcond\00" +@.str1052 = private unnamed_addr constant [6 x i8] c"wbody\00" +@.str1053 = private unnamed_addr constant [5 x i8] c"wend\00" +@.str1054 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1055 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1056 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1057 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1058 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1059 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1060 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1061 = private unnamed_addr constant [10 x i8] c", label %\00" @.str1062 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1063 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1064 = private unnamed_addr constant [6 x i8] c"wcond\00" -@.str1065 = private unnamed_addr constant [6 x i8] c"wbody\00" -@.str1066 = private unnamed_addr constant [5 x i8] c"wend\00" -@.str1067 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1068 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1069 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1070 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1071 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1072 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1073 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1074 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1064 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1065 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1066 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1067 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1068 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1069 = private unnamed_addr constant [4 x i8] c"int\00" +@.str1070 = private unnamed_addr constant [6 x i8] c"fcond\00" +@.str1071 = private unnamed_addr constant [6 x i8] c"fbody\00" +@.str1072 = private unnamed_addr constant [6 x i8] c"fcont\00" +@.str1073 = private unnamed_addr constant [5 x i8] c"fend\00" +@.str1074 = private unnamed_addr constant [13 x i8] c" br label %\00" @.str1075 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1076 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1077 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1078 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1079 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1080 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1081 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1082 = private unnamed_addr constant [4 x i8] c"int\00" -@.str1083 = private unnamed_addr constant [6 x i8] c"fcond\00" -@.str1084 = private unnamed_addr constant [6 x i8] c"fbody\00" -@.str1085 = private unnamed_addr constant [6 x i8] c"fcont\00" -@.str1086 = private unnamed_addr constant [5 x i8] c"fend\00" -@.str1087 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1088 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1089 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1090 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1091 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" -@.str1092 = private unnamed_addr constant [3 x i8] c", \00" -@.str1093 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1094 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1095 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1096 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1097 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1098 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1099 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1100 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1101 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1102 = private unnamed_addr constant [9 x i8] c"add i32 \00" -@.str1103 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str1104 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1105 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1106 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1107 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1108 = private unnamed_addr constant [8 x i8] c"%retval\00" -@.str1109 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1110 = private unnamed_addr constant [2 x i8] c"_\00" -@.str1111 = private unnamed_addr constant [5 x i8] c"mend\00" -@.str1112 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1113 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str1114 = private unnamed_addr constant [3 x i8] c", \00" -@.str1115 = private unnamed_addr constant [7 x i8] c"or i1 \00" -@.str1116 = private unnamed_addr constant [3 x i8] c", \00" -@.str1117 = private unnamed_addr constant [6 x i8] c"mbody\00" -@.str1118 = private unnamed_addr constant [5 x i8] c"marm\00" -@.str1119 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1120 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1121 = private unnamed_addr constant [10 x i8] c", 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 [13 x i8] c" br label %\00" -@.str1125 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1126 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1127 = private unnamed_addr constant [13 x i8] c" br 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 [2 x i8] c"0\00" -@.str1131 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1132 = private unnamed_addr constant [5 x i8] c"null\00" -@.str1133 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1134 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1135 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1136 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1137 = private unnamed_addr constant [22 x i8] c"cannot emit statement\00" -@.str1138 = private unnamed_addr constant [36 x i8] c"@L_running = internal global i32 1\0A\00" -@.str1139 = private unnamed_addr constant [32 x i8] c"@L_key = internal global i32 0\0A\00" -@.str1140 = private unnamed_addr constant [33 x i8] c"@L_entc = internal global i32 0\0A\00" -@.str1141 = private unnamed_addr constant [29 x i8] c"@L_alive = internal global [\00" -@.str1142 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" -@.str1143 = private unnamed_addr constant [28 x i8] c"@L_kind = internal global [\00" -@.str1144 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" -@.str1145 = private unnamed_addr constant [32 x i8] c"@L_freelist = internal global [\00" -@.str1146 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" -@.str1147 = private unnamed_addr constant [34 x i8] c"@L_freen = internal global i32 0\0A\00" -@.str1148 = private unnamed_addr constant [4 x i8] c"@S_\00" -@.str1149 = private unnamed_addr constant [21 x i8] c" = internal global [\00" -@.str1150 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1151 = private unnamed_addr constant [19 x i8] c"] zeroinitializer\0A\00" -@.str1152 = private unnamed_addr constant [4 x i8] c"@H_\00" -@.str1153 = private unnamed_addr constant [21 x i8] c" = internal global [\00" -@.str1154 = private unnamed_addr constant [24 x i8] c" x i8] zeroinitializer\0A\00" -@.str1155 = private unnamed_addr constant [5 x i8] c"@ME_\00" -@.str1156 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" -@.str1157 = private unnamed_addr constant [5 x i8] c"@HE_\00" -@.str1158 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" -@.str1159 = private unnamed_addr constant [39 x i8] c"define void @L_reset(i32 %e) {\0Aentry:\0A\00" -@.str1160 = private unnamed_addr constant [3 x i8] c"%h\00" -@.str1161 = private unnamed_addr constant [3 x i8] c" \00" -@.str1162 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1163 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" -@.str1164 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" -@.str1165 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00" -@.str1166 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1167 = private unnamed_addr constant [32 x i8] c" %k = getelementptr inbounds [\00" -@.str1168 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00" -@.str1169 = private unnamed_addr constant [37 x i8] c" store i32 0, ptr %k\0A ret void\0A}\0A\0A\00" -@.str1170 = private unnamed_addr constant [32 x i8] c"define i32 @L_alloc() {\0Aentry:\0A\00" -@.str1171 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" -@.str1172 = private unnamed_addr constant [30 x i8] c" %has = icmp sgt i32 %fn, 0\0A\00" -@.str1173 = private unnamed_addr constant [42 x i8] c" br i1 %has, label %reuse, label %fresh\0A\00" -@.str1174 = private unnamed_addr constant [8 x i8] c"reuse:\0A\00" -@.str1175 = private unnamed_addr constant [25 x i8] c" %fn1 = sub i32 %fn, 1\0A\00" -@.str1176 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" -@.str1177 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" -@.str1178 = private unnamed_addr constant [43 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn1\0A\00" -@.str1179 = private unnamed_addr constant [27 x i8] c" %re = load i32, ptr %fp\0A\00" -@.str1180 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" -@.str1181 = private unnamed_addr constant [8 x i8] c"fresh:\0A\00" -@.str1182 = private unnamed_addr constant [31 x i8] c" %ec = load i32, ptr @L_entc\0A\00" -@.str1183 = private unnamed_addr constant [25 x i8] c" %ec1 = add i32 %ec, 1\0A\00" -@.str1184 = private unnamed_addr constant [31 x i8] c" store i32 %ec1, ptr @L_entc\0A\00" -@.str1185 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" -@.str1186 = private unnamed_addr constant [7 x i8] c"done:\0A\00" -@.str1187 = private unnamed_addr constant [49 x i8] c" %e = phi i32 [ %re, %reuse ], [ %ec, %fresh ]\0A\00" -@.str1188 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" -@.str1189 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" -@.str1190 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" -@.str1191 = private unnamed_addr constant [24 x i8] c" store i32 1, ptr %ap\0A\00" -@.str1192 = private unnamed_addr constant [17 x i8] c" ret i32 %e\0A}\0A\0A\00" -@.str1193 = private unnamed_addr constant [45 x i8] c"define void @L_free_entity(i32 %e) {\0Aentry:\0A\00" -@.str1194 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" -@.str1195 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" -@.str1196 = private unnamed_addr constant [24 x i8] c" store i32 0, ptr %ap\0A\00" -@.str1197 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" -@.str1198 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" -@.str1199 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" -@.str1200 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn\0A\00" -@.str1201 = private unnamed_addr constant [25 x i8] c" store i32 %e, ptr %fp\0A\00" -@.str1202 = private unnamed_addr constant [25 x i8] c" %fn1 = add i32 %fn, 1\0A\00" -@.str1203 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" -@.str1204 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" -@.str1205 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1206 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1207 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1208 = private unnamed_addr constant [6 x i8] c"qcond\00" -@.str1209 = private unnamed_addr constant [6 x i8] c"qbody\00" -@.str1210 = private unnamed_addr constant [6 x i8] c"qnext\00" -@.str1211 = private unnamed_addr constant [5 x i8] c"qend\00" -@.str1212 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1213 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1214 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1215 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1216 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00" -@.str1217 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" -@.str1218 = private unnamed_addr constant [3 x i8] c", \00" -@.str1219 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1220 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1077 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1078 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" +@.str1079 = private unnamed_addr constant [3 x i8] c", \00" +@.str1080 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1081 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1082 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1083 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1084 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1085 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1086 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1087 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1088 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1089 = private unnamed_addr constant [9 x i8] c"add i32 \00" +@.str1090 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str1091 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1092 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1093 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1094 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1095 = private unnamed_addr constant [8 x i8] c"%retval\00" +@.str1096 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1097 = private unnamed_addr constant [2 x i8] c"_\00" +@.str1098 = private unnamed_addr constant [5 x i8] c"mend\00" +@.str1099 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1100 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str1101 = private unnamed_addr constant [3 x i8] c", \00" +@.str1102 = private unnamed_addr constant [7 x i8] c"or i1 \00" +@.str1103 = private unnamed_addr constant [3 x i8] c", \00" +@.str1104 = private unnamed_addr constant [6 x i8] c"mbody\00" +@.str1105 = private unnamed_addr constant [5 x i8] c"marm\00" +@.str1106 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1107 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1108 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1109 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1110 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1111 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1112 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1113 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1114 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1115 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1116 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1117 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1118 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1119 = private unnamed_addr constant [5 x i8] c"null\00" +@.str1120 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1121 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1122 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1123 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1124 = private unnamed_addr constant [22 x i8] c"cannot emit statement\00" +@.str1125 = private unnamed_addr constant [36 x i8] c"@L_running = internal global i32 1\0A\00" +@.str1126 = private unnamed_addr constant [32 x i8] c"@L_key = internal global i32 0\0A\00" +@.str1127 = private unnamed_addr constant [33 x i8] c"@L_entc = internal global i32 0\0A\00" +@.str1128 = private unnamed_addr constant [29 x i8] c"@L_alive = internal global [\00" +@.str1129 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" +@.str1130 = private unnamed_addr constant [28 x i8] c"@L_kind = internal global [\00" +@.str1131 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" +@.str1132 = private unnamed_addr constant [32 x i8] c"@L_freelist = internal global [\00" +@.str1133 = private unnamed_addr constant [25 x i8] c" x i32] zeroinitializer\0A\00" +@.str1134 = private unnamed_addr constant [34 x i8] c"@L_freen = internal global i32 0\0A\00" +@.str1135 = private unnamed_addr constant [4 x i8] c"@S_\00" +@.str1136 = private unnamed_addr constant [21 x i8] c" = internal global [\00" +@.str1137 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" +@.str1138 = private unnamed_addr constant [19 x i8] c"] zeroinitializer\0A\00" +@.str1139 = private unnamed_addr constant [4 x i8] c"@H_\00" +@.str1140 = private unnamed_addr constant [21 x i8] c" = internal global [\00" +@.str1141 = private unnamed_addr constant [24 x i8] c" x i8] zeroinitializer\0A\00" +@.str1142 = private unnamed_addr constant [5 x i8] c"@ME_\00" +@.str1143 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" +@.str1144 = private unnamed_addr constant [5 x i8] c"@HE_\00" +@.str1145 = private unnamed_addr constant [26 x i8] c" = internal global i32 1\0A\00" +@.str1146 = private unnamed_addr constant [39 x i8] c"define void @L_reset(i32 %e) {\0Aentry:\0A\00" +@.str1147 = private unnamed_addr constant [3 x i8] c"%h\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 [16 x i8] c" x i8], ptr @H_\00" +@.str1151 = private unnamed_addr constant [17 x i8] c", i32 0, i32 %e\0A\00" +@.str1152 = private unnamed_addr constant [19 x i8] c" store i8 0, ptr \00" +@.str1153 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1154 = private unnamed_addr constant [32 x i8] c" %k = getelementptr inbounds [\00" +@.str1155 = private unnamed_addr constant [37 x i8] c" x i32], ptr @L_kind, i32 0, i32 %e\0A\00" +@.str1156 = private unnamed_addr constant [37 x i8] c" store i32 0, ptr %k\0A ret void\0A}\0A\0A\00" +@.str1157 = private unnamed_addr constant [32 x i8] c"define i32 @L_alloc() {\0Aentry:\0A\00" +@.str1158 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" +@.str1159 = private unnamed_addr constant [30 x i8] c" %has = icmp sgt i32 %fn, 0\0A\00" +@.str1160 = private unnamed_addr constant [42 x i8] c" br i1 %has, label %reuse, label %fresh\0A\00" +@.str1161 = private unnamed_addr constant [8 x i8] c"reuse:\0A\00" +@.str1162 = private unnamed_addr constant [25 x i8] c" %fn1 = sub i32 %fn, 1\0A\00" +@.str1163 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" +@.str1164 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" +@.str1165 = private unnamed_addr constant [43 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn1\0A\00" +@.str1166 = private unnamed_addr constant [27 x i8] c" %re = load i32, ptr %fp\0A\00" +@.str1167 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" +@.str1168 = private unnamed_addr constant [8 x i8] c"fresh:\0A\00" +@.str1169 = private unnamed_addr constant [31 x i8] c" %ec = load i32, ptr @L_entc\0A\00" +@.str1170 = private unnamed_addr constant [25 x i8] c" %ec1 = add i32 %ec, 1\0A\00" +@.str1171 = private unnamed_addr constant [31 x i8] c" store i32 %ec1, ptr @L_entc\0A\00" +@.str1172 = private unnamed_addr constant [18 x i8] c" br label %done\0A\00" +@.str1173 = private unnamed_addr constant [7 x i8] c"done:\0A\00" +@.str1174 = private unnamed_addr constant [49 x i8] c" %e = phi i32 [ %re, %reuse ], [ %ec, %fresh ]\0A\00" +@.str1175 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" +@.str1176 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" +@.str1177 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" +@.str1178 = private unnamed_addr constant [24 x i8] c" store i32 1, ptr %ap\0A\00" +@.str1179 = private unnamed_addr constant [17 x i8] c" ret i32 %e\0A}\0A\0A\00" +@.str1180 = private unnamed_addr constant [45 x i8] c"define void @L_free_entity(i32 %e) {\0Aentry:\0A\00" +@.str1181 = private unnamed_addr constant [33 x i8] c" %ap = getelementptr inbounds [\00" +@.str1182 = private unnamed_addr constant [38 x i8] c" x i32], ptr @L_alive, i32 0, i32 %e\0A\00" +@.str1183 = private unnamed_addr constant [24 x i8] c" store i32 0, ptr %ap\0A\00" +@.str1184 = private unnamed_addr constant [30 x i8] c" call void @L_reset(i32 %e)\0A\00" +@.str1185 = private unnamed_addr constant [32 x i8] c" %fn = load i32, ptr @L_freen\0A\00" +@.str1186 = private unnamed_addr constant [33 x i8] c" %fp = getelementptr inbounds [\00" +@.str1187 = private unnamed_addr constant [42 x i8] c" x i32], ptr @L_freelist, i32 0, i32 %fn\0A\00" +@.str1188 = private unnamed_addr constant [25 x i8] c" store i32 %e, ptr %fp\0A\00" +@.str1189 = private unnamed_addr constant [25 x i8] c" %fn1 = add i32 %fn, 1\0A\00" +@.str1190 = private unnamed_addr constant [32 x i8] c" store i32 %fn1, ptr @L_freen\0A\00" +@.str1191 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" +@.str1192 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1193 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1194 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1195 = private unnamed_addr constant [6 x i8] c"qcond\00" +@.str1196 = private unnamed_addr constant [6 x i8] c"qbody\00" +@.str1197 = private unnamed_addr constant [6 x i8] c"qnext\00" +@.str1198 = private unnamed_addr constant [5 x i8] c"qend\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 [15 x i8] c"load i32, ptr \00" +@.str1203 = private unnamed_addr constant [22 x i8] c"load i32, ptr @L_entc\00" +@.str1204 = private unnamed_addr constant [14 x i8] c"icmp slt i32 \00" +@.str1205 = private unnamed_addr constant [3 x i8] c", \00" +@.str1206 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1207 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1208 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1209 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1210 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1211 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1212 = private unnamed_addr constant [3 x i8] c" \00" +@.str1213 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1214 = private unnamed_addr constant [35 x i8] c" x i32], ptr @L_alive, i32 0, i32 \00" +@.str1215 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1216 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1217 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1218 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1219 = private unnamed_addr constant [3 x i8] c"qa\00" +@.str1220 = private unnamed_addr constant [9 x i8] c" br i1 \00" @.str1221 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1222 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1223 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1224 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1225 = private unnamed_addr constant [3 x i8] c" \00" -@.str1226 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1227 = private unnamed_addr constant [35 x i8] c" x i32], ptr @L_alive, i32 0, i32 \00" -@.str1228 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1229 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1230 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1231 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1232 = private unnamed_addr constant [3 x i8] c"qa\00" -@.str1233 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1234 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1235 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1236 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1237 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1238 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1239 = private unnamed_addr constant [3 x i8] c" \00" -@.str1240 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1241 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" +@.str1222 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1223 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1224 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1225 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1226 = private unnamed_addr constant [3 x i8] c" \00" +@.str1227 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1228 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" +@.str1229 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1230 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1231 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str1232 = private unnamed_addr constant [3 x i8] c", \00" +@.str1233 = private unnamed_addr constant [19 x i8] c"load i32, ptr @ME_\00" +@.str1234 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1235 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1236 = private unnamed_addr constant [8 x i8] c"and i1 \00" +@.str1237 = private unnamed_addr constant [3 x i8] c", \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 [16 x i8] c" x i8], ptr @H_\00" +@.str1241 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str1242 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1243 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1244 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str1245 = private unnamed_addr constant [3 x i8] c", \00" -@.str1246 = private unnamed_addr constant [19 x i8] c"load i32, ptr @ME_\00" -@.str1247 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1248 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1249 = private unnamed_addr constant [8 x i8] c"and i1 \00" -@.str1250 = private unnamed_addr constant [3 x i8] c", \00" -@.str1251 = private unnamed_addr constant [3 x i8] c" \00" -@.str1252 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1253 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" -@.str1254 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1255 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1256 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" -@.str1257 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00" -@.str1258 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1259 = private unnamed_addr constant [3 x i8] c"qt\00" -@.str1260 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1261 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1262 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1263 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1264 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1265 = private unnamed_addr constant [3 x i8] c" \00" -@.str1266 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1267 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1268 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" -@.str1269 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1270 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1271 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1272 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str1273 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1274 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1275 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1276 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1277 = private unnamed_addr constant [3 x i8] c"qw\00" -@.str1278 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1279 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1280 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1281 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1282 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1283 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1284 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1285 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1286 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1287 = private unnamed_addr constant [9 x i8] c"add i32 \00" -@.str1288 = private unnamed_addr constant [4 x i8] c", 1\00" -@.str1289 = private unnamed_addr constant [4 x i8] c"i32\00" -@.str1290 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1291 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1292 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1293 = private unnamed_addr constant [25 x i8] c"spawn: unknown property \00" +@.str1243 = private unnamed_addr constant [14 x i8] c"load i8, ptr \00" +@.str1244 = private unnamed_addr constant [12 x i8] c"icmp ne i8 \00" +@.str1245 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1246 = private unnamed_addr constant [3 x i8] c"qt\00" +@.str1247 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1248 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1249 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1250 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1251 = private unnamed_addr constant [3 x i8] c":\0A\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 [9 x i8] c" x %Cmp_\00" +@.str1255 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" +@.str1256 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1257 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1258 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1259 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str1260 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1261 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1262 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1263 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1264 = private unnamed_addr constant [3 x i8] c"qw\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 [3 x i8] c":\0A\00" +@.str1270 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1271 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1272 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1273 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1274 = private unnamed_addr constant [9 x i8] c"add i32 \00" +@.str1275 = private unnamed_addr constant [4 x i8] c", 1\00" +@.str1276 = private unnamed_addr constant [4 x i8] c"i32\00" +@.str1277 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1278 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1279 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1280 = private unnamed_addr constant [25 x i8] c"spawn: unknown property \00" +@.str1281 = private unnamed_addr constant [3 x i8] c" \00" +@.str1282 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1283 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" +@.str1284 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1285 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1286 = private unnamed_addr constant [19 x i8] c" store i8 1, ptr \00" +@.str1287 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1288 = private unnamed_addr constant [3 x i8] c" \00" +@.str1289 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1290 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" +@.str1291 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" +@.str1292 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1293 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1294 = private unnamed_addr constant [3 x i8] c" \00" -@.str1295 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1296 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" +@.str1295 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" +@.str1296 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1297 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" @.str1298 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1299 = private unnamed_addr constant [19 x i8] c" store i8 1, ptr \00" -@.str1300 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1301 = private unnamed_addr constant [3 x i8] c" \00" -@.str1302 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1303 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1304 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" -@.str1305 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1306 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1307 = private unnamed_addr constant [3 x i8] c" \00" -@.str1308 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" -@.str1309 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1310 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1311 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1312 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1313 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1314 = private unnamed_addr constant [5 x i8] c"null\00" -@.str1315 = private unnamed_addr constant [9 x i8] c" store \00" -@.str1316 = private unnamed_addr constant [2 x i8] c" \00" +@.str1299 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1300 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1301 = private unnamed_addr constant [5 x i8] c"null\00" +@.str1302 = private unnamed_addr constant [9 x i8] c" store \00" +@.str1303 = private unnamed_addr constant [2 x i8] c" \00" +@.str1304 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1305 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1306 = private unnamed_addr constant [3 x i8] c" \00" +@.str1307 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" +@.str1308 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1309 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1310 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1311 = private unnamed_addr constant [9 x i8] c" store \00" +@.str1312 = private unnamed_addr constant [2 x i8] c" \00" +@.str1313 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1314 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1315 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1316 = private unnamed_addr constant [13 x i8] c" store ptr \00" @.str1317 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1318 = private unnamed_addr constant [2 x i8] c"\0A\00" @.str1319 = private unnamed_addr constant [3 x i8] c" \00" -@.str1320 = private unnamed_addr constant [32 x i8] c" = getelementptr inbounds %Cmp_\00" -@.str1321 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1322 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1323 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1324 = private unnamed_addr constant [9 x i8] c" store \00" -@.str1325 = private unnamed_addr constant [2 x i8] c" \00" -@.str1326 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1327 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1328 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1329 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str1330 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1331 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1332 = private unnamed_addr constant [3 x i8] c" \00" -@.str1333 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1334 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1335 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" -@.str1336 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1337 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1338 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1339 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str1340 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1341 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1342 = private unnamed_addr constant [20 x i8] c"call i32 @L_alloc()\00" -@.str1343 = private unnamed_addr constant [3 x i8] c" \00" -@.str1344 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1345 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" -@.str1346 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1347 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str1348 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1320 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1321 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" +@.str1322 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" +@.str1323 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1324 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1325 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1326 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str1327 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1328 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1329 = private unnamed_addr constant [20 x i8] c"call i32 @L_alloc()\00" +@.str1330 = private unnamed_addr constant [3 x i8] c" \00" +@.str1331 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1332 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" +@.str1333 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1334 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str1335 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1336 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1337 = private unnamed_addr constant [3 x i8] c" \00" +@.str1338 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1339 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" +@.str1340 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1341 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" +@.str1342 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str1343 = private unnamed_addr constant [3 x i8] c", \00" +@.str1344 = private unnamed_addr constant [3 x i8] c"dh\00" +@.str1345 = private unnamed_addr constant [4 x i8] c"dhn\00" +@.str1346 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1347 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1348 = private unnamed_addr constant [10 x i8] c", label %\00" @.str1349 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1350 = private unnamed_addr constant [3 x i8] c" \00" -@.str1351 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1352 = private unnamed_addr constant [34 x i8] c" x i32], ptr @L_kind, i32 0, i32 \00" -@.str1353 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1354 = private unnamed_addr constant [15 x i8] c"load i32, ptr \00" -@.str1355 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str1356 = private unnamed_addr constant [3 x i8] c", \00" -@.str1357 = private unnamed_addr constant [3 x i8] c"dh\00" -@.str1358 = private unnamed_addr constant [4 x i8] c"dhn\00" -@.str1359 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1360 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1361 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1362 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1363 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00" -@.str1364 = private unnamed_addr constant [6 x i8] c"(i32 \00" -@.str1365 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1366 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1350 = private unnamed_addr constant [27 x i8] c":\0A call void @on_despawn_\00" +@.str1351 = private unnamed_addr constant [6 x i8] c"(i32 \00" +@.str1352 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1353 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1354 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1355 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1356 = private unnamed_addr constant [32 x i8] c" call void @L_free_entity(i32 \00" +@.str1357 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1358 = private unnamed_addr constant [2 x i8] c"0\00" +@.str1359 = private unnamed_addr constant [2 x i8] c"1\00" +@.str1360 = private unnamed_addr constant [3 x i8] c" \00" +@.str1361 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1362 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" +@.str1363 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1364 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1365 = private unnamed_addr constant [12 x i8] c" store i8 \00" +@.str1366 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1367 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1368 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1369 = private unnamed_addr constant [32 x i8] c" call void @L_free_entity(i32 \00" -@.str1370 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1371 = private unnamed_addr constant [2 x i8] c"0\00" -@.str1372 = private unnamed_addr constant [2 x i8] c"1\00" -@.str1373 = private unnamed_addr constant [3 x i8] c" \00" -@.str1374 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1375 = private unnamed_addr constant [16 x i8] c" x i8], ptr @H_\00" -@.str1376 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1368 = private unnamed_addr constant [3 x i8] c" \00" +@.str1369 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" +@.str1370 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" +@.str1371 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" +@.str1372 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" +@.str1373 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1374 = private unnamed_addr constant [4 x i8] c"ptr\00" +@.str1375 = private unnamed_addr constant [13 x i8] c" store ptr \00" +@.str1376 = private unnamed_addr constant [7 x i8] c", ptr \00" @.str1377 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1378 = private unnamed_addr constant [12 x i8] c" store i8 \00" -@.str1379 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1380 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1381 = private unnamed_addr constant [3 x i8] c" \00" -@.str1382 = private unnamed_addr constant [28 x i8] c" = getelementptr inbounds [\00" -@.str1383 = private unnamed_addr constant [9 x i8] c" x %Cmp_\00" -@.str1384 = private unnamed_addr constant [11 x i8] c"], ptr @S_\00" -@.str1385 = private unnamed_addr constant [14 x i8] c", i32 0, i32 \00" -@.str1386 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1387 = private unnamed_addr constant [4 x i8] c"ptr\00" -@.str1388 = private unnamed_addr constant [13 x i8] c" store ptr \00" -@.str1389 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1390 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1391 = private unnamed_addr constant [5 x i8] c"@HE_\00" -@.str1392 = private unnamed_addr constant [5 x i8] c"@ME_\00" -@.str1393 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str1394 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1395 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1396 = private unnamed_addr constant [5 x i8] c"void\00" -@.str1397 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1398 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" -@.str1399 = private unnamed_addr constant [18 x i8] c"define void @sys_\00" -@.str1400 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" -@.str1401 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" -@.str1402 = private unnamed_addr constant [19 x i8] c"load i32, ptr @HE_\00" -@.str1403 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1404 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1405 = private unnamed_addr constant [5 x i8] c"hrun\00" -@.str1406 = private unnamed_addr constant [6 x i8] c"hskip\00" -@.str1407 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1408 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1409 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1410 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1411 = private unnamed_addr constant [20 x i8] c":\0A call void @sys_\00" -@.str1412 = private unnamed_addr constant [4 x i8] c"()\0A\00" -@.str1413 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1414 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1415 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1416 = private unnamed_addr constant [5 x i8] c"void\00" -@.str1417 = private unnamed_addr constant [3 x i8] c"%e\00" -@.str1418 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1419 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" -@.str1420 = private unnamed_addr constant [25 x i8] c"define void @on_despawn_\00" -@.str1421 = private unnamed_addr constant [19 x i8] c"(i32 %e) {\0Aentry:\0A\00" -@.str1422 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" -@.str1423 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" -@.str1424 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" -@.str1425 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" -@.str1426 = private unnamed_addr constant [8 x i8] c"rt_init\00" -@.str1427 = private unnamed_addr constant [27 x i8] c" call void @fn_rt_init()\0A\00" -@.str1428 = private unnamed_addr constant [6 x i8] c"Start\00" -@.str1429 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" -@.str1430 = private unnamed_addr constant [7 x i8] c"loop:\0A\00" -@.str1431 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_running\00" -@.str1432 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1433 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1434 = private unnamed_addr constant [11 x i8] c"rt_running\00" -@.str1435 = private unnamed_addr constant [26 x i8] c"call i32 @fn_rt_running()\00" -@.str1436 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" -@.str1437 = private unnamed_addr constant [4 x i8] c", 0\00" -@.str1438 = private unnamed_addr constant [8 x i8] c"and i1 \00" -@.str1439 = private unnamed_addr constant [3 x i8] c", \00" -@.str1440 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1441 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" -@.str1442 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1443 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" -@.str1444 = private unnamed_addr constant [7 x i8] c"body:\0A\00" -@.str1445 = private unnamed_addr constant [8 x i8] c"rt_poll\00" -@.str1446 = private unnamed_addr constant [23 x i8] c"call i32 @fn_rt_poll()\00" -@.str1447 = private unnamed_addr constant [13 x i8] c" store i32 \00" -@.str1448 = private unnamed_addr constant [14 x i8] c", ptr @L_key\0A\00" -@.str1449 = private unnamed_addr constant [6 x i8] c"Input\00" -@.str1450 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" -@.str1451 = private unnamed_addr constant [7 x i8] c"Update\00" -@.str1452 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" -@.str1453 = private unnamed_addr constant [7 x i8] c"Render\00" -@.str1454 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" -@.str1455 = private unnamed_addr constant [7 x i8] c"done:\0A\00" -@.str1456 = private unnamed_addr constant [7 x i8] c"OnQuit\00" -@.str1457 = private unnamed_addr constant [12 x i8] c"rt_shutdown\00" -@.str1458 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_shutdown()\0A\00" -@.str1459 = private unnamed_addr constant [15 x i8] c" ret i32 0\0A}\0A\00" -@.str1460 = private unnamed_addr constant [25 x i8] c"call i32 @fn_rt_reg(i32 \00" -@.str1461 = private unnamed_addr constant [2 x i8] c")\00" -@.str1462 = private unnamed_addr constant [6 x i8] c"smend\00" -@.str1463 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" -@.str1464 = private unnamed_addr constant [3 x i8] c", \00" -@.str1465 = private unnamed_addr constant [6 x i8] c"sbody\00" -@.str1466 = private unnamed_addr constant [5 x i8] c"sarm\00" -@.str1467 = private unnamed_addr constant [9 x i8] c" br i1 \00" -@.str1468 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1469 = private unnamed_addr constant [10 x i8] c", label %\00" -@.str1470 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1471 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1472 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1473 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1474 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1475 = private unnamed_addr constant [13 x i8] c" br label %\00" -@.str1476 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1477 = private unnamed_addr constant [3 x i8] c":\0A\00" -@.str1478 = private unnamed_addr constant [27 x i8] c"'become' outside a machine\00" -@.str1479 = private unnamed_addr constant [18 x i8] c"become: no state \00" -@.str1480 = private unnamed_addr constant [32 x i8] c" call void @fn_rt_set_reg(i32 \00" -@.str1481 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str1482 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1483 = private unnamed_addr constant [4 x i8] c"%io\00" -@.str1484 = private unnamed_addr constant [3 x i8] c" \00" -@.str1485 = private unnamed_addr constant [14 x i8] c" = call i64 @\00" -@.str1486 = private unnamed_addr constant [6 x i8] c"(ptr \00" -@.str1487 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" -@.str1488 = private unnamed_addr constant [11 x i8] c", ptr %f)\0A\00" -@.str1489 = private unnamed_addr constant [8 x i8] c"@L_entc\00" -@.str1490 = private unnamed_addr constant [2 x i8] c"4\00" -@.str1491 = private unnamed_addr constant [9 x i8] c"@L_freen\00" -@.str1492 = private unnamed_addr constant [2 x i8] c"4\00" -@.str1493 = private unnamed_addr constant [21 x i8] c" %nalive = mul i64 \00" -@.str1494 = private unnamed_addr constant [5 x i8] c", 4\0A\00" -@.str1495 = private unnamed_addr constant [9 x i8] c"@L_alive\00" -@.str1496 = private unnamed_addr constant [8 x i8] c"%nalive\00" -@.str1497 = private unnamed_addr constant [12 x i8] c"@L_freelist\00" -@.str1498 = private unnamed_addr constant [8 x i8] c"%nalive\00" -@.str1499 = private unnamed_addr constant [8 x i8] c"@L_kind\00" -@.str1500 = private unnamed_addr constant [8 x i8] c"%nalive\00" -@.str1501 = private unnamed_addr constant [4 x i8] c"@g_\00" -@.str1502 = private unnamed_addr constant [2 x i8] c"4\00" -@.str1503 = private unnamed_addr constant [5 x i8] c"%csz\00" -@.str1504 = private unnamed_addr constant [3 x i8] c" \00" -@.str1505 = private unnamed_addr constant [37 x i8] c" = ptrtoint ptr getelementptr (%Cmp_\00" -@.str1506 = private unnamed_addr constant [17 x i8] c", ptr null, i32 \00" -@.str1507 = private unnamed_addr constant [10 x i8] c") to i64\0A\00" -@.str1508 = private unnamed_addr constant [4 x i8] c"@S_\00" -@.str1509 = private unnamed_addr constant [4 x i8] c"@H_\00" -@.str1510 = private unnamed_addr constant [70 x i8] c"@.sav_path = private unnamed_addr constant [10 x i8] c\22ludic.sav\5C00\22\0A\00" -@.str1511 = private unnamed_addr constant [60 x i8] c"@.sav_wb = private unnamed_addr constant [3 x i8] c\22wb\5C00\22\0A\00" -@.str1512 = private unnamed_addr constant [60 x i8] c"@.sav_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" -@.str1513 = private unnamed_addr constant [14 x i8] c"rt_save_state\00" -@.str1514 = private unnamed_addr constant [14 x i8] c"rt_load_state\00" -@.str1515 = private unnamed_addr constant [32 x i8] c"define void @L_save() {\0Aentry:\0A\00" -@.str1516 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_wb)\0A\00" -@.str1517 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" -@.str1518 = private unnamed_addr constant [41 x i8] c" br i1 %bad, label %out, label %go\0Ago:\0A\00" -@.str1519 = private unnamed_addr constant [7 x i8] c"fwrite\00" -@.str1520 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_save_state(ptr %f)\0A\00" -@.str1521 = 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" -@.str1522 = private unnamed_addr constant [31 x i8] c"define i32 @L_load() {\0Aentry:\0A\00" -@.str1523 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_rb)\0A\00" -@.str1524 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" -@.str1525 = private unnamed_addr constant [60 x i8] c" br i1 %bad, label %miss, label %go\0Amiss:\0A ret i32 0\0Ago:\0A\00" -@.str1526 = private unnamed_addr constant [6 x i8] c"fread\00" -@.str1527 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_load_state(ptr %f)\0A\00" -@.str1528 = private unnamed_addr constant [48 x i8] c" %c = call i32 @fclose(ptr %f)\0A ret i32 1\0A}\0A\0A\00" -@.str1529 = private unnamed_addr constant [6 x i8] c"panel\00" -@.str1530 = private unnamed_addr constant [4 x i8] c"col\00" -@.str1531 = private unnamed_addr constant [4 x i8] c"row\00" -@.str1532 = private unnamed_addr constant [6 x i8] c"label\00" -@.str1533 = private unnamed_addr constant [7 x i8] c"button\00" -@.str1534 = private unnamed_addr constant [6 x i8] c"image\00" -@.str1535 = private unnamed_addr constant [7 x i8] c"spacer\00" -@.str1536 = private unnamed_addr constant [3 x i8] c"id\00" -@.str1537 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_ui_set(i32 \00" -@.str1538 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str1539 = private unnamed_addr constant [7 x i8] c", i32 \00" -@.str1540 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1541 = private unnamed_addr constant [2 x i8] c"w\00" -@.str1542 = private unnamed_addr constant [2 x i8] c"h\00" -@.str1543 = private unnamed_addr constant [2 x i8] c"x\00" -@.str1544 = private unnamed_addr constant [2 x i8] c"y\00" -@.str1545 = private unnamed_addr constant [4 x i8] c"pad\00" -@.str1546 = private unnamed_addr constant [4 x i8] c"gap\00" -@.str1547 = private unnamed_addr constant [3 x i8] c"bg\00" -@.str1548 = private unnamed_addr constant [3 x i8] c"fg\00" -@.str1549 = private unnamed_addr constant [7 x i8] c"border\00" -@.str1550 = private unnamed_addr constant [5 x i8] c"grow\00" -@.str1551 = private unnamed_addr constant [5 x i8] c"font\00" -@.str1552 = private unnamed_addr constant [5 x i8] c"size\00" -@.str1553 = private unnamed_addr constant [6 x i8] c"inset\00" -@.str1554 = private unnamed_addr constant [6 x i8] c"focus\00" -@.str1555 = private unnamed_addr constant [33 x i8] c" call void @fn_rt_ui_reset(i32 \00" -@.str1556 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1557 = private unnamed_addr constant [2 x i8] c"1\00" -@.str1558 = private unnamed_addr constant [3 x i8] c"id\00" -@.str1559 = private unnamed_addr constant [5 x i8] c"text\00" -@.str1560 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_ui_static_text(i32 \00" -@.str1561 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1562 = private unnamed_addr constant [3 x i8] c")\0A\00" -@.str1563 = private unnamed_addr constant [5 x i8] c"skin\00" -@.str1564 = private unnamed_addr constant [6 x i8] c"image\00" -@.str1565 = private unnamed_addr constant [32 x i8] c"call i32 @fn_rt_image_load(ptr \00" -@.str1566 = private unnamed_addr constant [2 x i8] c")\00" -@.str1567 = private unnamed_addr constant [5 x i8] c"skin\00" -@.str1568 = private unnamed_addr constant [6 x i8] c"align\00" -@.str1569 = private unnamed_addr constant [7 x i8] c"center\00" -@.str1570 = private unnamed_addr constant [4 x i8] c"end\00" -@.str1571 = private unnamed_addr constant [2 x i8] c"1\00" -@.str1572 = private unnamed_addr constant [34 x i8] c"define void @ui_build() {\0Aentry:\0A\00" -@.str1573 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" -@.str1574 = private unnamed_addr constant [3 x i8] c", \00" -@.str1575 = private unnamed_addr constant [7 x i8] c" %arg_\00" -@.str1576 = private unnamed_addr constant [5 x i8] c"void\00" -@.str1577 = private unnamed_addr constant [20 x i8] c" %retval = alloca \00" +@.str1378 = private unnamed_addr constant [5 x i8] c"@HE_\00" +@.str1379 = private unnamed_addr constant [5 x i8] c"@ME_\00" +@.str1380 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str1381 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1382 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1383 = private unnamed_addr constant [5 x i8] c"void\00" +@.str1384 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1385 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" +@.str1386 = private unnamed_addr constant [18 x i8] c"define void @sys_\00" +@.str1387 = private unnamed_addr constant [13 x i8] c"() {\0Aentry:\0A\00" +@.str1388 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" +@.str1389 = private unnamed_addr constant [19 x i8] c"load i32, ptr @HE_\00" +@.str1390 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1391 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1392 = private unnamed_addr constant [5 x i8] c"hrun\00" +@.str1393 = private unnamed_addr constant [6 x i8] c"hskip\00" +@.str1394 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1395 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1396 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1397 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1398 = private unnamed_addr constant [20 x i8] c":\0A call void @sys_\00" +@.str1399 = private unnamed_addr constant [4 x i8] c"()\0A\00" +@.str1400 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1401 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1402 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1403 = private unnamed_addr constant [5 x i8] c"void\00" +@.str1404 = private unnamed_addr constant [3 x i8] c"%e\00" +@.str1405 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1406 = private unnamed_addr constant [17 x i8] c"ret:\0A ret void\0A\00" +@.str1407 = private unnamed_addr constant [25 x i8] c"define void @on_despawn_\00" +@.str1408 = private unnamed_addr constant [19 x i8] c"(i32 %e) {\0Aentry:\0A\00" +@.str1409 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" +@.str1410 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" +@.str1411 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" +@.str1412 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" +@.str1413 = private unnamed_addr constant [8 x i8] c"rt_init\00" +@.str1414 = private unnamed_addr constant [27 x i8] c" call void @fn_rt_init()\0A\00" +@.str1415 = private unnamed_addr constant [6 x i8] c"Start\00" +@.str1416 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" +@.str1417 = private unnamed_addr constant [7 x i8] c"loop:\0A\00" +@.str1418 = private unnamed_addr constant [25 x i8] c"load i32, ptr @L_running\00" +@.str1419 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1420 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1421 = private unnamed_addr constant [11 x i8] c"rt_running\00" +@.str1422 = private unnamed_addr constant [26 x i8] c"call i32 @fn_rt_running()\00" +@.str1423 = private unnamed_addr constant [13 x i8] c"icmp ne i32 \00" +@.str1424 = private unnamed_addr constant [4 x i8] c", 0\00" +@.str1425 = private unnamed_addr constant [8 x i8] c"and i1 \00" +@.str1426 = private unnamed_addr constant [3 x i8] c", \00" +@.str1427 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1428 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" +@.str1429 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1430 = private unnamed_addr constant [28 x i8] c", label %body, label %done\0A\00" +@.str1431 = private unnamed_addr constant [7 x i8] c"body:\0A\00" +@.str1432 = private unnamed_addr constant [8 x i8] c"rt_poll\00" +@.str1433 = private unnamed_addr constant [23 x i8] c"call i32 @fn_rt_poll()\00" +@.str1434 = private unnamed_addr constant [13 x i8] c" store i32 \00" +@.str1435 = private unnamed_addr constant [14 x i8] c", ptr @L_key\0A\00" +@.str1436 = private unnamed_addr constant [6 x i8] c"Input\00" +@.str1437 = private unnamed_addr constant [12 x i8] c"FixedUpdate\00" +@.str1438 = private unnamed_addr constant [7 x i8] c"Update\00" +@.str1439 = private unnamed_addr constant [11 x i8] c"LateUpdate\00" +@.str1440 = private unnamed_addr constant [7 x i8] c"Render\00" +@.str1441 = private unnamed_addr constant [18 x i8] c" br label %loop\0A\00" +@.str1442 = private unnamed_addr constant [7 x i8] c"done:\0A\00" +@.str1443 = private unnamed_addr constant [7 x i8] c"OnQuit\00" +@.str1444 = private unnamed_addr constant [12 x i8] c"rt_shutdown\00" +@.str1445 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_shutdown()\0A\00" +@.str1446 = private unnamed_addr constant [15 x i8] c" ret i32 0\0A}\0A\00" +@.str1447 = private unnamed_addr constant [25 x i8] c"call i32 @fn_rt_reg(i32 \00" +@.str1448 = private unnamed_addr constant [2 x i8] c")\00" +@.str1449 = private unnamed_addr constant [6 x i8] c"smend\00" +@.str1450 = private unnamed_addr constant [13 x i8] c"icmp eq i32 \00" +@.str1451 = private unnamed_addr constant [3 x i8] c", \00" +@.str1452 = private unnamed_addr constant [6 x i8] c"sbody\00" +@.str1453 = private unnamed_addr constant [5 x i8] c"sarm\00" +@.str1454 = private unnamed_addr constant [9 x i8] c" br i1 \00" +@.str1455 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1456 = private unnamed_addr constant [10 x i8] c", label %\00" +@.str1457 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1458 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1459 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1460 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1461 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1462 = private unnamed_addr constant [13 x i8] c" br label %\00" +@.str1463 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1464 = private unnamed_addr constant [3 x i8] c":\0A\00" +@.str1465 = private unnamed_addr constant [27 x i8] c"'become' outside a machine\00" +@.str1466 = private unnamed_addr constant [18 x i8] c"become: no state \00" +@.str1467 = private unnamed_addr constant [32 x i8] c" call void @fn_rt_set_reg(i32 \00" +@.str1468 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str1469 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1470 = private unnamed_addr constant [4 x i8] c"%io\00" +@.str1471 = private unnamed_addr constant [3 x i8] c" \00" +@.str1472 = private unnamed_addr constant [14 x i8] c" = call i64 @\00" +@.str1473 = private unnamed_addr constant [6 x i8] c"(ptr \00" +@.str1474 = private unnamed_addr constant [14 x i8] c", i64 1, i64 \00" +@.str1475 = private unnamed_addr constant [11 x i8] c", ptr %f)\0A\00" +@.str1476 = private unnamed_addr constant [8 x i8] c"@L_entc\00" +@.str1477 = private unnamed_addr constant [2 x i8] c"4\00" +@.str1478 = private unnamed_addr constant [9 x i8] c"@L_freen\00" +@.str1479 = private unnamed_addr constant [2 x i8] c"4\00" +@.str1480 = private unnamed_addr constant [21 x i8] c" %nalive = mul i64 \00" +@.str1481 = private unnamed_addr constant [5 x i8] c", 4\0A\00" +@.str1482 = private unnamed_addr constant [9 x i8] c"@L_alive\00" +@.str1483 = private unnamed_addr constant [8 x i8] c"%nalive\00" +@.str1484 = private unnamed_addr constant [12 x i8] c"@L_freelist\00" +@.str1485 = private unnamed_addr constant [8 x i8] c"%nalive\00" +@.str1486 = private unnamed_addr constant [8 x i8] c"@L_kind\00" +@.str1487 = private unnamed_addr constant [8 x i8] c"%nalive\00" +@.str1488 = private unnamed_addr constant [4 x i8] c"@g_\00" +@.str1489 = private unnamed_addr constant [2 x i8] c"4\00" +@.str1490 = private unnamed_addr constant [5 x i8] c"%csz\00" +@.str1491 = private unnamed_addr constant [3 x i8] c" \00" +@.str1492 = private unnamed_addr constant [37 x i8] c" = ptrtoint ptr getelementptr (%Cmp_\00" +@.str1493 = private unnamed_addr constant [17 x i8] c", ptr null, i32 \00" +@.str1494 = private unnamed_addr constant [10 x i8] c") to i64\0A\00" +@.str1495 = private unnamed_addr constant [4 x i8] c"@S_\00" +@.str1496 = private unnamed_addr constant [4 x i8] c"@H_\00" +@.str1497 = private unnamed_addr constant [70 x i8] c"@.sav_path = private unnamed_addr constant [10 x i8] c\22ludic.sav\5C00\22\0A\00" +@.str1498 = private unnamed_addr constant [60 x i8] c"@.sav_wb = private unnamed_addr constant [3 x i8] c\22wb\5C00\22\0A\00" +@.str1499 = private unnamed_addr constant [60 x i8] c"@.sav_rb = private unnamed_addr constant [3 x i8] c\22rb\5C00\22\0A\00" +@.str1500 = private unnamed_addr constant [14 x i8] c"rt_save_state\00" +@.str1501 = private unnamed_addr constant [14 x i8] c"rt_load_state\00" +@.str1502 = private unnamed_addr constant [32 x i8] c"define void @L_save() {\0Aentry:\0A\00" +@.str1503 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_wb)\0A\00" +@.str1504 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" +@.str1505 = private unnamed_addr constant [41 x i8] c" br i1 %bad, label %out, label %go\0Ago:\0A\00" +@.str1506 = private unnamed_addr constant [7 x i8] c"fwrite\00" +@.str1507 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_save_state(ptr %f)\0A\00" +@.str1508 = 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" +@.str1509 = private unnamed_addr constant [31 x i8] c"define i32 @L_load() {\0Aentry:\0A\00" +@.str1510 = private unnamed_addr constant [54 x i8] c" %f = call ptr @fopen(ptr @.sav_path, ptr @.sav_rb)\0A\00" +@.str1511 = private unnamed_addr constant [31 x i8] c" %bad = icmp eq ptr %f, null\0A\00" +@.str1512 = private unnamed_addr constant [60 x i8] c" br i1 %bad, label %miss, label %go\0Amiss:\0A ret i32 0\0Ago:\0A\00" +@.str1513 = private unnamed_addr constant [6 x i8] c"fread\00" +@.str1514 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_load_state(ptr %f)\0A\00" +@.str1515 = private unnamed_addr constant [48 x i8] c" %c = call i32 @fclose(ptr %f)\0A ret i32 1\0A}\0A\0A\00" +@.str1516 = private unnamed_addr constant [6 x i8] c"panel\00" +@.str1517 = private unnamed_addr constant [4 x i8] c"col\00" +@.str1518 = private unnamed_addr constant [4 x i8] c"row\00" +@.str1519 = private unnamed_addr constant [6 x i8] c"label\00" +@.str1520 = private unnamed_addr constant [7 x i8] c"button\00" +@.str1521 = private unnamed_addr constant [6 x i8] c"image\00" +@.str1522 = private unnamed_addr constant [7 x i8] c"spacer\00" +@.str1523 = private unnamed_addr constant [3 x i8] c"id\00" +@.str1524 = private unnamed_addr constant [31 x i8] c" call void @fn_rt_ui_set(i32 \00" +@.str1525 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str1526 = private unnamed_addr constant [7 x i8] c", i32 \00" +@.str1527 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1528 = private unnamed_addr constant [2 x i8] c"w\00" +@.str1529 = private unnamed_addr constant [2 x i8] c"h\00" +@.str1530 = private unnamed_addr constant [2 x i8] c"x\00" +@.str1531 = private unnamed_addr constant [2 x i8] c"y\00" +@.str1532 = private unnamed_addr constant [4 x i8] c"pad\00" +@.str1533 = private unnamed_addr constant [4 x i8] c"gap\00" +@.str1534 = private unnamed_addr constant [3 x i8] c"bg\00" +@.str1535 = private unnamed_addr constant [3 x i8] c"fg\00" +@.str1536 = private unnamed_addr constant [7 x i8] c"border\00" +@.str1537 = private unnamed_addr constant [5 x i8] c"grow\00" +@.str1538 = private unnamed_addr constant [5 x i8] c"font\00" +@.str1539 = private unnamed_addr constant [5 x i8] c"size\00" +@.str1540 = private unnamed_addr constant [6 x i8] c"inset\00" +@.str1541 = private unnamed_addr constant [6 x i8] c"focus\00" +@.str1542 = private unnamed_addr constant [33 x i8] c" call void @fn_rt_ui_reset(i32 \00" +@.str1543 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1544 = private unnamed_addr constant [2 x i8] c"1\00" +@.str1545 = private unnamed_addr constant [3 x i8] c"id\00" +@.str1546 = private unnamed_addr constant [5 x i8] c"text\00" +@.str1547 = private unnamed_addr constant [39 x i8] c" call void @fn_rt_ui_static_text(i32 \00" +@.str1548 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1549 = private unnamed_addr constant [3 x i8] c")\0A\00" +@.str1550 = private unnamed_addr constant [5 x i8] c"skin\00" +@.str1551 = private unnamed_addr constant [6 x i8] c"image\00" +@.str1552 = private unnamed_addr constant [32 x i8] c"call i32 @fn_rt_image_load(ptr \00" +@.str1553 = private unnamed_addr constant [2 x i8] c")\00" +@.str1554 = private unnamed_addr constant [5 x i8] c"skin\00" +@.str1555 = private unnamed_addr constant [6 x i8] c"align\00" +@.str1556 = private unnamed_addr constant [7 x i8] c"center\00" +@.str1557 = private unnamed_addr constant [4 x i8] c"end\00" +@.str1558 = private unnamed_addr constant [2 x i8] c"1\00" +@.str1559 = private unnamed_addr constant [34 x i8] c"define void @ui_build() {\0Aentry:\0A\00" +@.str1560 = private unnamed_addr constant [15 x i8] c" ret void\0A}\0A\0A\00" +@.str1561 = private unnamed_addr constant [3 x i8] c", \00" +@.str1562 = private unnamed_addr constant [7 x i8] c" %arg_\00" +@.str1563 = private unnamed_addr constant [5 x i8] c"void\00" +@.str1564 = private unnamed_addr constant [20 x i8] c" %retval = alloca \00" +@.str1565 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1566 = private unnamed_addr constant [9 x i8] c" store \00" +@.str1567 = private unnamed_addr constant [7 x i8] c" %arg_\00" +@.str1568 = private unnamed_addr constant [7 x i8] c", ptr \00" +@.str1569 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1570 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1571 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" +@.str1572 = private unnamed_addr constant [5 x i8] c"void\00" +@.str1573 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" +@.str1574 = private unnamed_addr constant [6 x i8] c"load \00" +@.str1575 = private unnamed_addr constant [14 x i8] c", ptr %retval\00" +@.str1576 = private unnamed_addr constant [7 x i8] c" ret \00" +@.str1577 = private unnamed_addr constant [2 x i8] c" \00" @.str1578 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1579 = private unnamed_addr constant [9 x i8] c" store \00" -@.str1580 = private unnamed_addr constant [7 x i8] c" %arg_\00" -@.str1581 = private unnamed_addr constant [7 x i8] c", ptr \00" -@.str1582 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1583 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1584 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" -@.str1585 = private unnamed_addr constant [5 x i8] c"void\00" -@.str1586 = private unnamed_addr constant [12 x i8] c" ret void\0A\00" -@.str1587 = private unnamed_addr constant [6 x i8] c"load \00" -@.str1588 = private unnamed_addr constant [14 x i8] c", ptr %retval\00" -@.str1589 = private unnamed_addr constant [7 x i8] c" ret \00" -@.str1590 = private unnamed_addr constant [2 x i8] c" \00" -@.str1591 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1592 = private unnamed_addr constant [8 x i8] c"define \00" -@.str1593 = private unnamed_addr constant [6 x i8] c" @fn_\00" -@.str1594 = private unnamed_addr constant [2 x i8] c"(\00" -@.str1595 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00" -@.str1596 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" -@.str1597 = private unnamed_addr constant [4 x i8] c"int\00" -@.str1598 = private unnamed_addr constant [24 x i8] c" %retval = alloca i32\0A\00" -@.str1599 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" -@.str1600 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" -@.str1601 = private unnamed_addr constant [28 x i8] c" store i32 0, ptr %retval\0A\00" -@.str1602 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" -@.str1603 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" -@.str1604 = private unnamed_addr constant [22 x i8] c"load i32, ptr %retval\00" -@.str1605 = private unnamed_addr constant [11 x i8] c" ret i32 \00" -@.str1606 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1607 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" -@.str1608 = private unnamed_addr constant [3 x i8] c"}\0A\00" -@.str1609 = private unnamed_addr constant [3 x i8] c"wb\00" -@.str1610 = private unnamed_addr constant [7 x i8] c".ludic\00" -@.str1611 = private unnamed_addr constant [2 x i8] c"/\00" -@.str1612 = private unnamed_addr constant [6 x i8] c"ludic\00" -@.str1613 = private unnamed_addr constant [11 x i8] c"--windowed\00" -@.str1614 = private unnamed_addr constant [11 x i8] c"--headless\00" -@.str1615 = private unnamed_addr constant [12 x i8] c"--emit-llvm\00" -@.str1616 = private unnamed_addr constant [6 x i8] c"--fmt\00" -@.str1617 = private unnamed_addr constant [13 x i8] c"--save-temps\00" -@.str1618 = private unnamed_addr constant [6 x i8] c"--run\00" -@.str1619 = private unnamed_addr constant [3 x i8] c"-o\00" -@.str1620 = private unnamed_addr constant [31 x i8] c"ludicc: ignoring unknown flag \00" -@.str1621 = private unnamed_addr constant [2 x i8] c"\0A\00" -@.str1622 = private unnamed_addr constant [90 x i8] c"usage: ludicc [-o out] [--windowed|--headless] [--emit-llvm] [--save-temps]\0A\00" -@.str1623 = private unnamed_addr constant [27 x i8] c"ludicc: cannot open input\0A\00" -@.str1624 = private unnamed_addr constant [16 x i8] c"/tmp/ludic-run-\00" -@.str1625 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" -@.str1626 = private unnamed_addr constant [4 x i8] c".ll\00" -@.str1627 = private unnamed_addr constant [25 x i8] c"ludicc: cannot write IR\0A\00" -@.str1628 = private unnamed_addr constant [9 x i8] c"LUDIC_CC\00" -@.str1629 = private unnamed_addr constant [6 x i8] c"clang\00" -@.str1630 = private unnamed_addr constant [11 x i8] c"LUDIC_HOME\00" -@.str1631 = private unnamed_addr constant [27 x i8] c" -O2 -Wno-override-module \00" -@.str1632 = private unnamed_addr constant [24 x i8] c"runtime/native/cocoa.ll\00" -@.str1633 = private unnamed_addr constant [2 x i8] c" \00" -@.str1634 = private unnamed_addr constant [42 x i8] c" -framework Cocoa -Wl,-rpath,@loader_path\00" -@.str1635 = private unnamed_addr constant [5 x i8] c" -o \00" -@.str1636 = private unnamed_addr constant [7 x i8] c"rm -f \00" -@.str1637 = private unnamed_addr constant [21 x i8] c"ludicc: link failed\0A\00" +@.str1579 = private unnamed_addr constant [8 x i8] c"define \00" +@.str1580 = private unnamed_addr constant [6 x i8] c" @fn_\00" +@.str1581 = private unnamed_addr constant [2 x i8] c"(\00" +@.str1582 = private unnamed_addr constant [12 x i8] c") {\0Aentry:\0A\00" +@.str1583 = private unnamed_addr constant [4 x i8] c"}\0A\0A\00" +@.str1584 = private unnamed_addr constant [4 x i8] c"int\00" +@.str1585 = private unnamed_addr constant [24 x i8] c" %retval = alloca i32\0A\00" +@.str1586 = private unnamed_addr constant [32 x i8] c" store i32 %argc, ptr @L_argc\0A\00" +@.str1587 = private unnamed_addr constant [32 x i8] c" store ptr %argv, ptr @L_argv\0A\00" +@.str1588 = private unnamed_addr constant [28 x i8] c" store i32 0, ptr %retval\0A\00" +@.str1589 = private unnamed_addr constant [17 x i8] c" br label %ret\0A\00" +@.str1590 = private unnamed_addr constant [6 x i8] c"ret:\0A\00" +@.str1591 = private unnamed_addr constant [22 x i8] c"load i32, ptr %retval\00" +@.str1592 = private unnamed_addr constant [11 x i8] c" ret i32 \00" +@.str1593 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1594 = private unnamed_addr constant [49 x i8] c"define i32 @main(i32 %argc, ptr %argv) {\0Aentry:\0A\00" +@.str1595 = private unnamed_addr constant [3 x i8] c"}\0A\00" +@.str1596 = private unnamed_addr constant [3 x i8] c"wb\00" +@.str1597 = private unnamed_addr constant [7 x i8] c".ludic\00" +@.str1598 = private unnamed_addr constant [2 x i8] c"/\00" +@.str1599 = private unnamed_addr constant [6 x i8] c"ludic\00" +@.str1600 = private unnamed_addr constant [11 x i8] c"--windowed\00" +@.str1601 = private unnamed_addr constant [11 x i8] c"--headless\00" +@.str1602 = private unnamed_addr constant [12 x i8] c"--emit-llvm\00" +@.str1603 = private unnamed_addr constant [6 x i8] c"--fmt\00" +@.str1604 = private unnamed_addr constant [13 x i8] c"--save-temps\00" +@.str1605 = private unnamed_addr constant [6 x i8] c"--run\00" +@.str1606 = private unnamed_addr constant [3 x i8] c"-o\00" +@.str1607 = private unnamed_addr constant [31 x i8] c"ludicc: ignoring unknown flag \00" +@.str1608 = private unnamed_addr constant [2 x i8] c"\0A\00" +@.str1609 = private unnamed_addr constant [90 x i8] c"usage: ludicc [-o out] [--windowed|--headless] [--emit-llvm] [--save-temps]\0A\00" +@.str1610 = private unnamed_addr constant [27 x i8] c"ludicc: cannot open input\0A\00" +@.str1611 = private unnamed_addr constant [16 x i8] c"/tmp/ludic-run-\00" +@.str1612 = private unnamed_addr constant [10 x i8] c"mkdir -p \00" +@.str1613 = private unnamed_addr constant [4 x i8] c".ll\00" +@.str1614 = private unnamed_addr constant [25 x i8] c"ludicc: cannot write IR\0A\00" +@.str1615 = private unnamed_addr constant [9 x i8] c"LUDIC_CC\00" +@.str1616 = private unnamed_addr constant [6 x i8] c"clang\00" +@.str1617 = private unnamed_addr constant [11 x i8] c"LUDIC_HOME\00" +@.str1618 = private unnamed_addr constant [27 x i8] c" -O2 -Wno-override-module \00" +@.str1619 = private unnamed_addr constant [24 x i8] c"runtime/native/cocoa.ll\00" +@.str1620 = private unnamed_addr constant [2 x i8] c" \00" +@.str1621 = private unnamed_addr constant [42 x i8] c" -framework Cocoa -Wl,-rpath,@loader_path\00" +@.str1622 = private unnamed_addr constant [5 x i8] c" -o \00" +@.str1623 = private unnamed_addr constant [7 x i8] c"rm -f \00" +@.str1624 = private unnamed_addr constant [21 x i8] c"ludicc: link failed\0A\00" define i32 @fn_str_eq(ptr %a, ptr %b) { entry: br label %loop @@ -9677,11 +9664,19 @@ then10: store ptr @.str244, ptr %retval br label %ret ifend12: - store ptr @.str245, ptr %retval + %t26 = load ptr, ptr %t0 + %t27 = call i32 @fn_str_eq(ptr %t26, ptr @.str245) + %t28 = icmp ne i32 %t27, 0 + br i1 %t28, label %then13, label %ifend15 +then13: + store ptr @.str246, ptr %retval + br label %ret +ifend15: + store ptr @.str247, ptr %retval br label %ret ret: - %t26 = load ptr, ptr %retval - ret ptr %t26 + %t29 = load ptr, ptr %retval + ret ptr %t29 } define i32 @fn_is_slice_ty(ptr %arg_t) { @@ -9891,7 +9886,7 @@ entry: %t0 = alloca ptr store ptr %arg_name, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call ptr @fn_str_concat(ptr @.str246, ptr %t1) + %t2 = call ptr @fn_str_concat(ptr @.str248, ptr %t1) store ptr %t2, ptr %retval br label %ret ret: @@ -10008,7 +10003,7 @@ ifend5: store i32 %t36, ptr %t2 br label %wcond0 wend2: - store ptr @.str247, ptr %retval + store ptr @.str249, ptr %retval br label %ret ret: %t37 = load ptr, ptr %retval @@ -10301,7 +10296,7 @@ entry: %t6 = load ptr, ptr %t5 %t7 = getelementptr inbounds %Cmp_Node, ptr %t6, i32 0, i32 1 %t8 = load ptr, ptr %t0 - %t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str248) + %t9 = call ptr @fn_str_concat(ptr %t8, ptr @.str250) %t10 = load ptr, ptr %t1 %t11 = call ptr @fn_str_concat(ptr %t9, ptr %t10) store ptr %t11, ptr %t7 @@ -10365,7 +10360,7 @@ then0: br label %ret ifend2: %t6 = load ptr, ptr %t0 - %t7 = call ptr @fn_str_concat(ptr %t6, ptr @.str249) + %t7 = call ptr @fn_str_concat(ptr %t6, ptr @.str251) %t8 = load ptr, ptr %t1 %t9 = call ptr @fn_str_concat(ptr %t7, ptr %t8) store ptr %t9, ptr %t10 @@ -11280,7 +11275,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_str_concat(ptr @.str250, ptr %t2) + %t3 = call ptr @fn_str_concat(ptr @.str252, ptr %t2) store ptr %t3, ptr %t4 %t5 = load i32, ptr @g_ll_str %t6 = add i32 %t5, 1 @@ -11291,12 +11286,12 @@ entry: store i32 %t9, ptr %t10 %t11 = load ptr, ptr %t4 call void @fn_emith(ptr %t11) - call void @fn_emith(ptr @.str251) + call void @fn_emith(ptr @.str253) %t12 = load i32, ptr %t10 %t13 = add i32 %t12, 1 %t14 = call ptr @fn_itoa(i32 %t13) call void @fn_emith(ptr %t14) - call void @fn_emith(ptr @.str252) + call void @fn_emith(ptr @.str254) store i32 0, ptr %t15 br label %wcond0 wcond0: @@ -11385,7 +11380,7 @@ ifend11: store i32 %t70, ptr %t15 br label %wcond0 wend2: - call void @fn_emith(ptr @.str253) + call void @fn_emith(ptr @.str255) %t71 = load ptr, ptr %t4 store ptr %t71, ptr %retval br label %ret @@ -11416,14 +11411,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_str_eq(ptr %t10, ptr @.str254) + %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str256) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: - store ptr @.str255, ptr %retval + store ptr @.str257, ptr %retval br label %ret ifend5: - store ptr @.str256, ptr %retval + store ptr @.str258, ptr %retval br label %ret ifend2: %t13 = load ptr, ptr %t0 @@ -11490,7 +11485,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_str_eq(ptr %t60, ptr @.str257) + %t61 = call i32 @fn_str_eq(ptr %t60, ptr @.str259) %t62 = icmp ne i32 %t61, 0 %t63 = zext i1 %t62 to i32 store i32 %t63, ptr %t50 @@ -11524,7 +11519,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_str_concat(ptr @.str258, ptr %t83) + %t84 = call ptr @fn_str_concat(ptr @.str260, ptr %t83) store ptr %t84, ptr %retval br label %ret ifend19: @@ -11532,14 +11527,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_str_eq(ptr %t88, ptr @.str259) + %t89 = call i32 @fn_str_eq(ptr %t88, ptr @.str261) %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then20, label %ifend22 then20: - store ptr @.str260, ptr %retval + store ptr @.str262, ptr %retval br label %ret ifend22: - store ptr @.str261, ptr %retval + store ptr @.str263, ptr %retval br label %ret ret: %t91 = load ptr, ptr %retval @@ -11552,8 +11547,6 @@ entry: %t20 = alloca ptr %t39 = alloca i32 %t81 = alloca ptr - call void @fn_emith(ptr @.str262) - call void @fn_emith(ptr @.str263) call void @fn_emith(ptr @.str264) call void @fn_emith(ptr @.str265) call void @fn_emith(ptr @.str266) @@ -11584,17 +11577,19 @@ entry: call void @fn_emith(ptr @.str291) call void @fn_emith(ptr @.str292) call void @fn_emith(ptr @.str293) + call void @fn_emith(ptr @.str294) + call void @fn_emith(ptr @.str295) %t0 = load ptr, ptr @g_g_game_name %t1 = call i64 @strlen(ptr %t0) %t2 = trunc i64 %t1 to i32 %t3 = add i32 %t2, 1 %t4 = call ptr @fn_itoa(i32 %t3) call void @fn_emith(ptr %t4) - call void @fn_emith(ptr @.str294) + call void @fn_emith(ptr @.str296) %t5 = load ptr, ptr @g_g_game_name call void @fn_emith(ptr %t5) - call void @fn_emith(ptr @.str295) - call void @fn_emith(ptr @.str296) + call void @fn_emith(ptr @.str297) + call void @fn_emith(ptr @.str298) store i32 0, ptr %t6 br label %wcond0 wcond0: @@ -11627,7 +11622,7 @@ then3: %t29 = load ptr, ptr %t28 %t30 = call ptr @fn_layout_ty(ptr %t29) call void @fn_emith(ptr %t30) - call void @fn_emith(ptr @.str297) + call void @fn_emith(ptr @.str299) %t31 = load ptr, ptr %t20 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 7 %t33 = load ptr, ptr %t32 @@ -11638,7 +11633,7 @@ then3: %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then6, label %ifend8 then6: - call void @fn_emith(ptr @.str298) + call void @fn_emith(ptr @.str300) br label %ifend8 ifend8: store i32 0, ptr %t39 @@ -11661,7 +11656,7 @@ wbody10: %t52 = icmp ne i32 %t51, 0 br i1 %t52, label %then12, label %ifend14 then12: - call void @fn_emith(ptr @.str299) + call void @fn_emith(ptr @.str301) br label %ifend14 ifend14: %t53 = load ptr, ptr %t20 @@ -11681,7 +11676,7 @@ ifend14: store i32 %t65, ptr %t39 br label %wcond9 wend11: - call void @fn_emith(ptr @.str300) + call void @fn_emith(ptr @.str302) br label %ifend5 ifend5: %t66 = load i32, ptr %t6 @@ -11716,22 +11711,22 @@ wbody16: %t87 = icmp ne i32 %t86, 0 br i1 %t87, label %then18, label %ifend20 then18: - call void @fn_emith(ptr @.str301) + call void @fn_emith(ptr @.str303) %t88 = load ptr, ptr %t81 %t89 = getelementptr inbounds %Cmp_Node, ptr %t88, i32 0, i32 1 %t90 = load ptr, ptr %t89 call void @fn_emith(ptr %t90) - call void @fn_emith(ptr @.str302) + call void @fn_emith(ptr @.str304) %t91 = load ptr, ptr %t81 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 3 %t93 = load ptr, ptr %t92 %t94 = call ptr @fn_llty(ptr %t93) call void @fn_emith(ptr %t94) - call void @fn_emith(ptr @.str303) + call void @fn_emith(ptr @.str305) %t95 = load ptr, ptr %t81 %t96 = call ptr @fn_global_init(ptr %t95) call void @fn_emith(ptr %t96) - call void @fn_emith(ptr @.str304) + call void @fn_emith(ptr @.str306) br label %ifend20 ifend20: %t97 = load i32, ptr %t6 @@ -11746,8 +11741,6 @@ ret: define void @fn_emit_str_prelude() { entry: - call void @fn_emith(ptr @.str305) - call void @fn_emith(ptr @.str306) call void @fn_emith(ptr @.str307) call void @fn_emith(ptr @.str308) call void @fn_emith(ptr @.str309) @@ -11781,6 +11774,8 @@ entry: call void @fn_emith(ptr @.str337) call void @fn_emith(ptr @.str338) call void @fn_emith(ptr @.str339) + call void @fn_emith(ptr @.str340) + call void @fn_emith(ptr @.str341) br label %ret ret: ret void @@ -11788,8 +11783,6 @@ ret: define void @fn_emit_int_str() { entry: - call void @fn_emith(ptr @.str340) - call void @fn_emith(ptr @.str341) call void @fn_emith(ptr @.str342) call void @fn_emith(ptr @.str343) call void @fn_emith(ptr @.str344) @@ -11805,6 +11798,8 @@ entry: call void @fn_emith(ptr @.str354) call void @fn_emith(ptr @.str355) call void @fn_emith(ptr @.str356) + call void @fn_emith(ptr @.str357) + call void @fn_emith(ptr @.str358) br label %ret ret: ret void @@ -11812,14 +11807,14 @@ ret: define void @fn_emit_str_slice() { entry: - call void @fn_emith(ptr @.str357) - call void @fn_emith(ptr @.str358) call void @fn_emith(ptr @.str359) call void @fn_emith(ptr @.str360) call void @fn_emith(ptr @.str361) call void @fn_emith(ptr @.str362) call void @fn_emith(ptr @.str363) call void @fn_emith(ptr @.str364) + call void @fn_emith(ptr @.str365) + call void @fn_emith(ptr @.str366) br label %ret ret: ret void @@ -11853,7 +11848,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_str_concat(ptr @.str365, ptr %t17) + %t18 = call ptr @fn_str_concat(ptr @.str367, ptr %t17) call void @fn_perr(ptr %t18) br label %ifend2 ifend2: @@ -11872,7 +11867,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_str_concat(ptr @.str366, ptr %t31) + %t32 = call ptr @fn_str_concat(ptr @.str368, ptr %t31) call void @fn_perr(ptr %t32) br label %ifend5 ifend5: @@ -11884,25 +11879,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 @.str367) + call void @fn_emit(ptr @.str369) %t40 = load ptr, ptr %t39 call void @fn_emit(ptr %t40) - call void @fn_emit(ptr @.str368) + call void @fn_emit(ptr @.str370) %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 @.str369) + call void @fn_emit(ptr @.str371) %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 @.str370) + call void @fn_emit(ptr @.str372) %t48 = load i32, ptr %t24 %t49 = call ptr @fn_itoa(i32 %t48) call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str371) + call void @fn_emit(ptr @.str373) %t50 = load ptr, ptr %t39 store ptr %t50, ptr %retval br label %ret @@ -11917,12 +11912,13 @@ entry: %t0 = alloca ptr %t5 = alloca ptr %t17 = alloca ptr - %t28 = alloca ptr - %t34 = alloca ptr - %t37 = alloca ptr - %t43 = alloca ptr - %t50 = alloca ptr - %t52 = alloca ptr + %t33 = alloca ptr + %t45 = alloca ptr + %t51 = alloca ptr + %t54 = alloca ptr + %t60 = alloca ptr + %t67 = alloca ptr + %t69 = alloca ptr store ptr %arg_e, ptr %t0 %t1 = load ptr, ptr %t0 %t2 = getelementptr inbounds %Cmp_Node, ptr %t1, i32 0, i32 4 @@ -11944,77 +11940,100 @@ then0: %t16 = call ptr @fn_emit_expr(ptr %t15) store ptr %t16, ptr %t17 %t18 = load ptr, ptr %t5 - %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 + %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 1 %t20 = load ptr, ptr %t19 - %t21 = call ptr @fn_str_concat(ptr @.str372, ptr %t20) - %t22 = call ptr @fn_str_concat(ptr %t21, ptr @.str373) - %t23 = load ptr, ptr %t17 + %t21 = call i32 @fn_str_eq(ptr %t20, ptr @.str374) + %t22 = icmp ne i32 %t21, 0 + br i1 %t22, label %then3, label %ifend5 +then3: + %t23 = load ptr, ptr %t5 %t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0 %t25 = load ptr, ptr %t24 - %t26 = call ptr @fn_str_concat(ptr %t22, ptr %t25) - %t27 = call ptr @fn_emit_bind(ptr %t26) - store ptr %t27, ptr %t28 - store ptr @.str374, ptr @g_g_addr_ty - %t29 = load ptr, ptr %t28 - store ptr %t29, ptr %retval + %t26 = call ptr @fn_str_concat(ptr @.str375, ptr %t25) + %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str376) + %t28 = load ptr, ptr %t17 + %t29 = getelementptr inbounds %Cmp_Val, ptr %t28, i32 0, i32 0 + %t30 = load ptr, ptr %t29 + %t31 = call ptr @fn_str_concat(ptr %t27, ptr %t30) + %t32 = call ptr @fn_emit_bind(ptr %t31) + store ptr %t32, ptr %t33 + store ptr @.str377, ptr @g_g_addr_ty + %t34 = load ptr, ptr %t33 + store ptr %t34, ptr %retval + br label %ret +ifend5: + %t35 = load ptr, ptr %t5 + %t36 = getelementptr inbounds %Cmp_Val, ptr %t35, i32 0, i32 0 + %t37 = load ptr, ptr %t36 + %t38 = call ptr @fn_str_concat(ptr @.str378, ptr %t37) + %t39 = call ptr @fn_str_concat(ptr %t38, ptr @.str379) + %t40 = load ptr, ptr %t17 + %t41 = getelementptr inbounds %Cmp_Val, ptr %t40, i32 0, i32 0 + %t42 = load ptr, ptr %t41 + %t43 = call ptr @fn_str_concat(ptr %t39, ptr %t42) + %t44 = call ptr @fn_emit_bind(ptr %t43) + store ptr %t44, ptr %t45 + store ptr @.str380, ptr @g_g_addr_ty + %t46 = load ptr, ptr %t45 + store ptr %t46, ptr %retval br label %ret ifend2: - %t30 = load ptr, ptr %t5 - %t31 = getelementptr inbounds %Cmp_Val, ptr %t30, i32 0, i32 1 - %t32 = load ptr, ptr %t31 - %t33 = call ptr @fn_slice_elem(ptr %t32) - store ptr %t33, ptr %t34 - %t35 = load ptr, ptr %t34 - store ptr %t35, ptr @g_g_addr_ty - %t36 = call ptr @fn_nreg() - store ptr %t36, ptr %t37 - call void @fn_emit(ptr @.str375) - %t38 = load ptr, ptr %t37 - call void @fn_emit(ptr %t38) - call void @fn_emit(ptr @.str376) - %t39 = load ptr, ptr %t5 - %t40 = getelementptr inbounds %Cmp_Val, ptr %t39, i32 0, i32 0 - %t41 = load ptr, ptr %t40 - call void @fn_emit(ptr %t41) - call void @fn_emit(ptr @.str377) - %t42 = call ptr @fn_nreg() - store ptr %t42, ptr %t43 - call void @fn_emit(ptr @.str378) - %t44 = load ptr, ptr %t43 - call void @fn_emit(ptr %t44) - call void @fn_emit(ptr @.str379) - %t45 = load ptr, ptr %t37 - call void @fn_emit(ptr %t45) - call void @fn_emit(ptr @.str380) - %t46 = load ptr, ptr %t0 - %t47 = getelementptr inbounds %Cmp_Node, ptr %t46, i32 0, i32 5 - %t48 = load ptr, ptr %t47 - %t49 = call ptr @fn_emit_expr(ptr %t48) - store ptr %t49, ptr %t50 - %t51 = call ptr @fn_nreg() - store ptr %t51, ptr %t52 + %t47 = load ptr, ptr %t5 + %t48 = getelementptr inbounds %Cmp_Val, ptr %t47, i32 0, i32 1 + %t49 = load ptr, ptr %t48 + %t50 = call ptr @fn_slice_elem(ptr %t49) + store ptr %t50, ptr %t51 + %t52 = load ptr, ptr %t51 + store ptr %t52, ptr @g_g_addr_ty + %t53 = call ptr @fn_nreg() + store ptr %t53, ptr %t54 call void @fn_emit(ptr @.str381) - %t53 = load ptr, ptr %t52 - call void @fn_emit(ptr %t53) - call void @fn_emit(ptr @.str382) - %t54 = load ptr, ptr %t34 - %t55 = call ptr @fn_llty(ptr %t54) + %t55 = load ptr, ptr %t54 call void @fn_emit(ptr %t55) + call void @fn_emit(ptr @.str382) + %t56 = load ptr, ptr %t5 + %t57 = getelementptr inbounds %Cmp_Val, ptr %t56, i32 0, i32 0 + %t58 = load ptr, ptr %t57 + call void @fn_emit(ptr %t58) call void @fn_emit(ptr @.str383) - %t56 = load ptr, ptr %t43 - call void @fn_emit(ptr %t56) + %t59 = call ptr @fn_nreg() + store ptr %t59, ptr %t60 call void @fn_emit(ptr @.str384) - %t57 = load ptr, ptr %t50 - %t58 = getelementptr inbounds %Cmp_Val, ptr %t57, i32 0, i32 0 - %t59 = load ptr, ptr %t58 - call void @fn_emit(ptr %t59) + %t61 = load ptr, ptr %t60 + call void @fn_emit(ptr %t61) call void @fn_emit(ptr @.str385) - %t60 = load ptr, ptr %t52 - store ptr %t60, ptr %retval + %t62 = load ptr, ptr %t54 + call void @fn_emit(ptr %t62) + call void @fn_emit(ptr @.str386) + %t63 = load ptr, ptr %t0 + %t64 = getelementptr inbounds %Cmp_Node, ptr %t63, i32 0, i32 5 + %t65 = load ptr, ptr %t64 + %t66 = call ptr @fn_emit_expr(ptr %t65) + store ptr %t66, ptr %t67 + %t68 = call ptr @fn_nreg() + store ptr %t68, ptr %t69 + call void @fn_emit(ptr @.str387) + %t70 = load ptr, ptr %t69 + call void @fn_emit(ptr %t70) + call void @fn_emit(ptr @.str388) + %t71 = load ptr, ptr %t51 + %t72 = call ptr @fn_llty(ptr %t71) + call void @fn_emit(ptr %t72) + call void @fn_emit(ptr @.str389) + %t73 = load ptr, ptr %t60 + call void @fn_emit(ptr %t73) + call void @fn_emit(ptr @.str390) + %t74 = load ptr, ptr %t67 + %t75 = getelementptr inbounds %Cmp_Val, ptr %t74, i32 0, i32 0 + %t76 = load ptr, ptr %t75 + call void @fn_emit(ptr %t76) + call void @fn_emit(ptr @.str391) + %t77 = load ptr, ptr %t69 + store ptr %t77, ptr %retval br label %ret ret: - %t61 = load ptr, ptr %retval - ret ptr %t61 + %t78 = load ptr, ptr %retval + ret ptr %t78 } define i32 @fn_is_intrinsic(ptr %arg_name) { @@ -12030,17 +12049,16 @@ entry: %t51 = alloca i32 %t52 = alloca i32 %t80 = alloca i32 - %t91 = alloca i32 store ptr %arg_name, ptr %t0 %t2 = load ptr, ptr %t0 - %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str386) + %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str392) %t4 = icmp ne i32 %t3, 0 %t5 = zext i1 %t4 to i32 store i32 %t5, ptr %t1 br i1 %t4, label %scend1, label %sc0 sc0: %t6 = load ptr, ptr %t0 - %t7 = call i32 @fn_str_eq(ptr %t6, ptr @.str387) + %t7 = call i32 @fn_str_eq(ptr %t6, ptr @.str393) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t1 @@ -12054,14 +12072,14 @@ then2: br label %ret ifend4: %t14 = load ptr, ptr %t0 - %t15 = call i32 @fn_str_eq(ptr %t14, ptr @.str388) + %t15 = call i32 @fn_str_eq(ptr %t14, ptr @.str394) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t13 br i1 %t16, label %scend6, label %sc5 sc5: %t18 = load ptr, ptr %t0 - %t19 = call i32 @fn_str_eq(ptr %t18, ptr @.str389) + %t19 = call i32 @fn_str_eq(ptr %t18, ptr @.str395) %t20 = icmp ne i32 %t19, 0 %t21 = zext i1 %t20 to i32 store i32 %t21, ptr %t13 @@ -12074,7 +12092,7 @@ scend6: br i1 %t23, label %scend8, label %sc7 sc7: %t25 = load ptr, ptr %t0 - %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str390) + %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str396) %t27 = icmp ne i32 %t26, 0 %t28 = zext i1 %t27 to i32 store i32 %t28, ptr %t12 @@ -12088,14 +12106,14 @@ then9: br label %ret ifend11: %t33 = load ptr, ptr %t0 - %t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str391) + %t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str397) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t32 br i1 %t35, label %scend13, label %sc12 sc12: %t37 = load ptr, ptr %t0 - %t38 = call i32 @fn_str_eq(ptr %t37, ptr @.str392) + %t38 = call i32 @fn_str_eq(ptr %t37, ptr @.str398) %t39 = icmp ne i32 %t38, 0 %t40 = zext i1 %t39 to i32 store i32 %t40, ptr %t32 @@ -12108,7 +12126,7 @@ scend13: br i1 %t42, label %scend15, label %sc14 sc14: %t44 = load ptr, ptr %t0 - %t45 = call i32 @fn_str_eq(ptr %t44, ptr @.str393) + %t45 = call i32 @fn_str_eq(ptr %t44, ptr @.str399) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t31 @@ -12122,14 +12140,14 @@ then16: br label %ret ifend18: %t53 = load ptr, ptr %t0 - %t54 = call i32 @fn_str_eq(ptr %t53, ptr @.str394) + %t54 = call i32 @fn_str_eq(ptr %t53, ptr @.str400) %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_str_eq(ptr %t57, ptr @.str395) + %t58 = call i32 @fn_str_eq(ptr %t57, ptr @.str401) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t52 @@ -12142,7 +12160,7 @@ scend20: br i1 %t62, label %scend22, label %sc21 sc21: %t64 = load ptr, ptr %t0 - %t65 = call i32 @fn_str_eq(ptr %t64, ptr @.str396) + %t65 = call i32 @fn_str_eq(ptr %t64, ptr @.str402) %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t51 @@ -12155,7 +12173,7 @@ scend22: br i1 %t69, label %scend24, label %sc23 sc23: %t71 = load ptr, ptr %t0 - %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str397) + %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str403) %t73 = icmp ne i32 %t72, 0 %t74 = zext i1 %t73 to i32 store i32 %t74, ptr %t50 @@ -12169,7 +12187,7 @@ then25: br label %ret ifend27: %t77 = load ptr, ptr %t0 - %t78 = call i32 @fn_str_eq(ptr %t77, ptr @.str398) + %t78 = call i32 @fn_str_eq(ptr %t77, ptr @.str404) %t79 = icmp ne i32 %t78, 0 br i1 %t79, label %then28, label %ifend30 then28: @@ -12177,14 +12195,14 @@ then28: br label %ret ifend30: %t81 = load ptr, ptr %t0 - %t82 = call i32 @fn_str_eq(ptr %t81, ptr @.str399) + %t82 = call i32 @fn_str_eq(ptr %t81, ptr @.str405) %t83 = icmp ne i32 %t82, 0 %t84 = zext i1 %t83 to i32 store i32 %t84, ptr %t80 br i1 %t83, label %scend32, label %sc31 sc31: %t85 = load ptr, ptr %t0 - %t86 = call i32 @fn_str_eq(ptr %t85, ptr @.str400) + %t86 = call i32 @fn_str_eq(ptr %t85, ptr @.str406) %t87 = icmp ne i32 %t86, 0 %t88 = zext i1 %t87 to i32 store i32 %t88, ptr %t80 @@ -12197,32 +12215,11 @@ then33: store i32 1, ptr %retval br label %ret ifend35: - %t92 = load ptr, ptr %t0 - %t93 = call i32 @fn_str_eq(ptr %t92, ptr @.str401) - %t94 = icmp ne i32 %t93, 0 - %t95 = zext i1 %t94 to i32 - store i32 %t95, ptr %t91 - br i1 %t94, label %scend37, label %sc36 -sc36: - %t96 = load ptr, ptr %t0 - %t97 = call i32 @fn_str_eq(ptr %t96, ptr @.str402) - %t98 = icmp ne i32 %t97, 0 - %t99 = zext i1 %t98 to i32 - store i32 %t99, ptr %t91 - br label %scend37 -scend37: - %t100 = load i32, ptr %t91 - %t101 = icmp ne i32 %t100, 0 - br i1 %t101, label %then38, label %ifend40 -then38: - store i32 1, ptr %retval - br label %ret -ifend40: store i32 0, ptr %retval br label %ret ret: - %t102 = load i32, ptr %retval - ret i32 %t102 + %t91 = load i32, ptr %retval + ret i32 %t91 } define ptr @fn_emit_bind(ptr %arg_rest) { @@ -12233,13 +12230,13 @@ entry: store ptr %arg_rest, ptr %t0 %t1 = call ptr @fn_nreg() store ptr %t1, ptr %t2 - call void @fn_emit(ptr @.str403) + call void @fn_emit(ptr @.str407) %t3 = load ptr, ptr %t2 call void @fn_emit(ptr %t3) - call void @fn_emit(ptr @.str404) + call void @fn_emit(ptr @.str408) %t4 = load ptr, ptr %t0 call void @fn_emit(ptr %t4) - call void @fn_emit(ptr @.str405) + call void @fn_emit(ptr @.str409) %t5 = load ptr, ptr %t2 store ptr %t5, ptr %retval br label %ret @@ -12308,18 +12305,11 @@ entry: %t186 = alloca ptr %t204 = alloca ptr %t215 = alloca ptr - %t226 = alloca ptr - %t229 = alloca ptr - %t231 = alloca ptr - %t244 = alloca ptr - %t247 = alloca ptr - %t250 = alloca ptr - %t252 = alloca ptr store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 store i32 1, ptr @g_g_intrin_ok %t2 = load ptr, ptr %t0 - %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str406) + %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str410) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: @@ -12327,20 +12317,20 @@ then0: %t6 = call ptr @fn_arg_code(ptr %t5, i32 0) store ptr %t6, ptr %t7 %t8 = load ptr, ptr %t7 - %t9 = call ptr @fn_str_concat(ptr @.str407, ptr %t8) - %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str408) + %t9 = call ptr @fn_str_concat(ptr @.str411, ptr %t8) + %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str412) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 - %t14 = call ptr @fn_str_concat(ptr @.str409, ptr %t13) - %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str410) + %t14 = call ptr @fn_str_concat(ptr @.str413, ptr %t13) + %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str414) %t16 = call ptr @fn_emit_bind(ptr %t15) - %t17 = call ptr @fn_val(ptr %t16, ptr @.str411) + %t17 = call ptr @fn_val(ptr %t16, ptr @.str415) store ptr %t17, ptr %retval br label %ret ifend2: %t18 = load ptr, ptr %t0 - %t19 = call i32 @fn_str_eq(ptr %t18, ptr @.str412) + %t19 = call i32 @fn_str_eq(ptr %t18, ptr @.str416) %t20 = icmp ne i32 %t19, 0 br i1 %t20, label %then3, label %ifend5 then3: @@ -12351,23 +12341,23 @@ then3: %t25 = call ptr @fn_arg_code(ptr %t24, i32 1) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t26 - %t28 = call ptr @fn_str_concat(ptr @.str413, ptr %t27) - %t29 = call ptr @fn_str_concat(ptr %t28, ptr @.str414) + %t28 = call ptr @fn_str_concat(ptr @.str417, ptr %t27) + %t29 = call ptr @fn_str_concat(ptr %t28, ptr @.str418) %t30 = call ptr @fn_emit_bind(ptr %t29) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t23 - %t33 = call ptr @fn_str_concat(ptr @.str415, ptr %t32) - %t34 = call ptr @fn_str_concat(ptr %t33, ptr @.str416) + %t33 = call ptr @fn_str_concat(ptr @.str419, ptr %t32) + %t34 = call ptr @fn_str_concat(ptr %t33, ptr @.str420) %t35 = load ptr, ptr %t31 %t36 = call ptr @fn_str_concat(ptr %t34, ptr %t35) - %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str417) + %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str421) %t38 = call ptr @fn_emit_bind(ptr %t37) - %t39 = call ptr @fn_val(ptr %t38, ptr @.str418) + %t39 = call ptr @fn_val(ptr %t38, ptr @.str422) store ptr %t39, ptr %retval br label %ret ifend5: %t40 = load ptr, ptr %t0 - %t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str419) + %t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str423) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then6, label %ifend8 then6: @@ -12378,25 +12368,25 @@ then6: %t47 = call ptr @fn_arg_code(ptr %t46, i32 1) store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t45 - %t50 = call ptr @fn_str_concat(ptr @.str420, ptr %t49) - %t51 = call ptr @fn_str_concat(ptr %t50, ptr @.str421) + %t50 = call ptr @fn_str_concat(ptr @.str424, ptr %t49) + %t51 = call ptr @fn_str_concat(ptr %t50, ptr @.str425) %t52 = load ptr, ptr %t48 %t53 = call ptr @fn_str_concat(ptr %t51, ptr %t52) - %t54 = call ptr @fn_str_concat(ptr %t53, ptr @.str422) + %t54 = call ptr @fn_str_concat(ptr %t53, ptr @.str426) %t55 = call ptr @fn_emit_bind(ptr %t54) - %t56 = call ptr @fn_val(ptr %t55, ptr @.str423) + %t56 = call ptr @fn_val(ptr %t55, ptr @.str427) store ptr %t56, ptr %retval br label %ret ifend8: %t58 = load ptr, ptr %t0 - %t59 = call i32 @fn_str_eq(ptr %t58, ptr @.str424) + %t59 = call i32 @fn_str_eq(ptr %t58, ptr @.str428) %t60 = icmp ne i32 %t59, 0 %t61 = zext i1 %t60 to i32 store i32 %t61, ptr %t57 br i1 %t60, label %scend10, label %sc9 sc9: %t62 = load ptr, ptr %t0 - %t63 = call i32 @fn_str_eq(ptr %t62, ptr @.str425) + %t63 = call i32 @fn_str_eq(ptr %t62, ptr @.str429) %t64 = icmp ne i32 %t63, 0 %t65 = zext i1 %t64 to i32 store i32 %t65, ptr %t57 @@ -12416,43 +12406,43 @@ then11: %t75 = call ptr @fn_arg_code(ptr %t74, i32 2) store ptr %t75, ptr %t76 %t77 = load ptr, ptr %t76 - %t78 = call ptr @fn_str_concat(ptr @.str426, ptr %t77) - %t79 = call ptr @fn_str_concat(ptr %t78, ptr @.str427) + %t78 = call ptr @fn_str_concat(ptr @.str430, ptr %t77) + %t79 = call ptr @fn_str_concat(ptr %t78, ptr @.str431) %t80 = call ptr @fn_emit_bind(ptr %t79) store ptr %t80, ptr %t81 - store ptr @.str428, ptr %t82 + store ptr @.str432, ptr %t82 %t83 = load ptr, ptr %t0 - %t84 = call i32 @fn_str_eq(ptr %t83, ptr @.str429) + %t84 = call i32 @fn_str_eq(ptr %t83, ptr @.str433) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then14, label %ifend16 then14: - store ptr @.str430, ptr %t82 + store ptr @.str434, ptr %t82 br label %ifend16 ifend16: %t86 = load ptr, ptr %t82 - %t87 = call ptr @fn_str_concat(ptr @.str431, ptr %t86) - %t88 = call ptr @fn_str_concat(ptr %t87, ptr @.str432) + %t87 = call ptr @fn_str_concat(ptr @.str435, ptr %t86) + %t88 = call ptr @fn_str_concat(ptr %t87, ptr @.str436) %t89 = load ptr, ptr %t73 %t90 = call ptr @fn_str_concat(ptr %t88, ptr %t89) - %t91 = call ptr @fn_str_concat(ptr %t90, ptr @.str433) + %t91 = call ptr @fn_str_concat(ptr %t90, ptr @.str437) %t92 = load ptr, ptr %t81 %t93 = call ptr @fn_str_concat(ptr %t91, ptr %t92) - %t94 = call ptr @fn_str_concat(ptr %t93, ptr @.str434) + %t94 = call ptr @fn_str_concat(ptr %t93, ptr @.str438) %t95 = load ptr, ptr %t70 %t96 = call ptr @fn_str_concat(ptr %t94, ptr %t95) - %t97 = call ptr @fn_str_concat(ptr %t96, ptr @.str435) + %t97 = call ptr @fn_str_concat(ptr %t96, ptr @.str439) %t98 = call ptr @fn_emit_bind(ptr %t97) store ptr %t98, ptr %t99 %t100 = load ptr, ptr %t99 - %t101 = call ptr @fn_str_concat(ptr @.str436, ptr %t100) - %t102 = call ptr @fn_str_concat(ptr %t101, ptr @.str437) + %t101 = call ptr @fn_str_concat(ptr @.str440, ptr %t100) + %t102 = call ptr @fn_str_concat(ptr %t101, ptr @.str441) %t103 = call ptr @fn_emit_bind(ptr %t102) - %t104 = call ptr @fn_val(ptr %t103, ptr @.str438) + %t104 = call ptr @fn_val(ptr %t103, ptr @.str442) store ptr %t104, ptr %retval br label %ret ifend13: %t105 = load ptr, ptr %t0 - %t106 = call i32 @fn_str_eq(ptr %t105, ptr @.str439) + %t106 = call i32 @fn_str_eq(ptr %t105, ptr @.str443) %t107 = icmp ne i32 %t106, 0 br i1 %t107, label %then17, label %ifend19 then17: @@ -12466,26 +12456,26 @@ then17: %t115 = call ptr @fn_arg_code(ptr %t114, i32 2) store ptr %t115, ptr %t116 %t117 = load ptr, ptr %t113 - %t118 = call ptr @fn_str_concat(ptr @.str440, ptr %t117) - %t119 = call ptr @fn_str_concat(ptr %t118, ptr @.str441) + %t118 = call ptr @fn_str_concat(ptr @.str444, ptr %t117) + %t119 = call ptr @fn_str_concat(ptr %t118, ptr @.str445) %t120 = call ptr @fn_emit_bind(ptr %t119) store ptr %t120, ptr %t121 %t122 = load ptr, ptr %t110 - %t123 = call ptr @fn_str_concat(ptr @.str442, ptr %t122) - %t124 = call ptr @fn_str_concat(ptr %t123, ptr @.str443) + %t123 = call ptr @fn_str_concat(ptr @.str446, ptr %t122) + %t124 = call ptr @fn_str_concat(ptr %t123, ptr @.str447) %t125 = load ptr, ptr %t121 %t126 = call ptr @fn_str_concat(ptr %t124, ptr %t125) - %t127 = call ptr @fn_str_concat(ptr %t126, ptr @.str444) + %t127 = call ptr @fn_str_concat(ptr %t126, ptr @.str448) %t128 = load ptr, ptr %t116 %t129 = call ptr @fn_str_concat(ptr %t127, ptr %t128) - %t130 = call ptr @fn_str_concat(ptr %t129, ptr @.str445) + %t130 = call ptr @fn_str_concat(ptr %t129, ptr @.str449) %t131 = call ptr @fn_emit_bind(ptr %t130) - %t132 = call ptr @fn_val(ptr %t131, ptr @.str446) + %t132 = call ptr @fn_val(ptr %t131, ptr @.str450) store ptr %t132, ptr %retval br label %ret ifend19: %t133 = load ptr, ptr %t0 - %t134 = call i32 @fn_str_eq(ptr %t133, ptr @.str447) + %t134 = call i32 @fn_str_eq(ptr %t133, ptr @.str451) %t135 = icmp ne i32 %t134, 0 br i1 %t135, label %then20, label %ifend22 then20: @@ -12493,108 +12483,108 @@ then20: %t137 = call ptr @fn_arg_code(ptr %t136, i32 0) store ptr %t137, ptr %t138 %t139 = load ptr, ptr %t138 - %t140 = call ptr @fn_str_concat(ptr @.str448, ptr %t139) - %t141 = call ptr @fn_str_concat(ptr %t140, ptr @.str449) + %t140 = call ptr @fn_str_concat(ptr @.str452, ptr %t139) + %t141 = call ptr @fn_str_concat(ptr %t140, ptr @.str453) %t142 = call ptr @fn_emit_bind(ptr %t141) store ptr %t142, ptr %t143 %t144 = load ptr, ptr %t143 - %t145 = call ptr @fn_str_concat(ptr @.str450, ptr %t144) - %t146 = call ptr @fn_str_concat(ptr %t145, ptr @.str451) + %t145 = call ptr @fn_str_concat(ptr @.str454, ptr %t144) + %t146 = call ptr @fn_str_concat(ptr %t145, ptr @.str455) %t147 = call ptr @fn_emit_bind(ptr %t146) - %t148 = call ptr @fn_val(ptr %t147, ptr @.str452) + %t148 = call ptr @fn_val(ptr %t147, ptr @.str456) store ptr %t148, ptr %retval br label %ret ifend22: %t149 = load ptr, ptr %t0 - %t150 = call i32 @fn_str_eq(ptr %t149, ptr @.str453) + %t150 = call i32 @fn_str_eq(ptr %t149, ptr @.str457) %t151 = icmp ne i32 %t150, 0 br i1 %t151, label %then23, label %ifend25 then23: %t152 = load ptr, ptr %t1 %t153 = call ptr @fn_arg_code(ptr %t152, i32 0) store ptr %t153, ptr %t154 - call void @fn_emit(ptr @.str454) + call void @fn_emit(ptr @.str458) %t155 = load ptr, ptr %t154 call void @fn_emit(ptr %t155) - call void @fn_emit(ptr @.str455) - %t156 = call ptr @fn_val(ptr @.str456, ptr @.str457) + call void @fn_emit(ptr @.str459) + %t156 = call ptr @fn_val(ptr @.str460, ptr @.str461) store ptr %t156, ptr %retval br label %ret ifend25: %t157 = load ptr, ptr %t0 - %t158 = call i32 @fn_str_eq(ptr %t157, ptr @.str458) + %t158 = call i32 @fn_str_eq(ptr %t157, ptr @.str462) %t159 = icmp ne i32 %t158, 0 br i1 %t159, label %then26, label %ifend28 then26: - %t160 = call ptr @fn_emit_bind(ptr @.str459) - %t161 = call ptr @fn_val(ptr %t160, ptr @.str460) + %t160 = call ptr @fn_emit_bind(ptr @.str463) + %t161 = call ptr @fn_val(ptr %t160, ptr @.str464) store ptr %t161, ptr %retval br label %ret ifend28: %t162 = load ptr, ptr %t0 - %t163 = call i32 @fn_str_eq(ptr %t162, ptr @.str461) + %t163 = call i32 @fn_str_eq(ptr %t162, ptr @.str465) %t164 = icmp ne i32 %t163, 0 br i1 %t164, label %then29, label %ifend31 then29: %t165 = load ptr, ptr %t1 %t166 = call ptr @fn_arg_code(ptr %t165, i32 0) store ptr %t166, ptr %t167 - %t168 = call ptr @fn_emit_bind(ptr @.str462) + %t168 = call ptr @fn_emit_bind(ptr @.str466) store ptr %t168, ptr %t169 %t170 = load ptr, ptr %t169 - %t171 = call ptr @fn_str_concat(ptr @.str463, ptr %t170) - %t172 = call ptr @fn_str_concat(ptr %t171, ptr @.str464) + %t171 = call ptr @fn_str_concat(ptr @.str467, ptr %t170) + %t172 = call ptr @fn_str_concat(ptr %t171, ptr @.str468) %t173 = load ptr, ptr %t167 %t174 = call ptr @fn_str_concat(ptr %t172, ptr %t173) %t175 = call ptr @fn_emit_bind(ptr %t174) store ptr %t175, ptr %t176 %t177 = load ptr, ptr %t176 - %t178 = call ptr @fn_str_concat(ptr @.str465, ptr %t177) + %t178 = call ptr @fn_str_concat(ptr @.str469, ptr %t177) %t179 = call ptr @fn_emit_bind(ptr %t178) - %t180 = call ptr @fn_val(ptr %t179, ptr @.str466) + %t180 = call ptr @fn_val(ptr %t179, ptr @.str470) store ptr %t180, ptr %retval br label %ret ifend31: %t181 = load ptr, ptr %t0 - %t182 = call i32 @fn_str_eq(ptr %t181, ptr @.str467) + %t182 = call i32 @fn_str_eq(ptr %t181, ptr @.str471) %t183 = icmp ne i32 %t182, 0 br i1 %t183, label %then32, label %ifend34 then32: %t184 = load ptr, ptr %t1 %t185 = call ptr @fn_arg_code(ptr %t184, i32 0) store ptr %t185, ptr %t186 - call void @fn_emit(ptr @.str468) + call void @fn_emit(ptr @.str472) %t187 = load ptr, ptr %t186 call void @fn_emit(ptr %t187) - call void @fn_emit(ptr @.str469) - call void @fn_emit(ptr @.str470) + call void @fn_emit(ptr @.str473) + call void @fn_emit(ptr @.str474) store i32 1, ptr @g_g_term - %t188 = call ptr @fn_val(ptr @.str471, ptr @.str472) + %t188 = call ptr @fn_val(ptr @.str475, ptr @.str476) store ptr %t188, ptr %retval br label %ret ifend34: %t189 = load ptr, ptr %t0 - %t190 = call i32 @fn_str_eq(ptr %t189, ptr @.str473) + %t190 = call i32 @fn_str_eq(ptr %t189, ptr @.str477) %t191 = icmp ne i32 %t190, 0 br i1 %t191, label %then35, label %ifend37 then35: - %t192 = call ptr @fn_emit_bind(ptr @.str474) - %t193 = call ptr @fn_val(ptr %t192, ptr @.str475) + %t192 = call ptr @fn_emit_bind(ptr @.str478) + %t193 = call ptr @fn_val(ptr %t192, ptr @.str479) store ptr %t193, ptr %retval br label %ret ifend37: %t194 = load ptr, ptr %t0 - %t195 = call i32 @fn_str_eq(ptr %t194, ptr @.str476) + %t195 = call i32 @fn_str_eq(ptr %t194, ptr @.str480) %t196 = icmp ne i32 %t195, 0 br i1 %t196, label %then38, label %ifend40 then38: - %t197 = call ptr @fn_emit_bind(ptr @.str477) - %t198 = call ptr @fn_val(ptr %t197, ptr @.str478) + %t197 = call ptr @fn_emit_bind(ptr @.str481) + %t198 = call ptr @fn_val(ptr %t197, ptr @.str482) store ptr %t198, ptr %retval br label %ret ifend40: %t199 = load ptr, ptr %t0 - %t200 = call i32 @fn_str_eq(ptr %t199, ptr @.str479) + %t200 = call i32 @fn_str_eq(ptr %t199, ptr @.str483) %t201 = icmp ne i32 %t200, 0 br i1 %t201, label %then41, label %ifend43 then41: @@ -12602,15 +12592,15 @@ then41: %t203 = call ptr @fn_arg_code(ptr %t202, i32 0) store ptr %t203, ptr %t204 %t205 = load ptr, ptr %t204 - %t206 = call ptr @fn_str_concat(ptr @.str480, ptr %t205) - %t207 = call ptr @fn_str_concat(ptr %t206, ptr @.str481) + %t206 = call ptr @fn_str_concat(ptr @.str484, ptr %t205) + %t207 = call ptr @fn_str_concat(ptr %t206, ptr @.str485) %t208 = call ptr @fn_emit_bind(ptr %t207) - %t209 = call ptr @fn_val(ptr %t208, ptr @.str482) + %t209 = call ptr @fn_val(ptr %t208, ptr @.str486) store ptr %t209, ptr %retval br label %ret ifend43: %t210 = load ptr, ptr %t0 - %t211 = call i32 @fn_str_eq(ptr %t210, ptr @.str483) + %t211 = call i32 @fn_str_eq(ptr %t210, ptr @.str487) %t212 = icmp ne i32 %t211, 0 br i1 %t212, label %then44, label %ifend46 then44: @@ -12618,87 +12608,20 @@ then44: %t214 = call ptr @fn_arg_code(ptr %t213, i32 0) store ptr %t214, ptr %t215 %t216 = load ptr, ptr %t215 - %t217 = call ptr @fn_str_concat(ptr @.str484, ptr %t216) - %t218 = call ptr @fn_str_concat(ptr %t217, ptr @.str485) + %t217 = call ptr @fn_str_concat(ptr @.str488, ptr %t216) + %t218 = call ptr @fn_str_concat(ptr %t217, ptr @.str489) %t219 = call ptr @fn_emit_bind(ptr %t218) - %t220 = call ptr @fn_val(ptr %t219, ptr @.str486) + %t220 = call ptr @fn_val(ptr %t219, ptr @.str490) store ptr %t220, ptr %retval br label %ret ifend46: - %t221 = load ptr, ptr %t0 - %t222 = call i32 @fn_str_eq(ptr %t221, ptr @.str487) - %t223 = icmp ne i32 %t222, 0 - br i1 %t223, label %then47, label %ifend49 -then47: - %t224 = load ptr, ptr %t1 - %t225 = call ptr @fn_arg_code(ptr %t224, i32 0) - store ptr %t225, ptr %t226 - %t227 = load ptr, ptr %t1 - %t228 = call ptr @fn_arg_code(ptr %t227, i32 1) - store ptr %t228, ptr %t229 - %t230 = call ptr @fn_nreg() - store ptr %t230, ptr %t231 - call void @fn_emit(ptr @.str488) - %t232 = load ptr, ptr %t231 - call void @fn_emit(ptr %t232) - call void @fn_emit(ptr @.str489) - %t233 = load ptr, ptr %t226 - call void @fn_emit(ptr %t233) - call void @fn_emit(ptr @.str490) - %t234 = load ptr, ptr %t229 - call void @fn_emit(ptr %t234) - call void @fn_emit(ptr @.str491) - %t235 = load ptr, ptr %t231 - %t236 = call ptr @fn_str_concat(ptr @.str492, ptr %t235) - %t237 = call ptr @fn_emit_bind(ptr %t236) - %t238 = call ptr @fn_val(ptr %t237, ptr @.str493) - store ptr %t238, ptr %retval - br label %ret -ifend49: - %t239 = load ptr, ptr %t0 - %t240 = call i32 @fn_str_eq(ptr %t239, ptr @.str494) - %t241 = icmp ne i32 %t240, 0 - br i1 %t241, label %then50, label %ifend52 -then50: - %t242 = load ptr, ptr %t1 - %t243 = call ptr @fn_arg_code(ptr %t242, i32 0) - store ptr %t243, ptr %t244 - %t245 = load ptr, ptr %t1 - %t246 = call ptr @fn_arg_code(ptr %t245, i32 1) - store ptr %t246, ptr %t247 - %t248 = load ptr, ptr %t1 - %t249 = call ptr @fn_arg_code(ptr %t248, i32 2) - store ptr %t249, ptr %t250 - %t251 = call ptr @fn_nreg() - store ptr %t251, ptr %t252 - call void @fn_emit(ptr @.str495) - %t253 = load ptr, ptr %t252 - call void @fn_emit(ptr %t253) - call void @fn_emit(ptr @.str496) - %t254 = load ptr, ptr %t244 - call void @fn_emit(ptr %t254) - call void @fn_emit(ptr @.str497) - %t255 = load ptr, ptr %t247 - call void @fn_emit(ptr %t255) - call void @fn_emit(ptr @.str498) - call void @fn_emit(ptr @.str499) - %t256 = load ptr, ptr %t250 - call void @fn_emit(ptr %t256) - call void @fn_emit(ptr @.str500) - %t257 = load ptr, ptr %t252 - call void @fn_emit(ptr %t257) - call void @fn_emit(ptr @.str501) - %t258 = call ptr @fn_val(ptr @.str502, ptr @.str503) - store ptr %t258, ptr %retval - br label %ret -ifend52: store i32 0, ptr @g_g_intrin_ok - %t259 = call ptr @fn_val(ptr @.str504, ptr @.str505) - store ptr %t259, ptr %retval + %t221 = call ptr @fn_val(ptr @.str491, ptr @.str492) + store ptr %t221, ptr %retval br label %ret ret: - %t260 = load ptr, ptr %retval - ret ptr %t260 + %t222 = load ptr, ptr %retval + ret ptr %t222 } define i32 @fn_is_intrinsic2(ptr %arg_name) { @@ -12720,14 +12643,14 @@ entry: %t118 = alloca i32 store ptr %arg_name, ptr %t0 %t3 = load ptr, ptr %t0 - %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str506) + %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str493) %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_str_eq(ptr %t7, ptr @.str507) + %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str494) %t9 = icmp ne i32 %t8, 0 %t10 = zext i1 %t9 to i32 store i32 %t10, ptr %t2 @@ -12740,7 +12663,7 @@ scend1: br i1 %t12, label %scend3, label %sc2 sc2: %t14 = load ptr, ptr %t0 - %t15 = call i32 @fn_str_eq(ptr %t14, ptr @.str508) + %t15 = call i32 @fn_str_eq(ptr %t14, ptr @.str495) %t16 = icmp ne i32 %t15, 0 %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t1 @@ -12754,14 +12677,14 @@ then4: br label %ret ifend6: %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str509) + %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str496) %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_str_eq(ptr %t26, ptr @.str510) + %t27 = call i32 @fn_str_eq(ptr %t26, ptr @.str497) %t28 = icmp ne i32 %t27, 0 %t29 = zext i1 %t28 to i32 store i32 %t29, ptr %t21 @@ -12774,7 +12697,7 @@ scend8: br i1 %t31, label %scend10, label %sc9 sc9: %t33 = load ptr, ptr %t0 - %t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str511) + %t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str498) %t35 = icmp ne i32 %t34, 0 %t36 = zext i1 %t35 to i32 store i32 %t36, ptr %t20 @@ -12788,14 +12711,14 @@ then11: br label %ret ifend13: %t40 = load ptr, ptr %t0 - %t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str512) + %t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str499) %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_str_eq(ptr %t44, ptr @.str513) + %t45 = call i32 @fn_str_eq(ptr %t44, ptr @.str500) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t39 @@ -12809,14 +12732,14 @@ then16: br label %ret ifend18: %t53 = load ptr, ptr %t0 - %t54 = call i32 @fn_str_eq(ptr %t53, ptr @.str514) + %t54 = call i32 @fn_str_eq(ptr %t53, ptr @.str501) %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_str_eq(ptr %t57, ptr @.str515) + %t58 = call i32 @fn_str_eq(ptr %t57, ptr @.str502) %t59 = icmp ne i32 %t58, 0 %t60 = zext i1 %t59 to i32 store i32 %t60, ptr %t52 @@ -12829,7 +12752,7 @@ scend20: br i1 %t62, label %scend22, label %sc21 sc21: %t64 = load ptr, ptr %t0 - %t65 = call i32 @fn_str_eq(ptr %t64, ptr @.str516) + %t65 = call i32 @fn_str_eq(ptr %t64, ptr @.str503) %t66 = icmp ne i32 %t65, 0 %t67 = zext i1 %t66 to i32 store i32 %t67, ptr %t51 @@ -12842,7 +12765,7 @@ scend22: br i1 %t69, label %scend24, label %sc23 sc23: %t71 = load ptr, ptr %t0 - %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str517) + %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str504) %t73 = icmp ne i32 %t72, 0 %t74 = zext i1 %t73 to i32 store i32 %t74, ptr %t50 @@ -12856,14 +12779,14 @@ then25: br label %ret ifend27: %t78 = load ptr, ptr %t0 - %t79 = call i32 @fn_str_eq(ptr %t78, ptr @.str518) + %t79 = call i32 @fn_str_eq(ptr %t78, ptr @.str505) %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_str_eq(ptr %t82, ptr @.str519) + %t83 = call i32 @fn_str_eq(ptr %t82, ptr @.str506) %t84 = icmp ne i32 %t83, 0 %t85 = zext i1 %t84 to i32 store i32 %t85, ptr %t77 @@ -12877,14 +12800,14 @@ then30: br label %ret ifend32: %t89 = load ptr, ptr %t0 - %t90 = call i32 @fn_str_eq(ptr %t89, ptr @.str520) + %t90 = call i32 @fn_str_eq(ptr %t89, ptr @.str507) %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_str_eq(ptr %t93, ptr @.str521) + %t94 = call i32 @fn_str_eq(ptr %t93, ptr @.str508) %t95 = icmp ne i32 %t94, 0 %t96 = zext i1 %t95 to i32 store i32 %t96, ptr %t88 @@ -12898,14 +12821,14 @@ then35: br label %ret ifend37: %t101 = load ptr, ptr %t0 - %t102 = call i32 @fn_str_eq(ptr %t101, ptr @.str522) + %t102 = call i32 @fn_str_eq(ptr %t101, ptr @.str509) %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_str_eq(ptr %t105, ptr @.str523) + %t106 = call i32 @fn_str_eq(ptr %t105, ptr @.str510) %t107 = icmp ne i32 %t106, 0 %t108 = zext i1 %t107 to i32 store i32 %t108, ptr %t100 @@ -12918,7 +12841,7 @@ scend39: br i1 %t110, label %scend41, label %sc40 sc40: %t112 = load ptr, ptr %t0 - %t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str524) + %t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str511) %t114 = icmp ne i32 %t113, 0 %t115 = zext i1 %t114 to i32 store i32 %t115, ptr %t99 @@ -12932,14 +12855,14 @@ then42: br label %ret ifend44: %t119 = load ptr, ptr %t0 - %t120 = call i32 @fn_str_eq(ptr %t119, ptr @.str525) + %t120 = call i32 @fn_str_eq(ptr %t119, ptr @.str512) %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_str_eq(ptr %t123, ptr @.str526) + %t124 = call i32 @fn_str_eq(ptr %t123, ptr @.str513) %t125 = icmp ne i32 %t124, 0 %t126 = zext i1 %t125 to i32 store i32 %t126, ptr %t118 @@ -13006,23 +12929,23 @@ entry: store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 - %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str527) + %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str514) %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 @.str528) + call void @fn_emit(ptr @.str515) %t8 = load ptr, ptr %t7 call void @fn_emit(ptr %t8) - call void @fn_emit(ptr @.str529) - %t9 = call ptr @fn_val(ptr @.str530, ptr @.str531) + call void @fn_emit(ptr @.str516) + %t9 = call ptr @fn_val(ptr @.str517, ptr @.str518) store ptr %t9, ptr %retval br label %ret ifend2: %t10 = load ptr, ptr %t0 - %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str532) + %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str519) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then3, label %ifend5 then3: @@ -13036,26 +12959,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_str_concat(ptr @.str533, ptr %t22) - %t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str534) + %t23 = call ptr @fn_str_concat(ptr @.str520, ptr %t22) + %t24 = call ptr @fn_str_concat(ptr %t23, ptr @.str521) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 - call void @fn_emit(ptr @.str535) + call void @fn_emit(ptr @.str522) %t27 = load ptr, ptr %t15 call void @fn_emit(ptr %t27) - call void @fn_emit(ptr @.str536) + call void @fn_emit(ptr @.str523) %t28 = load ptr, ptr %t18 call void @fn_emit(ptr %t28) - call void @fn_emit(ptr @.str537) + call void @fn_emit(ptr @.str524) %t29 = load ptr, ptr %t26 call void @fn_emit(ptr %t29) - call void @fn_emit(ptr @.str538) - %t30 = call ptr @fn_val(ptr @.str539, ptr @.str540) + call void @fn_emit(ptr @.str525) + %t30 = call ptr @fn_val(ptr @.str526, ptr @.str527) store ptr %t30, ptr %retval br label %ret ifend5: %t31 = load ptr, ptr %t0 - %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str541) + %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str528) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then6, label %ifend8 then6: @@ -13069,26 +12992,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_str_concat(ptr @.str542, ptr %t43) - %t45 = call ptr @fn_str_concat(ptr %t44, ptr @.str543) + %t44 = call ptr @fn_str_concat(ptr @.str529, ptr %t43) + %t45 = call ptr @fn_str_concat(ptr %t44, ptr @.str530) %t46 = call ptr @fn_emit_bind(ptr %t45) store ptr %t46, ptr %t47 - call void @fn_emit(ptr @.str544) + call void @fn_emit(ptr @.str531) %t48 = load ptr, ptr %t36 call void @fn_emit(ptr %t48) - call void @fn_emit(ptr @.str545) + call void @fn_emit(ptr @.str532) %t49 = load ptr, ptr %t39 call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str546) + call void @fn_emit(ptr @.str533) %t50 = load ptr, ptr %t47 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str547) - %t51 = call ptr @fn_val(ptr @.str548, ptr @.str549) + call void @fn_emit(ptr @.str534) + %t51 = call ptr @fn_val(ptr @.str535, ptr @.str536) store ptr %t51, ptr %retval br label %ret ifend8: %t52 = load ptr, ptr %t0 - %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str550) + %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str537) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then9, label %ifend11 then9: @@ -13100,49 +13023,49 @@ then9: store ptr %t59, ptr %t60 %t61 = call ptr @fn_nreg() store ptr %t61, ptr %t62 - call void @fn_emit(ptr @.str551) + call void @fn_emit(ptr @.str538) %t63 = load ptr, ptr %t62 call void @fn_emit(ptr %t63) - call void @fn_emit(ptr @.str552) + call void @fn_emit(ptr @.str539) %t64 = load ptr, ptr %t57 call void @fn_emit(ptr %t64) - call void @fn_emit(ptr @.str553) + call void @fn_emit(ptr @.str540) %t65 = load ptr, ptr %t60 call void @fn_emit(ptr %t65) - call void @fn_emit(ptr @.str554) + call void @fn_emit(ptr @.str541) %t66 = load ptr, ptr %t62 - %t67 = call ptr @fn_val(ptr %t66, ptr @.str555) + %t67 = call ptr @fn_val(ptr %t66, ptr @.str542) store ptr %t67, ptr %retval br label %ret ifend11: %t68 = load ptr, ptr %t0 - %t69 = call i32 @fn_str_eq(ptr %t68, ptr @.str556) + %t69 = call i32 @fn_str_eq(ptr %t68, ptr @.str543) %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then12, label %ifend14 then12: - %t71 = call ptr @fn_emit_bind(ptr @.str557) - %t72 = call ptr @fn_val(ptr %t71, ptr @.str558) + %t71 = call ptr @fn_emit_bind(ptr @.str544) + %t72 = call ptr @fn_val(ptr %t71, ptr @.str545) store ptr %t72, ptr %retval br label %ret ifend14: %t73 = load ptr, ptr %t0 - %t74 = call i32 @fn_str_eq(ptr %t73, ptr @.str559) + %t74 = call i32 @fn_str_eq(ptr %t73, ptr @.str546) %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 @.str560) + call void @fn_emit(ptr @.str547) %t79 = load ptr, ptr %t78 call void @fn_emit(ptr %t79) - call void @fn_emit(ptr @.str561) - %t80 = call ptr @fn_val(ptr @.str562, ptr @.str563) + call void @fn_emit(ptr @.str548) + %t80 = call ptr @fn_val(ptr @.str549, ptr @.str550) store ptr %t80, ptr %retval br label %ret ifend17: %t81 = load ptr, ptr %t0 - %t82 = call i32 @fn_str_eq(ptr %t81, ptr @.str564) + %t82 = call i32 @fn_str_eq(ptr %t81, ptr @.str551) %t83 = icmp ne i32 %t82, 0 br i1 %t83, label %then18, label %ifend20 then18: @@ -13150,35 +13073,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_str_concat(ptr @.str565, ptr %t87) - %t89 = call ptr @fn_str_concat(ptr %t88, ptr @.str566) + %t88 = call ptr @fn_str_concat(ptr @.str552, ptr %t87) + %t89 = call ptr @fn_str_concat(ptr %t88, ptr @.str553) %t90 = call ptr @fn_emit_bind(ptr %t89) store ptr %t90, ptr %t91 %t92 = load ptr, ptr %t91 - %t93 = call ptr @fn_str_concat(ptr @.str567, ptr %t92) - %t94 = call ptr @fn_str_concat(ptr %t93, ptr @.str568) + %t93 = call ptr @fn_str_concat(ptr @.str554, ptr %t92) + %t94 = call ptr @fn_str_concat(ptr %t93, ptr @.str555) %t95 = call ptr @fn_emit_bind(ptr %t94) - %t96 = call ptr @fn_val(ptr %t95, ptr @.str569) + %t96 = call ptr @fn_val(ptr %t95, ptr @.str556) store ptr %t96, ptr %retval br label %ret ifend20: %t97 = load ptr, ptr %t0 - %t98 = call i32 @fn_str_eq(ptr %t97, ptr @.str570) + %t98 = call i32 @fn_str_eq(ptr %t97, ptr @.str557) %t99 = icmp ne i32 %t98, 0 br i1 %t99, label %then21, label %ifend23 then21: - %t100 = call ptr @fn_emit_bind(ptr @.str571) + %t100 = call ptr @fn_emit_bind(ptr @.str558) store ptr %t100, ptr %t101 %t102 = load ptr, ptr %t101 - %t103 = call ptr @fn_str_concat(ptr @.str572, ptr %t102) - %t104 = call ptr @fn_str_concat(ptr %t103, ptr @.str573) + %t103 = call ptr @fn_str_concat(ptr @.str559, ptr %t102) + %t104 = call ptr @fn_str_concat(ptr %t103, ptr @.str560) %t105 = call ptr @fn_emit_bind(ptr %t104) - %t106 = call ptr @fn_val(ptr %t105, ptr @.str574) + %t106 = call ptr @fn_val(ptr %t105, ptr @.str561) store ptr %t106, ptr %retval br label %ret ifend23: %t107 = load ptr, ptr %t0 - %t108 = call i32 @fn_str_eq(ptr %t107, ptr @.str575) + %t108 = call i32 @fn_str_eq(ptr %t107, ptr @.str562) %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then24, label %ifend26 then24: @@ -13190,25 +13113,25 @@ then24: store ptr %t114, ptr %t115 %t116 = call ptr @fn_nreg() store ptr %t116, ptr %t117 - call void @fn_emit(ptr @.str576) + call void @fn_emit(ptr @.str563) %t118 = load ptr, ptr %t117 call void @fn_emit(ptr %t118) - call void @fn_emit(ptr @.str577) + call void @fn_emit(ptr @.str564) %t119 = load ptr, ptr %t112 call void @fn_emit(ptr %t119) - call void @fn_emit(ptr @.str578) + call void @fn_emit(ptr @.str565) %t120 = load ptr, ptr %t115 call void @fn_emit(ptr %t120) - call void @fn_emit(ptr @.str579) + call void @fn_emit(ptr @.str566) %t121 = load ptr, ptr %t117 - %t122 = call ptr @fn_str_concat(ptr @.str580, ptr %t121) + %t122 = call ptr @fn_str_concat(ptr @.str567, ptr %t121) %t123 = call ptr @fn_emit_bind(ptr %t122) - %t124 = call ptr @fn_val(ptr %t123, ptr @.str581) + %t124 = call ptr @fn_val(ptr %t123, ptr @.str568) store ptr %t124, ptr %retval br label %ret ifend26: %t125 = load ptr, ptr %t0 - %t126 = call i32 @fn_str_eq(ptr %t125, ptr @.str582) + %t126 = call i32 @fn_str_eq(ptr %t125, ptr @.str569) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then27, label %ifend29 then27: @@ -13223,29 +13146,29 @@ then27: store ptr %t135, ptr %t136 %t137 = call ptr @fn_nreg() store ptr %t137, ptr %t138 - call void @fn_emit(ptr @.str583) + call void @fn_emit(ptr @.str570) %t139 = load ptr, ptr %t138 call void @fn_emit(ptr %t139) - call void @fn_emit(ptr @.str584) + call void @fn_emit(ptr @.str571) %t140 = load ptr, ptr %t130 call void @fn_emit(ptr %t140) - call void @fn_emit(ptr @.str585) + call void @fn_emit(ptr @.str572) %t141 = load ptr, ptr %t133 call void @fn_emit(ptr %t141) - call void @fn_emit(ptr @.str586) - call void @fn_emit(ptr @.str587) + call void @fn_emit(ptr @.str573) + call void @fn_emit(ptr @.str574) %t142 = load ptr, ptr %t136 call void @fn_emit(ptr %t142) - call void @fn_emit(ptr @.str588) + call void @fn_emit(ptr @.str575) %t143 = load ptr, ptr %t138 call void @fn_emit(ptr %t143) - call void @fn_emit(ptr @.str589) - %t144 = call ptr @fn_val(ptr @.str590, ptr @.str591) + call void @fn_emit(ptr @.str576) + %t144 = call ptr @fn_val(ptr @.str577, ptr @.str578) store ptr %t144, ptr %retval br label %ret ifend29: %t145 = load ptr, ptr %t0 - %t146 = call i32 @fn_str_eq(ptr %t145, ptr @.str592) + %t146 = call i32 @fn_str_eq(ptr %t145, ptr @.str579) %t147 = icmp ne i32 %t146, 0 br i1 %t147, label %then30, label %ifend32 then30: @@ -13257,25 +13180,25 @@ then30: store ptr %t152, ptr %t153 %t154 = call ptr @fn_nreg() store ptr %t154, ptr %t155 - call void @fn_emit(ptr @.str593) + call void @fn_emit(ptr @.str580) %t156 = load ptr, ptr %t155 call void @fn_emit(ptr %t156) - call void @fn_emit(ptr @.str594) + call void @fn_emit(ptr @.str581) %t157 = load ptr, ptr %t150 call void @fn_emit(ptr %t157) - call void @fn_emit(ptr @.str595) + call void @fn_emit(ptr @.str582) %t158 = load ptr, ptr %t153 call void @fn_emit(ptr %t158) - call void @fn_emit(ptr @.str596) + call void @fn_emit(ptr @.str583) %t159 = load ptr, ptr %t155 - %t160 = call ptr @fn_str_concat(ptr @.str597, ptr %t159) + %t160 = call ptr @fn_str_concat(ptr @.str584, ptr %t159) %t161 = call ptr @fn_emit_bind(ptr %t160) - %t162 = call ptr @fn_val(ptr %t161, ptr @.str598) + %t162 = call ptr @fn_val(ptr %t161, ptr @.str585) store ptr %t162, ptr %retval br label %ret ifend32: %t163 = load ptr, ptr %t0 - %t164 = call i32 @fn_str_eq(ptr %t163, ptr @.str599) + %t164 = call i32 @fn_str_eq(ptr %t163, ptr @.str586) %t165 = icmp ne i32 %t164, 0 br i1 %t165, label %then33, label %ifend35 then33: @@ -13290,29 +13213,29 @@ then33: store ptr %t173, ptr %t174 %t175 = call ptr @fn_nreg() store ptr %t175, ptr %t176 - call void @fn_emit(ptr @.str600) + call void @fn_emit(ptr @.str587) %t177 = load ptr, ptr %t176 call void @fn_emit(ptr %t177) - call void @fn_emit(ptr @.str601) + call void @fn_emit(ptr @.str588) %t178 = load ptr, ptr %t168 call void @fn_emit(ptr %t178) - call void @fn_emit(ptr @.str602) + call void @fn_emit(ptr @.str589) %t179 = load ptr, ptr %t171 call void @fn_emit(ptr %t179) - call void @fn_emit(ptr @.str603) - call void @fn_emit(ptr @.str604) + call void @fn_emit(ptr @.str590) + call void @fn_emit(ptr @.str591) %t180 = load ptr, ptr %t174 call void @fn_emit(ptr %t180) - call void @fn_emit(ptr @.str605) + call void @fn_emit(ptr @.str592) %t181 = load ptr, ptr %t176 call void @fn_emit(ptr %t181) - call void @fn_emit(ptr @.str606) - %t182 = call ptr @fn_val(ptr @.str607, ptr @.str608) + call void @fn_emit(ptr @.str593) + %t182 = call ptr @fn_val(ptr @.str594, ptr @.str595) store ptr %t182, ptr %retval br label %ret ifend35: %t183 = load ptr, ptr %t0 - %t184 = call i32 @fn_str_eq(ptr %t183, ptr @.str609) + %t184 = call i32 @fn_str_eq(ptr %t183, ptr @.str596) %t185 = icmp ne i32 %t184, 0 br i1 %t185, label %then36, label %ifend38 then36: @@ -13328,12 +13251,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 @.str610) + %t198 = call ptr @fn_val(ptr %t197, ptr @.str597) store ptr %t198, ptr %retval br label %ret ifend38: %t199 = load ptr, ptr %t0 - %t200 = call i32 @fn_str_eq(ptr %t199, ptr @.str611) + %t200 = call i32 @fn_str_eq(ptr %t199, ptr @.str598) %t201 = icmp ne i32 %t200, 0 br i1 %t201, label %then39, label %ifend41 then39: @@ -13349,12 +13272,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 @.str612) + %t214 = call ptr @fn_val(ptr %t213, ptr @.str599) store ptr %t214, ptr %retval br label %ret ifend41: %t215 = load ptr, ptr %t0 - %t216 = call i32 @fn_str_eq(ptr %t215, ptr @.str613) + %t216 = call i32 @fn_str_eq(ptr %t215, ptr @.str600) %t217 = icmp ne i32 %t216, 0 br i1 %t217, label %then42, label %ifend44 then42: @@ -13362,45 +13285,45 @@ then42: %t219 = icmp ne i32 %t218, 0 br i1 %t219, label %then45, label %ifend47 then45: - %t220 = call ptr @fn_val(ptr @.str614, ptr @.str615) + %t220 = call ptr @fn_val(ptr @.str601, ptr @.str602) store ptr %t220, ptr %retval br label %ret ifend47: - %t221 = call ptr @fn_val(ptr @.str616, ptr @.str617) + %t221 = call ptr @fn_val(ptr @.str603, ptr @.str604) store ptr %t221, ptr %retval br label %ret ifend44: %t222 = load ptr, ptr %t0 - %t223 = call i32 @fn_str_eq(ptr %t222, ptr @.str618) + %t223 = call i32 @fn_str_eq(ptr %t222, ptr @.str605) %t224 = icmp ne i32 %t223, 0 br i1 %t224, label %then48, label %ifend50 then48: - %t225 = call ptr @fn_val(ptr @.str619, ptr @.str620) + %t225 = call ptr @fn_val(ptr @.str606, ptr @.str607) store ptr %t225, ptr %retval br label %ret ifend50: %t226 = load ptr, ptr %t0 - %t227 = call i32 @fn_str_eq(ptr %t226, ptr @.str621) + %t227 = call i32 @fn_str_eq(ptr %t226, ptr @.str608) %t228 = icmp ne i32 %t227, 0 br i1 %t228, label %then51, label %ifend53 then51: - %t229 = call ptr @fn_emit_bind(ptr @.str622) - %t230 = call ptr @fn_val(ptr %t229, ptr @.str623) + %t229 = call ptr @fn_emit_bind(ptr @.str609) + %t230 = call ptr @fn_val(ptr %t229, ptr @.str610) store ptr %t230, ptr %retval br label %ret ifend53: %t231 = load ptr, ptr %t0 - %t232 = call i32 @fn_str_eq(ptr %t231, ptr @.str624) + %t232 = call i32 @fn_str_eq(ptr %t231, ptr @.str611) %t233 = icmp ne i32 %t232, 0 br i1 %t233, label %then54, label %ifend56 then54: - %t234 = call ptr @fn_emit_bind(ptr @.str625) - %t235 = call ptr @fn_val(ptr %t234, ptr @.str626) + %t234 = call ptr @fn_emit_bind(ptr @.str612) + %t235 = call ptr @fn_val(ptr %t234, ptr @.str613) store ptr %t235, ptr %retval br label %ret ifend56: %t236 = load ptr, ptr %t0 - %t237 = call i32 @fn_str_eq(ptr %t236, ptr @.str627) + %t237 = call i32 @fn_str_eq(ptr %t236, ptr @.str614) %t238 = icmp ne i32 %t237, 0 br i1 %t238, label %then57, label %ifend59 then57: @@ -13416,25 +13339,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 @.str628) + call void @fn_emit(ptr @.str615) %t251 = load ptr, ptr %t241 call void @fn_emit(ptr %t251) - call void @fn_emit(ptr @.str629) + call void @fn_emit(ptr @.str616) %t252 = load ptr, ptr %t244 call void @fn_emit(ptr %t252) - call void @fn_emit(ptr @.str630) + call void @fn_emit(ptr @.str617) %t253 = load ptr, ptr %t247 call void @fn_emit(ptr %t253) - call void @fn_emit(ptr @.str631) + call void @fn_emit(ptr @.str618) %t254 = load ptr, ptr %t250 call void @fn_emit(ptr %t254) - call void @fn_emit(ptr @.str632) - %t255 = call ptr @fn_val(ptr @.str633, ptr @.str634) + call void @fn_emit(ptr @.str619) + %t255 = call ptr @fn_val(ptr @.str620, ptr @.str621) store ptr %t255, ptr %retval br label %ret ifend59: %t256 = load ptr, ptr %t0 - %t257 = call i32 @fn_str_eq(ptr %t256, ptr @.str635) + %t257 = call i32 @fn_str_eq(ptr %t256, ptr @.str622) %t258 = icmp ne i32 %t257, 0 br i1 %t258, label %then60, label %ifend62 then60: @@ -13447,31 +13370,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 @.str636) + call void @fn_emit(ptr @.str623) %t268 = load ptr, ptr %t261 call void @fn_emit(ptr %t268) - call void @fn_emit(ptr @.str637) + call void @fn_emit(ptr @.str624) %t269 = load ptr, ptr %t264 call void @fn_emit(ptr %t269) - call void @fn_emit(ptr @.str638) + call void @fn_emit(ptr @.str625) %t270 = load ptr, ptr %t267 call void @fn_emit(ptr %t270) - call void @fn_emit(ptr @.str639) - %t271 = call ptr @fn_val(ptr @.str640, ptr @.str641) + call void @fn_emit(ptr @.str626) + %t271 = call ptr @fn_val(ptr @.str627, ptr @.str628) store ptr %t271, ptr %retval br label %ret ifend62: %t272 = load ptr, ptr %t0 - %t273 = call i32 @fn_str_eq(ptr %t272, ptr @.str642) + %t273 = call i32 @fn_str_eq(ptr %t272, ptr @.str629) %t274 = icmp ne i32 %t273, 0 br i1 %t274, label %then63, label %ifend65 then63: - call void @fn_emit(ptr @.str643) - %t275 = call ptr @fn_val(ptr @.str644, ptr @.str645) + call void @fn_emit(ptr @.str630) + %t275 = call ptr @fn_val(ptr @.str631, ptr @.str632) store ptr %t275, ptr %retval br label %ret ifend65: - %t276 = call ptr @fn_val(ptr @.str646, ptr @.str647) + %t276 = call ptr @fn_val(ptr @.str633, ptr @.str634) store ptr %t276, ptr %retval br label %ret ret: @@ -13488,14 +13411,14 @@ entry: %t3 = alloca i32 store ptr %arg_name, ptr %t0 %t4 = load ptr, ptr %t0 - %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str648) + %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str635) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t3 br i1 %t6, label %scend1, label %sc0 sc0: %t8 = load ptr, ptr %t0 - %t9 = call i32 @fn_str_eq(ptr %t8, ptr @.str649) + %t9 = call i32 @fn_str_eq(ptr %t8, ptr @.str636) %t10 = icmp ne i32 %t9, 0 %t11 = zext i1 %t10 to i32 store i32 %t11, ptr %t3 @@ -13508,7 +13431,7 @@ scend1: br i1 %t13, label %scend3, label %sc2 sc2: %t15 = load ptr, ptr %t0 - %t16 = call i32 @fn_str_eq(ptr %t15, ptr @.str650) + %t16 = call i32 @fn_str_eq(ptr %t15, ptr @.str637) %t17 = icmp ne i32 %t16, 0 %t18 = zext i1 %t17 to i32 store i32 %t18, ptr %t2 @@ -13521,7 +13444,7 @@ scend3: br i1 %t20, label %scend5, label %sc4 sc4: %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str651) + %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str638) %t24 = icmp ne i32 %t23, 0 %t25 = zext i1 %t24 to i32 store i32 %t25, ptr %t1 @@ -13557,7 +13480,7 @@ entry: store ptr %arg_name, ptr %t0 store ptr %arg_e, ptr %t1 %t2 = load ptr, ptr %t0 - %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str652) + %t3 = call i32 @fn_str_eq(ptr %t2, ptr @.str639) %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: @@ -13573,40 +13496,40 @@ 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_str_concat(ptr @.str653, ptr %t16) - %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str654) + %t17 = call ptr @fn_str_concat(ptr @.str640, ptr %t16) + %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str641) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 %t21 = load ptr, ptr %t13 %t22 = getelementptr inbounds %Cmp_Val, ptr %t21, i32 0, i32 0 %t23 = load ptr, ptr %t22 - %t24 = call ptr @fn_str_concat(ptr @.str655, ptr %t23) + %t24 = call ptr @fn_str_concat(ptr @.str642, ptr %t23) %t25 = call ptr @fn_emit_bind(ptr %t24) store ptr %t25, ptr %t26 %t27 = load ptr, ptr %t20 - %t28 = call ptr @fn_str_concat(ptr @.str656, ptr %t27) - %t29 = call ptr @fn_str_concat(ptr %t28, ptr @.str657) + %t28 = call ptr @fn_str_concat(ptr @.str643, ptr %t27) + %t29 = call ptr @fn_str_concat(ptr %t28, ptr @.str644) %t30 = load ptr, ptr %t26 %t31 = call ptr @fn_str_concat(ptr %t29, ptr %t30) - %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str658) + %t32 = call ptr @fn_str_concat(ptr %t31, ptr @.str645) %t33 = load ptr, ptr %t13 %t34 = getelementptr inbounds %Cmp_Val, ptr %t33, i32 0, i32 0 %t35 = load ptr, ptr %t34 %t36 = call ptr @fn_str_concat(ptr %t32, ptr %t35) %t37 = call ptr @fn_emit_bind(ptr %t36) - %t38 = call ptr @fn_val(ptr %t37, ptr @.str659) + %t38 = call ptr @fn_val(ptr %t37, ptr @.str646) store ptr %t38, ptr %retval br label %ret ifend2: %t40 = load ptr, ptr %t0 - %t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str660) + %t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str647) %t42 = icmp ne i32 %t41, 0 %t43 = zext i1 %t42 to i32 store i32 %t43, ptr %t39 br i1 %t42, label %scend4, label %sc3 sc3: %t44 = load ptr, ptr %t0 - %t45 = call i32 @fn_str_eq(ptr %t44, ptr @.str661) + %t45 = call i32 @fn_str_eq(ptr %t44, ptr @.str648) %t46 = icmp ne i32 %t45, 0 %t47 = zext i1 %t46 to i32 store i32 %t47, ptr %t39 @@ -13634,23 +13557,23 @@ then5: %t65 = load ptr, ptr %t64 %t66 = call ptr @fn_emit_expr(ptr %t65) store ptr %t66, ptr %t67 - store ptr @.str662, ptr %t68 + store ptr @.str649, ptr %t68 %t69 = load ptr, ptr %t0 - %t70 = call i32 @fn_str_eq(ptr %t69, ptr @.str663) + %t70 = call i32 @fn_str_eq(ptr %t69, ptr @.str650) %t71 = icmp ne i32 %t70, 0 br i1 %t71, label %then8, label %ifend10 then8: - store ptr @.str664, ptr %t68 + store ptr @.str651, ptr %t68 br label %ifend10 ifend10: %t72 = load ptr, ptr %t68 - %t73 = call ptr @fn_str_concat(ptr @.str665, ptr %t72) - %t74 = call ptr @fn_str_concat(ptr %t73, ptr @.str666) + %t73 = call ptr @fn_str_concat(ptr @.str652, ptr %t72) + %t74 = call ptr @fn_str_concat(ptr %t73, ptr @.str653) %t75 = load ptr, ptr %t58 %t76 = getelementptr inbounds %Cmp_Val, ptr %t75, i32 0, i32 0 %t77 = load ptr, ptr %t76 %t78 = call ptr @fn_str_concat(ptr %t74, ptr %t77) - %t79 = call ptr @fn_str_concat(ptr %t78, ptr @.str667) + %t79 = call ptr @fn_str_concat(ptr %t78, ptr @.str654) %t80 = load ptr, ptr %t67 %t81 = getelementptr inbounds %Cmp_Val, ptr %t80, i32 0, i32 0 %t82 = load ptr, ptr %t81 @@ -13658,19 +13581,19 @@ ifend10: %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t85 - %t87 = call ptr @fn_str_concat(ptr @.str668, ptr %t86) - %t88 = call ptr @fn_str_concat(ptr %t87, ptr @.str669) + %t87 = call ptr @fn_str_concat(ptr @.str655, ptr %t86) + %t88 = call ptr @fn_str_concat(ptr %t87, ptr @.str656) %t89 = load ptr, ptr %t58 %t90 = getelementptr inbounds %Cmp_Val, ptr %t89, i32 0, i32 0 %t91 = load ptr, ptr %t90 %t92 = call ptr @fn_str_concat(ptr %t88, ptr %t91) - %t93 = call ptr @fn_str_concat(ptr %t92, ptr @.str670) + %t93 = call ptr @fn_str_concat(ptr %t92, ptr @.str657) %t94 = load ptr, ptr %t67 %t95 = getelementptr inbounds %Cmp_Val, ptr %t94, i32 0, i32 0 %t96 = load ptr, ptr %t95 %t97 = call ptr @fn_str_concat(ptr %t93, ptr %t96) %t98 = call ptr @fn_emit_bind(ptr %t97) - %t99 = call ptr @fn_val(ptr %t98, ptr @.str671) + %t99 = call ptr @fn_val(ptr %t98, ptr @.str658) store ptr %t99, ptr %retval br label %ret ifend7: @@ -13704,8 +13627,8 @@ ifend7: %t127 = load ptr, ptr %t108 %t128 = getelementptr inbounds %Cmp_Val, ptr %t127, i32 0, i32 0 %t129 = load ptr, ptr %t128 - %t130 = call ptr @fn_str_concat(ptr @.str672, ptr %t129) - %t131 = call ptr @fn_str_concat(ptr %t130, ptr @.str673) + %t130 = call ptr @fn_str_concat(ptr @.str659, ptr %t129) + %t131 = call ptr @fn_str_concat(ptr %t130, ptr @.str660) %t132 = load ptr, ptr %t126 %t133 = getelementptr inbounds %Cmp_Val, ptr %t132, i32 0, i32 0 %t134 = load ptr, ptr %t133 @@ -13713,13 +13636,13 @@ ifend7: %t136 = call ptr @fn_emit_bind(ptr %t135) store ptr %t136, ptr %t137 %t138 = load ptr, ptr %t137 - %t139 = call ptr @fn_str_concat(ptr @.str674, ptr %t138) - %t140 = call ptr @fn_str_concat(ptr %t139, ptr @.str675) + %t139 = call ptr @fn_str_concat(ptr @.str661, ptr %t138) + %t140 = call ptr @fn_str_concat(ptr %t139, ptr @.str662) %t141 = load ptr, ptr %t108 %t142 = getelementptr inbounds %Cmp_Val, ptr %t141, i32 0, i32 0 %t143 = load ptr, ptr %t142 %t144 = call ptr @fn_str_concat(ptr %t140, ptr %t143) - %t145 = call ptr @fn_str_concat(ptr %t144, ptr @.str676) + %t145 = call ptr @fn_str_concat(ptr %t144, ptr @.str663) %t146 = load ptr, ptr %t126 %t147 = getelementptr inbounds %Cmp_Val, ptr %t146, i32 0, i32 0 %t148 = load ptr, ptr %t147 @@ -13729,24 +13652,24 @@ ifend7: %t152 = load ptr, ptr %t117 %t153 = getelementptr inbounds %Cmp_Val, ptr %t152, i32 0, i32 0 %t154 = load ptr, ptr %t153 - %t155 = call ptr @fn_str_concat(ptr @.str677, ptr %t154) - %t156 = call ptr @fn_str_concat(ptr %t155, ptr @.str678) + %t155 = call ptr @fn_str_concat(ptr @.str664, ptr %t154) + %t156 = call ptr @fn_str_concat(ptr %t155, ptr @.str665) %t157 = load ptr, ptr %t151 %t158 = call ptr @fn_str_concat(ptr %t156, ptr %t157) %t159 = call ptr @fn_emit_bind(ptr %t158) store ptr %t159, ptr %t160 %t161 = load ptr, ptr %t160 - %t162 = call ptr @fn_str_concat(ptr @.str679, ptr %t161) - %t163 = call ptr @fn_str_concat(ptr %t162, ptr @.str680) + %t162 = call ptr @fn_str_concat(ptr @.str666, ptr %t161) + %t163 = call ptr @fn_str_concat(ptr %t162, ptr @.str667) %t164 = load ptr, ptr %t117 %t165 = getelementptr inbounds %Cmp_Val, ptr %t164, i32 0, i32 0 %t166 = load ptr, ptr %t165 %t167 = call ptr @fn_str_concat(ptr %t163, ptr %t166) - %t168 = call ptr @fn_str_concat(ptr %t167, ptr @.str681) + %t168 = call ptr @fn_str_concat(ptr %t167, ptr @.str668) %t169 = load ptr, ptr %t151 %t170 = call ptr @fn_str_concat(ptr %t168, ptr %t169) %t171 = call ptr @fn_emit_bind(ptr %t170) - %t172 = call ptr @fn_val(ptr %t171, ptr @.str682) + %t172 = call ptr @fn_val(ptr %t171, ptr @.str669) store ptr %t172, ptr %retval br label %ret ret: @@ -13761,13 +13684,13 @@ entry: %t5 = alloca ptr store ptr %arg_llt, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call ptr @fn_str_concat(ptr @.str683, ptr %t1) - %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str684) + %t2 = call ptr @fn_str_concat(ptr @.str670, ptr %t1) + %t3 = call ptr @fn_str_concat(ptr %t2, ptr @.str671) %t4 = call ptr @fn_emit_bind(ptr %t3) store ptr %t4, ptr %t5 %t6 = load ptr, ptr %t5 - %t7 = call ptr @fn_str_concat(ptr @.str685, ptr %t6) - %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str686) + %t7 = call ptr @fn_str_concat(ptr @.str672, ptr %t6) + %t8 = call ptr @fn_str_concat(ptr %t7, ptr @.str673) %t9 = call ptr @fn_emit_bind(ptr %t8) store ptr %t9, ptr %retval br label %ret @@ -13800,7 +13723,7 @@ entry: %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: - call void @fn_perr(ptr @.str687) + call void @fn_perr(ptr @.str674) br label %ifend2 ifend2: %t8 = load ptr, ptr %t0 @@ -13810,8 +13733,8 @@ ifend2: %t12 = call ptr @fn_emit_sizeof(ptr %t11) store ptr %t12, ptr %t13 %t14 = load ptr, ptr %t13 - %t15 = call ptr @fn_str_concat(ptr @.str688, ptr %t14) - %t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str689) + %t15 = call ptr @fn_str_concat(ptr @.str675, ptr %t14) + %t16 = call ptr @fn_str_concat(ptr %t15, ptr @.str676) %t17 = call ptr @fn_emit_bind(ptr %t16) store ptr %t17, ptr %t18 store i32 0, ptr %t19 @@ -13839,32 +13762,32 @@ wbody4: store ptr %t36, ptr %t37 %t38 = call ptr @fn_nreg() store ptr %t38, ptr %t39 - call void @fn_emit(ptr @.str690) + call void @fn_emit(ptr @.str677) %t40 = load ptr, ptr %t39 call void @fn_emit(ptr %t40) - call void @fn_emit(ptr @.str691) + call void @fn_emit(ptr @.str678) %t41 = load ptr, ptr %t10 call void @fn_emit(ptr %t41) - call void @fn_emit(ptr @.str692) + call void @fn_emit(ptr @.str679) %t42 = load ptr, ptr %t18 call void @fn_emit(ptr %t42) - call void @fn_emit(ptr @.str693) + call void @fn_emit(ptr @.str680) %t43 = load i32, ptr %t19 %t44 = call ptr @fn_itoa(i32 %t43) call void @fn_emit(ptr %t44) - call void @fn_emit(ptr @.str694) + call void @fn_emit(ptr @.str681) %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 @.str695, ptr %t50 + store ptr @.str682, ptr %t50 %t51 = load ptr, ptr %t49 - %t52 = call i32 @fn_str_eq(ptr %t51, ptr @.str696) + %t52 = call i32 @fn_str_eq(ptr %t51, ptr @.str683) %t53 = icmp ne i32 %t52, 0 br i1 %t53, label %then6, label %ifend8 then6: - store ptr @.str697, ptr %t50 + store ptr @.str684, ptr %t50 br label %ifend8 ifend8: %t54 = load ptr, ptr %t37 @@ -13886,16 +13809,16 @@ then9: store ptr %t67, ptr %t50 br label %ifend11 ifend11: - call void @fn_emit(ptr @.str698) + call void @fn_emit(ptr @.str685) %t68 = load ptr, ptr %t49 call void @fn_emit(ptr %t68) - call void @fn_emit(ptr @.str699) + call void @fn_emit(ptr @.str686) %t69 = load ptr, ptr %t50 call void @fn_emit(ptr %t69) - call void @fn_emit(ptr @.str700) + call void @fn_emit(ptr @.str687) %t70 = load ptr, ptr %t39 call void @fn_emit(ptr %t70) - call void @fn_emit(ptr @.str701) + call void @fn_emit(ptr @.str688) %t71 = load i32, ptr %t19 %t72 = add i32 %t71, 1 store i32 %t72, ptr %t19 @@ -13921,52 +13844,52 @@ entry: %t14 = alloca ptr %t19 = alloca ptr store ptr %arg_ty, ptr %t0 - %t1 = call ptr @fn_emit_sizeof(ptr @.str702) + %t1 = call ptr @fn_emit_sizeof(ptr @.str689) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t2 - %t4 = call ptr @fn_str_concat(ptr @.str703, ptr %t3) - %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str704) + %t4 = call ptr @fn_str_concat(ptr @.str690, ptr %t3) + %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str691) %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 @.str705) + call void @fn_emit(ptr @.str692) %t10 = load ptr, ptr %t9 call void @fn_emit(ptr %t10) - call void @fn_emit(ptr @.str706) + call void @fn_emit(ptr @.str693) %t11 = load ptr, ptr %t7 call void @fn_emit(ptr %t11) - call void @fn_emit(ptr @.str707) - call void @fn_emit(ptr @.str708) + call void @fn_emit(ptr @.str694) + call void @fn_emit(ptr @.str695) %t12 = load ptr, ptr %t9 call void @fn_emit(ptr %t12) - call void @fn_emit(ptr @.str709) + call void @fn_emit(ptr @.str696) %t13 = call ptr @fn_nreg() store ptr %t13, ptr %t14 - call void @fn_emit(ptr @.str710) + call void @fn_emit(ptr @.str697) %t15 = load ptr, ptr %t14 call void @fn_emit(ptr %t15) - call void @fn_emit(ptr @.str711) + call void @fn_emit(ptr @.str698) %t16 = load ptr, ptr %t7 call void @fn_emit(ptr %t16) - call void @fn_emit(ptr @.str712) - call void @fn_emit(ptr @.str713) + call void @fn_emit(ptr @.str699) + call void @fn_emit(ptr @.str700) %t17 = load ptr, ptr %t14 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str714) + call void @fn_emit(ptr @.str701) %t18 = call ptr @fn_nreg() store ptr %t18, ptr %t19 - call void @fn_emit(ptr @.str715) + call void @fn_emit(ptr @.str702) %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) - call void @fn_emit(ptr @.str716) + call void @fn_emit(ptr @.str703) %t21 = load ptr, ptr %t7 call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str717) - call void @fn_emit(ptr @.str718) + call void @fn_emit(ptr @.str704) + call void @fn_emit(ptr @.str705) %t22 = load ptr, ptr %t19 call void @fn_emit(ptr %t22) - call void @fn_emit(ptr @.str719) + call void @fn_emit(ptr @.str706) %t23 = load ptr, ptr %t7 %t24 = load ptr, ptr %t0 %t25 = call ptr @fn_val(ptr %t23, ptr %t24) @@ -13987,17 +13910,17 @@ entry: store i32 %arg_i, ptr %t1 %t2 = call ptr @fn_nreg() store ptr %t2, ptr %t3 - call void @fn_emit(ptr @.str720) + call void @fn_emit(ptr @.str707) %t4 = load ptr, ptr %t3 call void @fn_emit(ptr %t4) - call void @fn_emit(ptr @.str721) + call void @fn_emit(ptr @.str708) %t5 = load ptr, ptr %t0 call void @fn_emit(ptr %t5) - call void @fn_emit(ptr @.str722) + call void @fn_emit(ptr @.str709) %t6 = load i32, ptr %t1 %t7 = call ptr @fn_itoa(i32 %t6) call void @fn_emit(ptr %t7) - call void @fn_emit(ptr @.str723) + call void @fn_emit(ptr @.str710) %t8 = load ptr, ptr %t3 store ptr %t8, ptr %retval br label %ret @@ -14036,24 +13959,24 @@ then0: %t18 = call ptr @fn_slice_field(ptr %t17, i32 1) store ptr %t18, ptr %t19 %t20 = load ptr, ptr %t19 - %t21 = call ptr @fn_str_concat(ptr @.str724, ptr %t20) + %t21 = call ptr @fn_str_concat(ptr @.str711, ptr %t20) %t22 = call ptr @fn_emit_bind(ptr %t21) - %t23 = call ptr @fn_val(ptr %t22, ptr @.str725) + %t23 = call ptr @fn_val(ptr %t22, ptr @.str712) store ptr %t23, ptr %retval br label %ret ifend2: %t24 = load ptr, ptr %t9 %t25 = getelementptr inbounds %Cmp_Val, ptr %t24, i32 0, i32 0 %t26 = load ptr, ptr %t25 - %t27 = call ptr @fn_str_concat(ptr @.str726, ptr %t26) - %t28 = call ptr @fn_str_concat(ptr %t27, ptr @.str727) + %t27 = call ptr @fn_str_concat(ptr @.str713, ptr %t26) + %t28 = call ptr @fn_str_concat(ptr %t27, ptr @.str714) %t29 = call ptr @fn_emit_bind(ptr %t28) store ptr %t29, ptr %t30 %t31 = load ptr, ptr %t30 - %t32 = call ptr @fn_str_concat(ptr @.str728, ptr %t31) - %t33 = call ptr @fn_str_concat(ptr %t32, ptr @.str729) + %t32 = call ptr @fn_str_concat(ptr @.str715, ptr %t31) + %t33 = call ptr @fn_str_concat(ptr %t32, ptr @.str716) %t34 = call ptr @fn_emit_bind(ptr %t33) - %t35 = call ptr @fn_val(ptr %t34, ptr @.str730) + %t35 = call ptr @fn_val(ptr %t34, ptr @.str717) store ptr %t35, ptr %retval br label %ret ret: @@ -14121,50 +14044,50 @@ 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_str_concat(ptr @.str731, ptr %t31) + %t32 = call ptr @fn_str_concat(ptr @.str718, ptr %t31) %t33 = call ptr @fn_emit_bind(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t27 - %t36 = call ptr @fn_str_concat(ptr @.str732, ptr %t35) + %t36 = call ptr @fn_str_concat(ptr @.str719, ptr %t35) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t34 - %t40 = call ptr @fn_str_concat(ptr @.str733, ptr %t39) - %t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str734) + %t40 = call ptr @fn_str_concat(ptr @.str720, ptr %t39) + %t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str721) %t42 = load ptr, ptr %t38 %t43 = call ptr @fn_str_concat(ptr %t41, ptr %t42) %t44 = call ptr @fn_emit_bind(ptr %t43) store ptr %t44, ptr %t45 - %t46 = call ptr @fn_lbl(ptr @.str735) + %t46 = call ptr @fn_lbl(ptr @.str722) store ptr %t46, ptr %t47 - %t48 = call ptr @fn_lbl(ptr @.str736) + %t48 = call ptr @fn_lbl(ptr @.str723) store ptr %t48, ptr %t49 - call void @fn_emit(ptr @.str737) + call void @fn_emit(ptr @.str724) %t50 = load ptr, ptr %t45 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str738) + call void @fn_emit(ptr @.str725) %t51 = load ptr, ptr %t47 call void @fn_emit(ptr %t51) - call void @fn_emit(ptr @.str739) + call void @fn_emit(ptr @.str726) %t52 = load ptr, ptr %t49 call void @fn_emit(ptr %t52) - call void @fn_emit(ptr @.str740) + call void @fn_emit(ptr @.str727) %t53 = load ptr, ptr %t47 call void @fn_emit(ptr %t53) - call void @fn_emit(ptr @.str741) + call void @fn_emit(ptr @.str728) %t54 = load ptr, ptr %t38 - %t55 = call ptr @fn_str_concat(ptr @.str742, ptr %t54) - %t56 = call ptr @fn_str_concat(ptr %t55, ptr @.str743) + %t55 = call ptr @fn_str_concat(ptr @.str729, ptr %t54) + %t56 = call ptr @fn_str_concat(ptr %t55, ptr @.str730) %t57 = call ptr @fn_emit_bind(ptr %t56) store ptr %t57, ptr %t58 %t59 = load ptr, ptr %t38 - %t60 = call ptr @fn_str_concat(ptr @.str744, ptr %t59) - %t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str745) + %t60 = call ptr @fn_str_concat(ptr @.str731, ptr %t59) + %t61 = call ptr @fn_str_concat(ptr %t60, ptr @.str732) %t62 = call ptr @fn_emit_bind(ptr %t61) store ptr %t62, ptr %t63 %t64 = load ptr, ptr %t63 - %t65 = call ptr @fn_str_concat(ptr @.str746, ptr %t64) - %t66 = call ptr @fn_str_concat(ptr %t65, ptr @.str747) + %t65 = call ptr @fn_str_concat(ptr @.str733, ptr %t64) + %t66 = call ptr @fn_str_concat(ptr %t65, ptr @.str734) %t67 = load ptr, ptr %t58 %t68 = call ptr @fn_str_concat(ptr %t66, ptr %t67) %t69 = call ptr @fn_emit_bind(ptr %t68) @@ -14173,50 +14096,50 @@ entry: %t72 = call ptr @fn_emit_sizeof(ptr %t71) store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t70 - %t75 = call ptr @fn_str_concat(ptr @.str748, ptr %t74) - %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str749) + %t75 = call ptr @fn_str_concat(ptr @.str735, ptr %t74) + %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str736) %t77 = call ptr @fn_emit_bind(ptr %t76) store ptr %t77, ptr %t78 %t79 = load ptr, ptr %t78 - %t80 = call ptr @fn_str_concat(ptr @.str750, ptr %t79) - %t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str751) + %t80 = call ptr @fn_str_concat(ptr @.str737, ptr %t79) + %t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str738) %t82 = load ptr, ptr %t73 %t83 = call ptr @fn_str_concat(ptr %t81, ptr %t82) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 %t86 = load ptr, ptr %t30 - %t87 = call ptr @fn_str_concat(ptr @.str752, ptr %t86) + %t87 = call ptr @fn_str_concat(ptr @.str739, ptr %t86) %t88 = call ptr @fn_emit_bind(ptr %t87) store ptr %t88, ptr %t89 %t90 = load ptr, ptr %t89 - %t91 = call ptr @fn_str_concat(ptr @.str753, ptr %t90) - %t92 = call ptr @fn_str_concat(ptr %t91, ptr @.str754) + %t91 = call ptr @fn_str_concat(ptr @.str740, ptr %t90) + %t92 = call ptr @fn_str_concat(ptr %t91, ptr @.str741) %t93 = load ptr, ptr %t85 %t94 = call ptr @fn_str_concat(ptr %t92, ptr %t93) - %t95 = call ptr @fn_str_concat(ptr %t94, ptr @.str755) + %t95 = call ptr @fn_str_concat(ptr %t94, ptr @.str742) %t96 = call ptr @fn_emit_bind(ptr %t95) store ptr %t96, ptr %t97 - call void @fn_emit(ptr @.str756) + call void @fn_emit(ptr @.str743) %t98 = load ptr, ptr %t97 call void @fn_emit(ptr %t98) - call void @fn_emit(ptr @.str757) + call void @fn_emit(ptr @.str744) %t99 = load ptr, ptr %t30 call void @fn_emit(ptr %t99) - call void @fn_emit(ptr @.str758) - call void @fn_emit(ptr @.str759) + call void @fn_emit(ptr @.str745) + call void @fn_emit(ptr @.str746) %t100 = load ptr, ptr %t70 call void @fn_emit(ptr %t100) - call void @fn_emit(ptr @.str760) + call void @fn_emit(ptr @.str747) %t101 = load ptr, ptr %t27 call void @fn_emit(ptr %t101) - call void @fn_emit(ptr @.str761) - call void @fn_emit(ptr @.str762) + call void @fn_emit(ptr @.str748) + call void @fn_emit(ptr @.str749) %t102 = load ptr, ptr %t49 call void @fn_emit(ptr %t102) - call void @fn_emit(ptr @.str763) + call void @fn_emit(ptr @.str750) %t103 = load ptr, ptr %t49 call void @fn_emit(ptr %t103) - call void @fn_emit(ptr @.str764) + call void @fn_emit(ptr @.str751) %t104 = load ptr, ptr %t0 %t105 = getelementptr inbounds %Cmp_Node, ptr %t104, i32 0, i32 7 %t106 = load ptr, ptr %t105 @@ -14227,49 +14150,49 @@ entry: %t111 = call ptr @fn_emit_expr(ptr %t110) store ptr %t111, ptr %t112 %t113 = load ptr, ptr %t30 - %t114 = call ptr @fn_str_concat(ptr @.str765, ptr %t113) + %t114 = call ptr @fn_str_concat(ptr @.str752, 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 @.str766) + call void @fn_emit(ptr @.str753) %t119 = load ptr, ptr %t118 call void @fn_emit(ptr %t119) - call void @fn_emit(ptr @.str767) + call void @fn_emit(ptr @.str754) %t120 = load ptr, ptr %t17 call void @fn_emit(ptr %t120) - call void @fn_emit(ptr @.str768) + call void @fn_emit(ptr @.str755) %t121 = load ptr, ptr %t116 call void @fn_emit(ptr %t121) - call void @fn_emit(ptr @.str769) + call void @fn_emit(ptr @.str756) %t122 = load ptr, ptr %t34 call void @fn_emit(ptr %t122) - call void @fn_emit(ptr @.str770) - call void @fn_emit(ptr @.str771) + call void @fn_emit(ptr @.str757) + call void @fn_emit(ptr @.str758) %t123 = load ptr, ptr %t17 call void @fn_emit(ptr %t123) - call void @fn_emit(ptr @.str772) + call void @fn_emit(ptr @.str759) %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 @.str773) + call void @fn_emit(ptr @.str760) %t127 = load ptr, ptr %t118 call void @fn_emit(ptr %t127) - call void @fn_emit(ptr @.str774) + call void @fn_emit(ptr @.str761) %t128 = load ptr, ptr %t34 - %t129 = call ptr @fn_str_concat(ptr @.str775, ptr %t128) - %t130 = call ptr @fn_str_concat(ptr %t129, ptr @.str776) + %t129 = call ptr @fn_str_concat(ptr @.str762, ptr %t128) + %t130 = call ptr @fn_str_concat(ptr %t129, ptr @.str763) %t131 = call ptr @fn_emit_bind(ptr %t130) store ptr %t131, ptr %t132 - call void @fn_emit(ptr @.str777) + call void @fn_emit(ptr @.str764) %t133 = load ptr, ptr %t132 call void @fn_emit(ptr %t133) - call void @fn_emit(ptr @.str778) + call void @fn_emit(ptr @.str765) %t134 = load ptr, ptr %t24 call void @fn_emit(ptr %t134) - call void @fn_emit(ptr @.str779) - %t135 = call ptr @fn_val(ptr @.str780, ptr @.str781) + call void @fn_emit(ptr @.str766) + %t135 = call ptr @fn_val(ptr @.str767, ptr @.str768) store ptr %t135, ptr %retval br label %ret ret: @@ -14287,8 +14210,8 @@ entry: store ptr %arg_ty, ptr %t1 %t2 = load ptr, ptr %t1 %t3 = call ptr @fn_llty(ptr %t2) - %t4 = call ptr @fn_str_concat(ptr @.str782, ptr %t3) - %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str783) + %t4 = call ptr @fn_str_concat(ptr @.str769, ptr %t3) + %t5 = call ptr @fn_str_concat(ptr %t4, ptr @.str770) %t6 = load ptr, ptr %t0 %t7 = call ptr @fn_str_concat(ptr %t5, ptr %t6) %t8 = call ptr @fn_emit_bind(ptr %t7) @@ -14317,7 +14240,7 @@ entry: %t49 = alloca ptr %t54 = alloca ptr store ptr %arg_e, ptr %t0 - %t1 = call ptr @fn_emit_alloca(ptr @.str784) + %t1 = call ptr @fn_emit_alloca(ptr @.str771) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4 @@ -14327,60 +14250,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_str_concat(ptr @.str785, ptr %t10) - %t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str786) + %t11 = call ptr @fn_str_concat(ptr @.str772, ptr %t10) + %t12 = call ptr @fn_str_concat(ptr %t11, ptr @.str773) %t13 = call ptr @fn_emit_bind(ptr %t12) store ptr %t13, ptr %t14 %t15 = load ptr, ptr %t14 - %t16 = call ptr @fn_str_concat(ptr @.str787, ptr %t15) - %t17 = call ptr @fn_str_concat(ptr %t16, ptr @.str788) + %t16 = call ptr @fn_str_concat(ptr @.str774, ptr %t15) + %t17 = call ptr @fn_str_concat(ptr %t16, ptr @.str775) %t18 = call ptr @fn_emit_bind(ptr %t17) store ptr %t18, ptr %t19 - call void @fn_emit(ptr @.str789) + call void @fn_emit(ptr @.str776) %t20 = load ptr, ptr %t19 call void @fn_emit(ptr %t20) - call void @fn_emit(ptr @.str790) + call void @fn_emit(ptr @.str777) %t21 = load ptr, ptr %t2 call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str791) - %t22 = call ptr @fn_lbl(ptr @.str792) + call void @fn_emit(ptr @.str778) + %t22 = call ptr @fn_lbl(ptr @.str779) store ptr %t22, ptr %t23 - %t24 = call ptr @fn_lbl(ptr @.str793) + %t24 = call ptr @fn_lbl(ptr @.str780) store ptr %t24, ptr %t25 %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 1 %t28 = load ptr, ptr %t27 - %t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str794) + %t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str781) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then0, label %else1 then0: - call void @fn_emit(ptr @.str795) + call void @fn_emit(ptr @.str782) %t31 = load ptr, ptr %t14 call void @fn_emit(ptr %t31) - call void @fn_emit(ptr @.str796) + call void @fn_emit(ptr @.str783) %t32 = load ptr, ptr %t23 call void @fn_emit(ptr %t32) - call void @fn_emit(ptr @.str797) + call void @fn_emit(ptr @.str784) %t33 = load ptr, ptr %t25 call void @fn_emit(ptr %t33) - call void @fn_emit(ptr @.str798) + call void @fn_emit(ptr @.str785) br label %ifend2 else1: - call void @fn_emit(ptr @.str799) + call void @fn_emit(ptr @.str786) %t34 = load ptr, ptr %t14 call void @fn_emit(ptr %t34) - call void @fn_emit(ptr @.str800) + call void @fn_emit(ptr @.str787) %t35 = load ptr, ptr %t25 call void @fn_emit(ptr %t35) - call void @fn_emit(ptr @.str801) + call void @fn_emit(ptr @.str788) %t36 = load ptr, ptr %t23 call void @fn_emit(ptr %t36) - call void @fn_emit(ptr @.str802) + call void @fn_emit(ptr @.str789) br label %ifend2 ifend2: %t37 = load ptr, ptr %t23 call void @fn_emit(ptr %t37) - call void @fn_emit(ptr @.str803) + call void @fn_emit(ptr @.str790) %t38 = load ptr, ptr %t0 %t39 = getelementptr inbounds %Cmp_Node, ptr %t38, i32 0, i32 5 %t40 = load ptr, ptr %t39 @@ -14389,33 +14312,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_str_concat(ptr @.str804, ptr %t45) - %t47 = call ptr @fn_str_concat(ptr %t46, ptr @.str805) + %t46 = call ptr @fn_str_concat(ptr @.str791, ptr %t45) + %t47 = call ptr @fn_str_concat(ptr %t46, ptr @.str792) %t48 = call ptr @fn_emit_bind(ptr %t47) store ptr %t48, ptr %t49 %t50 = load ptr, ptr %t49 - %t51 = call ptr @fn_str_concat(ptr @.str806, ptr %t50) - %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str807) + %t51 = call ptr @fn_str_concat(ptr @.str793, ptr %t50) + %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str794) %t53 = call ptr @fn_emit_bind(ptr %t52) store ptr %t53, ptr %t54 - call void @fn_emit(ptr @.str808) + call void @fn_emit(ptr @.str795) %t55 = load ptr, ptr %t54 call void @fn_emit(ptr %t55) - call void @fn_emit(ptr @.str809) + call void @fn_emit(ptr @.str796) %t56 = load ptr, ptr %t2 call void @fn_emit(ptr %t56) - call void @fn_emit(ptr @.str810) - call void @fn_emit(ptr @.str811) + call void @fn_emit(ptr @.str797) + call void @fn_emit(ptr @.str798) %t57 = load ptr, ptr %t25 call void @fn_emit(ptr %t57) - call void @fn_emit(ptr @.str812) + call void @fn_emit(ptr @.str799) %t58 = load ptr, ptr %t25 call void @fn_emit(ptr %t58) - call void @fn_emit(ptr @.str813) + call void @fn_emit(ptr @.str800) %t59 = load ptr, ptr %t2 - %t60 = call ptr @fn_str_concat(ptr @.str814, ptr %t59) + %t60 = call ptr @fn_str_concat(ptr @.str801, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) - %t62 = call ptr @fn_val(ptr %t61, ptr @.str815) + %t62 = call ptr @fn_val(ptr %t61, ptr @.str802) store ptr %t62, ptr %retval br label %ret ret: @@ -14429,46 +14352,46 @@ entry: %t0 = alloca ptr store ptr %arg_op, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str816) + %t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str803) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: - store ptr @.str817, ptr %retval + store ptr @.str804, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 - %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str818) + %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str805) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: - store ptr @.str819, ptr %retval + store ptr @.str806, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 - %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str820) + %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str807) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: - store ptr @.str821, ptr %retval + store ptr @.str808, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 - %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str822) + %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str809) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: - store ptr @.str823, ptr %retval + store ptr @.str810, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 - %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str824) + %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str811) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: - store ptr @.str825, ptr %retval + store ptr @.str812, ptr %retval br label %ret ifend14: - store ptr @.str826, ptr %retval + store ptr @.str813, ptr %retval br label %ret ret: %t16 = load ptr, ptr %retval @@ -14486,14 +14409,14 @@ entry: %t5 = alloca i32 store ptr %arg_op, ptr %t0 %t6 = load ptr, ptr %t0 - %t7 = call i32 @fn_str_eq(ptr %t6, ptr @.str827) + %t7 = call i32 @fn_str_eq(ptr %t6, ptr @.str814) %t8 = icmp ne i32 %t7, 0 %t9 = zext i1 %t8 to i32 store i32 %t9, ptr %t5 br i1 %t8, label %scend1, label %sc0 sc0: %t10 = load ptr, ptr %t0 - %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str828) + %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str815) %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t5 @@ -14506,7 +14429,7 @@ scend1: br i1 %t15, label %scend3, label %sc2 sc2: %t17 = load ptr, ptr %t0 - %t18 = call i32 @fn_str_eq(ptr %t17, ptr @.str829) + %t18 = call i32 @fn_str_eq(ptr %t17, ptr @.str816) %t19 = icmp ne i32 %t18, 0 %t20 = zext i1 %t19 to i32 store i32 %t20, ptr %t4 @@ -14519,7 +14442,7 @@ scend3: br i1 %t22, label %scend5, label %sc4 sc4: %t24 = load ptr, ptr %t0 - %t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str830) + %t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str817) %t26 = icmp ne i32 %t25, 0 %t27 = zext i1 %t26 to i32 store i32 %t27, ptr %t3 @@ -14532,7 +14455,7 @@ scend5: br i1 %t29, label %scend7, label %sc6 sc6: %t31 = load ptr, ptr %t0 - %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str831) + %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str818) %t33 = icmp ne i32 %t32, 0 %t34 = zext i1 %t33 to i32 store i32 %t34, ptr %t2 @@ -14545,7 +14468,7 @@ scend7: br i1 %t36, label %scend9, label %sc8 sc8: %t38 = load ptr, ptr %t0 - %t39 = call i32 @fn_str_eq(ptr %t38, ptr @.str832) + %t39 = call i32 @fn_str_eq(ptr %t38, ptr @.str819) %t40 = icmp ne i32 %t39, 0 %t41 = zext i1 %t40 to i32 store i32 %t41, ptr %t1 @@ -14565,78 +14488,78 @@ entry: %t0 = alloca ptr store ptr %arg_op, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str833) + %t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str820) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: - store ptr @.str834, ptr %retval + store ptr @.str821, ptr %retval br label %ret ifend2: %t4 = load ptr, ptr %t0 - %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str835) + %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str822) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: - store ptr @.str836, ptr %retval + store ptr @.str823, ptr %retval br label %ret ifend5: %t7 = load ptr, ptr %t0 - %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str837) + %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str824) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: - store ptr @.str838, ptr %retval + store ptr @.str825, ptr %retval br label %ret ifend8: %t10 = load ptr, ptr %t0 - %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str839) + %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str826) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: - store ptr @.str840, ptr %retval + store ptr @.str827, ptr %retval br label %ret ifend11: %t13 = load ptr, ptr %t0 - %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str841) + %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str828) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: - store ptr @.str842, ptr %retval + store ptr @.str829, ptr %retval br label %ret ifend14: %t16 = load ptr, ptr %t0 - %t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str843) + %t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str830) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: - store ptr @.str844, ptr %retval + store ptr @.str831, ptr %retval br label %ret ifend17: %t19 = load ptr, ptr %t0 - %t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str845) + %t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str832) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: - store ptr @.str846, ptr %retval + store ptr @.str833, ptr %retval br label %ret ifend20: %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str847) + %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str834) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: - store ptr @.str848, ptr %retval + store ptr @.str835, ptr %retval br label %ret ifend23: %t25 = load ptr, ptr %t0 - %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str849) + %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str836) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then24, label %ifend26 then24: - store ptr @.str850, ptr %retval + store ptr @.str837, ptr %retval br label %ret ifend26: - store ptr @.str851, ptr %retval + store ptr @.str838, ptr %retval br label %ret ret: %t28 = load ptr, ptr %retval @@ -14651,7 +14574,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_str_eq(ptr %t3, ptr @.str852) + %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str839) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: @@ -14664,8 +14587,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_str_concat(ptr @.str853, ptr %t11) - %t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str854) + %t12 = call ptr @fn_str_concat(ptr @.str840, ptr %t11) + %t13 = call ptr @fn_str_concat(ptr %t12, ptr @.str841) %t14 = call ptr @fn_emit_bind(ptr %t13) store ptr %t14, ptr %retval br label %ret @@ -14687,57 +14610,57 @@ entry: store ptr %arg_b, ptr %t2 store i32 1, ptr @g_g_uses_str %t3 = load ptr, ptr %t0 - %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str855) + %t4 = call i32 @fn_str_eq(ptr %t3, ptr @.str842) %t5 = icmp ne i32 %t4, 0 br i1 %t5, label %then0, label %ifend2 then0: %t6 = load ptr, ptr %t1 %t7 = getelementptr inbounds %Cmp_Val, ptr %t6, i32 0, i32 0 %t8 = load ptr, ptr %t7 - %t9 = call ptr @fn_str_concat(ptr @.str856, ptr %t8) - %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str857) + %t9 = call ptr @fn_str_concat(ptr @.str843, ptr %t8) + %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str844) %t11 = load ptr, ptr %t2 %t12 = getelementptr inbounds %Cmp_Val, ptr %t11, i32 0, i32 0 %t13 = load ptr, ptr %t12 %t14 = call ptr @fn_str_concat(ptr %t10, ptr %t13) - %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str858) + %t15 = call ptr @fn_str_concat(ptr %t14, ptr @.str845) %t16 = call ptr @fn_emit_bind(ptr %t15) - %t17 = call ptr @fn_val(ptr %t16, ptr @.str859) + %t17 = call ptr @fn_val(ptr %t16, ptr @.str846) store ptr %t17, ptr %retval br label %ret ifend2: %t18 = load ptr, ptr %t1 %t19 = getelementptr inbounds %Cmp_Val, ptr %t18, i32 0, i32 0 %t20 = load ptr, ptr %t19 - %t21 = call ptr @fn_str_concat(ptr @.str860, ptr %t20) - %t22 = call ptr @fn_str_concat(ptr %t21, ptr @.str861) + %t21 = call ptr @fn_str_concat(ptr @.str847, ptr %t20) + %t22 = call ptr @fn_str_concat(ptr %t21, ptr @.str848) %t23 = load ptr, ptr %t2 %t24 = getelementptr inbounds %Cmp_Val, ptr %t23, i32 0, i32 0 %t25 = load ptr, ptr %t24 %t26 = call ptr @fn_str_concat(ptr %t22, ptr %t25) - %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str862) + %t27 = call ptr @fn_str_concat(ptr %t26, ptr @.str849) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 - %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str863) + %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str850) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then3, label %ifend5 then3: %t33 = load ptr, ptr %t29 - %t34 = call ptr @fn_str_concat(ptr @.str864, ptr %t33) - %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str865) + %t34 = call ptr @fn_str_concat(ptr @.str851, ptr %t33) + %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str852) %t36 = call ptr @fn_emit_bind(ptr %t35) store ptr %t36, ptr %t37 %t38 = load ptr, ptr %t37 - %t39 = call ptr @fn_str_concat(ptr @.str866, ptr %t38) - %t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str867) + %t39 = call ptr @fn_str_concat(ptr @.str853, ptr %t38) + %t40 = call ptr @fn_str_concat(ptr %t39, ptr @.str854) %t41 = call ptr @fn_emit_bind(ptr %t40) - %t42 = call ptr @fn_val(ptr %t41, ptr @.str868) + %t42 = call ptr @fn_val(ptr %t41, ptr @.str855) store ptr %t42, ptr %retval br label %ret ifend5: %t43 = load ptr, ptr %t29 - %t44 = call ptr @fn_val(ptr %t43, ptr @.str869) + %t44 = call ptr @fn_val(ptr %t43, ptr @.str856) store ptr %t44, ptr %retval br label %ret ret: @@ -14781,7 +14704,7 @@ entry: %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 1 %t4 = load ptr, ptr %t3 - %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str870) + %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str857) %t6 = icmp ne i32 %t5, 0 %t7 = zext i1 %t6 to i32 store i32 %t7, ptr %t1 @@ -14790,7 +14713,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_str_eq(ptr %t10, ptr @.str871) + %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str858) %t12 = icmp ne i32 %t11, 0 %t13 = zext i1 %t12 to i32 store i32 %t13, ptr %t1 @@ -14819,7 +14742,7 @@ ifend4: %t30 = getelementptr inbounds %Cmp_Val, ptr %t29, i32 0, i32 1 %t31 = load ptr, ptr %t30 %t32 = call ptr @fn_llty(ptr %t31) - %t33 = call i32 @fn_str_eq(ptr %t32, ptr @.str872) + %t33 = call i32 @fn_str_eq(ptr %t32, ptr @.str859) %t34 = icmp ne i32 %t33, 0 %t35 = zext i1 %t34 to i32 store i32 %t35, ptr %t28 @@ -14829,7 +14752,7 @@ sc5: %t37 = getelementptr inbounds %Cmp_Val, ptr %t36, i32 0, i32 1 %t38 = load ptr, ptr %t37 %t39 = call ptr @fn_llty(ptr %t38) - %t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str873) + %t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str860) %t41 = icmp ne i32 %t40, 0 %t42 = zext i1 %t41 to i32 store i32 %t42, ptr %t28 @@ -14870,20 +14793,20 @@ then9: %t68 = load ptr, ptr %t0 %t69 = getelementptr inbounds %Cmp_Node, ptr %t68, i32 0, i32 1 %t70 = load ptr, ptr %t69 - %t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str874) + %t71 = call i32 @fn_str_eq(ptr %t70, ptr @.str861) %t72 = icmp ne i32 %t71, 0 br i1 %t72, label %then12, label %ifend14 then12: %t73 = load ptr, ptr %t22 %t74 = load ptr, ptr %t27 - %t75 = call ptr @fn_emit_str_op(ptr @.str875, ptr %t73, ptr %t74) + %t75 = call ptr @fn_emit_str_op(ptr @.str862, ptr %t73, ptr %t74) store ptr %t75, ptr %retval br label %ret ifend14: %t78 = load ptr, ptr %t0 %t79 = getelementptr inbounds %Cmp_Node, ptr %t78, i32 0, i32 1 %t80 = load ptr, ptr %t79 - %t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str876) + %t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str863) %t82 = icmp ne i32 %t81, 0 %t83 = zext i1 %t82 to i32 store i32 %t83, ptr %t77 @@ -14892,7 +14815,7 @@ sc15: %t84 = load ptr, ptr %t0 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 1 %t86 = load ptr, ptr %t85 - %t87 = call i32 @fn_str_eq(ptr %t86, ptr @.str877) + %t87 = call i32 @fn_str_eq(ptr %t86, ptr @.str864) %t88 = icmp ne i32 %t87, 0 %t89 = zext i1 %t88 to i32 store i32 %t89, ptr %t77 @@ -14930,7 +14853,7 @@ ifend11: %t107 = load ptr, ptr %t22 %t108 = getelementptr inbounds %Cmp_Val, ptr %t107, i32 0, i32 1 %t109 = load ptr, ptr %t108 - %t110 = call i32 @fn_str_eq(ptr %t109, ptr @.str878) + %t110 = call i32 @fn_str_eq(ptr %t109, ptr @.str865) %t111 = icmp ne i32 %t110, 0 %t112 = zext i1 %t111 to i32 store i32 %t112, ptr %t106 @@ -14939,7 +14862,7 @@ sc22: %t113 = load ptr, ptr %t27 %t114 = getelementptr inbounds %Cmp_Val, ptr %t113, i32 0, i32 1 %t115 = load ptr, ptr %t114 - %t116 = call i32 @fn_str_eq(ptr %t115, ptr @.str879) + %t116 = call i32 @fn_str_eq(ptr %t115, ptr @.str866) %t117 = icmp ne i32 %t116, 0 %t118 = zext i1 %t117 to i32 store i32 %t118, ptr %t106 @@ -14962,7 +14885,7 @@ then24: %t131 = getelementptr inbounds %Cmp_Val, ptr %t130, i32 0, i32 0 %t132 = load ptr, ptr %t131 store ptr %t132, ptr %t133 - store ptr @.str880, ptr %t134 + store ptr @.str867, ptr %t134 %t135 = load i32, ptr %t120 %t136 = icmp ne i32 %t135, 0 br i1 %t136, label %then27, label %else28 @@ -14979,7 +14902,7 @@ else28: %t143 = getelementptr inbounds %Cmp_Val, ptr %t142, i32 0, i32 1 %t144 = load ptr, ptr %t143 %t145 = call ptr @fn_llty(ptr %t144) - %t146 = call i32 @fn_str_eq(ptr %t145, ptr @.str881) + %t146 = call i32 @fn_str_eq(ptr %t145, ptr @.str868) %t147 = icmp ne i32 %t146, 0 %t148 = zext i1 %t147 to i32 store i32 %t148, ptr %t141 @@ -14989,7 +14912,7 @@ sc30: %t150 = getelementptr inbounds %Cmp_Val, ptr %t149, i32 0, i32 1 %t151 = load ptr, ptr %t150 %t152 = call ptr @fn_llty(ptr %t151) - %t153 = call i32 @fn_str_eq(ptr %t152, ptr @.str882) + %t153 = call i32 @fn_str_eq(ptr %t152, ptr @.str869) %t154 = icmp ne i32 %t153, 0 %t155 = zext i1 %t154 to i32 store i32 %t155, ptr %t141 @@ -14999,7 +14922,7 @@ scend31: %t157 = icmp ne i32 %t156, 0 br i1 %t157, label %then32, label %ifend34 then32: - store ptr @.str883, ptr %t134 + store ptr @.str870, ptr %t134 br label %ifend34 ifend34: br label %ifend29 @@ -15008,23 +14931,23 @@ ifend29: %t159 = getelementptr inbounds %Cmp_Node, ptr %t158, i32 0, i32 1 %t160 = load ptr, ptr %t159 %t161 = call ptr @fn_cmp_code(ptr %t160) - %t162 = call ptr @fn_str_concat(ptr @.str884, ptr %t161) - %t163 = call ptr @fn_str_concat(ptr %t162, ptr @.str885) + %t162 = call ptr @fn_str_concat(ptr @.str871, ptr %t161) + %t163 = call ptr @fn_str_concat(ptr %t162, ptr @.str872) %t164 = load ptr, ptr %t134 %t165 = call ptr @fn_str_concat(ptr %t163, ptr %t164) - %t166 = call ptr @fn_str_concat(ptr %t165, ptr @.str886) + %t166 = call ptr @fn_str_concat(ptr %t165, ptr @.str873) %t167 = load ptr, ptr %t129 %t168 = call ptr @fn_str_concat(ptr %t166, ptr %t167) - %t169 = call ptr @fn_str_concat(ptr %t168, ptr @.str887) + %t169 = call ptr @fn_str_concat(ptr %t168, ptr @.str874) %t170 = load ptr, ptr %t133 %t171 = call ptr @fn_str_concat(ptr %t169, ptr %t170) %t172 = call ptr @fn_emit_bind(ptr %t171) store ptr %t172, ptr %t173 %t174 = load ptr, ptr %t173 - %t175 = call ptr @fn_str_concat(ptr @.str888, ptr %t174) - %t176 = call ptr @fn_str_concat(ptr %t175, ptr @.str889) + %t175 = call ptr @fn_str_concat(ptr @.str875, ptr %t174) + %t176 = call ptr @fn_str_concat(ptr %t175, ptr @.str876) %t177 = call ptr @fn_emit_bind(ptr %t176) - %t178 = call ptr @fn_val(ptr %t177, ptr @.str890) + %t178 = call ptr @fn_val(ptr %t177, ptr @.str877) store ptr %t178, ptr %retval br label %ret ifend26: @@ -15041,74 +14964,74 @@ then35: %t187 = load ptr, ptr %t0 %t188 = getelementptr inbounds %Cmp_Node, ptr %t187, i32 0, i32 1 %t189 = load ptr, ptr %t188 - %t190 = call i32 @fn_str_eq(ptr %t189, ptr @.str891) + %t190 = call i32 @fn_str_eq(ptr %t189, ptr @.str878) %t191 = icmp ne i32 %t190, 0 br i1 %t191, label %then38, label %ifend40 then38: %t192 = load ptr, ptr %t183 - %t193 = call ptr @fn_str_concat(ptr @.str892, ptr %t192) - %t194 = call ptr @fn_str_concat(ptr %t193, ptr @.str893) + %t193 = call ptr @fn_str_concat(ptr @.str879, ptr %t192) + %t194 = call ptr @fn_str_concat(ptr %t193, ptr @.str880) %t195 = call ptr @fn_emit_bind(ptr %t194) store ptr %t195, ptr %t196 %t197 = load ptr, ptr %t186 - %t198 = call ptr @fn_str_concat(ptr @.str894, ptr %t197) - %t199 = call ptr @fn_str_concat(ptr %t198, ptr @.str895) + %t198 = call ptr @fn_str_concat(ptr @.str881, ptr %t197) + %t199 = call ptr @fn_str_concat(ptr %t198, ptr @.str882) %t200 = call ptr @fn_emit_bind(ptr %t199) store ptr %t200, ptr %t201 %t202 = load ptr, ptr %t196 - %t203 = call ptr @fn_str_concat(ptr @.str896, ptr %t202) - %t204 = call ptr @fn_str_concat(ptr %t203, ptr @.str897) + %t203 = call ptr @fn_str_concat(ptr @.str883, ptr %t202) + %t204 = call ptr @fn_str_concat(ptr %t203, ptr @.str884) %t205 = load ptr, ptr %t201 %t206 = call ptr @fn_str_concat(ptr %t204, ptr %t205) %t207 = call ptr @fn_emit_bind(ptr %t206) store ptr %t207, ptr %t208 %t209 = load ptr, ptr %t208 - %t210 = call ptr @fn_str_concat(ptr @.str898, ptr %t209) - %t211 = call ptr @fn_str_concat(ptr %t210, ptr @.str899) + %t210 = call ptr @fn_str_concat(ptr @.str885, ptr %t209) + %t211 = call ptr @fn_str_concat(ptr %t210, ptr @.str886) %t212 = call ptr @fn_emit_bind(ptr %t211) store ptr %t212, ptr %t213 %t214 = load ptr, ptr %t213 - %t215 = call ptr @fn_str_concat(ptr @.str900, ptr %t214) - %t216 = call ptr @fn_str_concat(ptr %t215, ptr @.str901) + %t215 = call ptr @fn_str_concat(ptr @.str887, ptr %t214) + %t216 = call ptr @fn_str_concat(ptr %t215, ptr @.str888) %t217 = call ptr @fn_emit_bind(ptr %t216) - %t218 = call ptr @fn_val(ptr %t217, ptr @.str902) + %t218 = call ptr @fn_val(ptr %t217, ptr @.str889) store ptr %t218, ptr %retval br label %ret ifend40: %t219 = load ptr, ptr %t0 %t220 = getelementptr inbounds %Cmp_Node, ptr %t219, i32 0, i32 1 %t221 = load ptr, ptr %t220 - %t222 = call i32 @fn_str_eq(ptr %t221, ptr @.str903) + %t222 = call i32 @fn_str_eq(ptr %t221, ptr @.str890) %t223 = icmp ne i32 %t222, 0 br i1 %t223, label %then41, label %ifend43 then41: %t224 = load ptr, ptr %t183 - %t225 = call ptr @fn_str_concat(ptr @.str904, ptr %t224) - %t226 = call ptr @fn_str_concat(ptr %t225, ptr @.str905) + %t225 = call ptr @fn_str_concat(ptr @.str891, ptr %t224) + %t226 = call ptr @fn_str_concat(ptr %t225, ptr @.str892) %t227 = call ptr @fn_emit_bind(ptr %t226) store ptr %t227, ptr %t228 %t229 = load ptr, ptr %t228 - %t230 = call ptr @fn_str_concat(ptr @.str906, ptr %t229) - %t231 = call ptr @fn_str_concat(ptr %t230, ptr @.str907) + %t230 = call ptr @fn_str_concat(ptr @.str893, ptr %t229) + %t231 = call ptr @fn_str_concat(ptr %t230, ptr @.str894) %t232 = call ptr @fn_emit_bind(ptr %t231) store ptr %t232, ptr %t233 %t234 = load ptr, ptr %t186 - %t235 = call ptr @fn_str_concat(ptr @.str908, ptr %t234) - %t236 = call ptr @fn_str_concat(ptr %t235, ptr @.str909) + %t235 = call ptr @fn_str_concat(ptr @.str895, ptr %t234) + %t236 = call ptr @fn_str_concat(ptr %t235, ptr @.str896) %t237 = call ptr @fn_emit_bind(ptr %t236) store ptr %t237, ptr %t238 %t239 = load ptr, ptr %t233 - %t240 = call ptr @fn_str_concat(ptr @.str910, ptr %t239) - %t241 = call ptr @fn_str_concat(ptr %t240, ptr @.str911) + %t240 = call ptr @fn_str_concat(ptr @.str897, ptr %t239) + %t241 = call ptr @fn_str_concat(ptr %t240, ptr @.str898) %t242 = load ptr, ptr %t238 %t243 = call ptr @fn_str_concat(ptr %t241, ptr %t242) %t244 = call ptr @fn_emit_bind(ptr %t243) store ptr %t244, ptr %t245 %t246 = load ptr, ptr %t245 - %t247 = call ptr @fn_str_concat(ptr @.str912, ptr %t246) - %t248 = call ptr @fn_str_concat(ptr %t247, ptr @.str913) + %t247 = call ptr @fn_str_concat(ptr @.str899, ptr %t246) + %t248 = call ptr @fn_str_concat(ptr %t247, ptr @.str900) %t249 = call ptr @fn_emit_bind(ptr %t248) - %t250 = call ptr @fn_val(ptr %t249, ptr @.str914) + %t250 = call ptr @fn_val(ptr %t249, ptr @.str901) store ptr %t250, ptr %retval br label %ret ifend43: @@ -15116,16 +15039,16 @@ ifend43: %t252 = getelementptr inbounds %Cmp_Node, ptr %t251, i32 0, i32 1 %t253 = load ptr, ptr %t252 %t254 = call ptr @fn_arith_code(ptr %t253) - %t255 = call ptr @fn_str_concat(ptr %t254, ptr @.str915) + %t255 = call ptr @fn_str_concat(ptr %t254, ptr @.str902) %t256 = load ptr, ptr %t183 %t257 = call ptr @fn_str_concat(ptr %t255, ptr %t256) - %t258 = call ptr @fn_str_concat(ptr %t257, ptr @.str916) + %t258 = call ptr @fn_str_concat(ptr %t257, ptr @.str903) %t259 = load ptr, ptr %t186 %t260 = call ptr @fn_str_concat(ptr %t258, ptr %t259) %t261 = call ptr @fn_emit_bind(ptr %t260) store ptr %t261, ptr %t262 %t263 = load ptr, ptr %t262 - %t264 = call ptr @fn_val(ptr %t263, ptr @.str917) + %t264 = call ptr @fn_val(ptr %t263, ptr @.str904) store ptr %t264, ptr %retval br label %ret ifend37: @@ -15133,12 +15056,12 @@ ifend37: %t266 = getelementptr inbounds %Cmp_Node, ptr %t265, i32 0, i32 1 %t267 = load ptr, ptr %t266 %t268 = call ptr @fn_arith_code(ptr %t267) - %t269 = call ptr @fn_str_concat(ptr %t268, ptr @.str918) + %t269 = call ptr @fn_str_concat(ptr %t268, ptr @.str905) %t270 = load ptr, ptr %t22 %t271 = getelementptr inbounds %Cmp_Val, ptr %t270, i32 0, i32 0 %t272 = load ptr, ptr %t271 %t273 = call ptr @fn_str_concat(ptr %t269, ptr %t272) - %t274 = call ptr @fn_str_concat(ptr %t273, ptr @.str919) + %t274 = call ptr @fn_str_concat(ptr %t273, ptr @.str906) %t275 = load ptr, ptr %t27 %t276 = getelementptr inbounds %Cmp_Val, ptr %t275, i32 0, i32 0 %t277 = load ptr, ptr %t276 @@ -15146,7 +15069,7 @@ ifend37: %t279 = call ptr @fn_emit_bind(ptr %t278) store ptr %t279, ptr %t280 %t281 = load ptr, ptr %t280 - %t282 = call ptr @fn_val(ptr %t281, ptr @.str920) + %t282 = call ptr @fn_val(ptr %t281, ptr @.str907) store ptr %t282, ptr %retval br label %ret ret: @@ -15180,7 +15103,7 @@ entry: %t5 = load ptr, ptr %t4 store ptr %t5, ptr %t6 %t7 = load ptr, ptr %t6 - %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str921) + %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str908) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: @@ -15190,7 +15113,7 @@ then0: %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then3, label %ifend5 then3: - %t14 = call ptr @fn_val(ptr @.str922, ptr @.str923) + %t14 = call ptr @fn_val(ptr @.str909, ptr @.str910) store ptr %t14, ptr %retval br label %ret ifend5: @@ -15201,64 +15124,64 @@ ifend5: %t19 = sub i32 %t18, 1 %t20 = getelementptr inbounds ptr, ptr %t17, i32 %t19 %t21 = load ptr, ptr %t20 - %t22 = call ptr @fn_str_concat(ptr @.str924, ptr %t21) + %t22 = call ptr @fn_str_concat(ptr @.str911, ptr %t21) %t23 = call ptr @fn_emit_bind(ptr %t22) - %t24 = call ptr @fn_val(ptr %t23, ptr @.str925) + %t24 = call ptr @fn_val(ptr %t23, ptr @.str912) store ptr %t24, ptr %retval br label %ret ifend2: %t25 = load ptr, ptr %t6 - %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str926) + %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str913) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then6, label %ifend8 then6: - %t28 = call ptr @fn_emit_bind(ptr @.str927) - %t29 = call ptr @fn_val(ptr %t28, ptr @.str928) + %t28 = call ptr @fn_emit_bind(ptr @.str914) + %t29 = call ptr @fn_val(ptr %t28, ptr @.str915) store ptr %t29, ptr %retval br label %ret ifend8: %t30 = load ptr, ptr %t6 - %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str929) + %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str916) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then9, label %ifend11 then9: - call void @fn_emit(ptr @.str930) - %t33 = call ptr @fn_val(ptr @.str931, ptr @.str932) + call void @fn_emit(ptr @.str917) + %t33 = call ptr @fn_val(ptr @.str918, ptr @.str919) store ptr %t33, ptr %retval br label %ret ifend11: %t34 = load ptr, ptr %t6 - %t35 = call i32 @fn_str_eq(ptr %t34, ptr @.str933) + %t35 = call i32 @fn_str_eq(ptr %t34, ptr @.str920) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then12, label %ifend14 then12: - call void @fn_emit(ptr @.str934) - %t37 = call ptr @fn_val(ptr @.str935, ptr @.str936) + call void @fn_emit(ptr @.str921) + %t37 = call ptr @fn_val(ptr @.str922, ptr @.str923) store ptr %t37, ptr %retval br label %ret ifend14: %t38 = load ptr, ptr %t6 - %t39 = call i32 @fn_str_eq(ptr %t38, ptr @.str937) + %t39 = call i32 @fn_str_eq(ptr %t38, ptr @.str924) %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then15, label %ifend17 then15: - %t41 = call ptr @fn_emit_bind(ptr @.str938) - %t42 = call ptr @fn_val(ptr %t41, ptr @.str939) + %t41 = call ptr @fn_emit_bind(ptr @.str925) + %t42 = call ptr @fn_val(ptr %t41, ptr @.str926) store ptr %t42, ptr %retval br label %ret ifend17: %t43 = load ptr, ptr %t6 - %t44 = call i32 @fn_str_eq(ptr %t43, ptr @.str940) + %t44 = call i32 @fn_str_eq(ptr %t43, ptr @.str927) %t45 = icmp ne i32 %t44, 0 br i1 %t45, label %then18, label %ifend20 then18: - call void @fn_emit(ptr @.str941) - %t46 = call ptr @fn_val(ptr @.str942, ptr @.str943) + call void @fn_emit(ptr @.str928) + %t46 = call ptr @fn_val(ptr @.str929, ptr @.str930) store ptr %t46, ptr %retval br label %ret ifend20: %t47 = load ptr, ptr %t6 - %t48 = call i32 @fn_str_eq(ptr %t47, ptr @.str944) + %t48 = call i32 @fn_str_eq(ptr %t47, ptr @.str931) %t49 = icmp ne i32 %t48, 0 br i1 %t49, label %then21, label %ifend23 then21: @@ -15268,7 +15191,7 @@ then21: br label %ret ifend23: %t52 = load ptr, ptr %t6 - %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str945) + %t53 = call i32 @fn_str_eq(ptr %t52, ptr @.str932) %t54 = icmp ne i32 %t53, 0 br i1 %t54, label %then24, label %ifend26 then24: @@ -15278,7 +15201,7 @@ then24: br label %ret ifend26: %t57 = load ptr, ptr %t6 - %t58 = call i32 @fn_str_eq(ptr %t57, ptr @.str946) + %t58 = call i32 @fn_str_eq(ptr %t57, ptr @.str933) %t59 = icmp ne i32 %t58, 0 br i1 %t59, label %then27, label %ifend29 then27: @@ -15295,7 +15218,7 @@ then27: %t70 = getelementptr inbounds %Cmp_Val, ptr %t69, i32 0, i32 1 %t71 = load ptr, ptr %t70 %t72 = call ptr @fn_llty(ptr %t71) - %t73 = call i32 @fn_str_eq(ptr %t72, ptr @.str947) + %t73 = call i32 @fn_str_eq(ptr %t72, ptr @.str934) %t74 = icmp ne i32 %t73, 0 br i1 %t74, label %then30, label %ifend32 then30: @@ -15307,15 +15230,15 @@ ifend32: %t76 = load ptr, ptr %t68 %t77 = getelementptr inbounds %Cmp_Val, ptr %t76, i32 0, i32 0 %t78 = load ptr, ptr %t77 - %t79 = call ptr @fn_str_concat(ptr @.str948, ptr %t78) - %t80 = call ptr @fn_str_concat(ptr %t79, ptr @.str949) + %t79 = call ptr @fn_str_concat(ptr @.str935, ptr %t78) + %t80 = call ptr @fn_str_concat(ptr %t79, ptr @.str936) %t81 = call ptr @fn_emit_bind(ptr %t80) - %t82 = call ptr @fn_val(ptr %t81, ptr @.str950) + %t82 = call ptr @fn_val(ptr %t81, ptr @.str937) store ptr %t82, ptr %retval br label %ret ifend29: %t83 = load ptr, ptr %t6 - %t84 = call i32 @fn_str_eq(ptr %t83, ptr @.str951) + %t84 = call i32 @fn_str_eq(ptr %t83, ptr @.str938) %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then33, label %ifend35 then33: @@ -15332,32 +15255,32 @@ then33: %t96 = getelementptr inbounds %Cmp_Val, ptr %t95, i32 0, i32 1 %t97 = load ptr, ptr %t96 %t98 = call ptr @fn_llty(ptr %t97) - %t99 = call i32 @fn_str_eq(ptr %t98, ptr @.str952) + %t99 = call i32 @fn_str_eq(ptr %t98, ptr @.str939) %t100 = icmp ne i32 %t99, 0 br i1 %t100, label %then36, label %else37 then36: %t101 = load ptr, ptr %t94 %t102 = getelementptr inbounds %Cmp_Val, ptr %t101, i32 0, i32 0 %t103 = load ptr, ptr %t102 - %t104 = call ptr @fn_str_concat(ptr %t103, ptr @.str954) - %t105 = call ptr @fn_str_concat(ptr @.str953, ptr %t104) + %t104 = call ptr @fn_str_concat(ptr %t103, ptr @.str941) + %t105 = call ptr @fn_str_concat(ptr @.str940, ptr %t104) call void @fn_emit(ptr %t105) br label %ifend38 else37: %t106 = load ptr, ptr %t94 %t107 = getelementptr inbounds %Cmp_Val, ptr %t106, i32 0, i32 0 %t108 = load ptr, ptr %t107 - %t109 = call ptr @fn_str_concat(ptr %t108, ptr @.str956) - %t110 = call ptr @fn_str_concat(ptr @.str955, ptr %t109) + %t109 = call ptr @fn_str_concat(ptr %t108, ptr @.str943) + %t110 = call ptr @fn_str_concat(ptr @.str942, ptr %t109) call void @fn_emit(ptr %t110) br label %ifend38 ifend38: - %t111 = call ptr @fn_val(ptr @.str957, ptr @.str958) + %t111 = call ptr @fn_val(ptr @.str944, ptr @.str945) store ptr %t111, ptr %retval br label %ret ifend35: %t112 = load ptr, ptr %t6 - %t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str959) + %t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str946) %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then39, label %ifend41 then39: @@ -15373,15 +15296,15 @@ then39: %t124 = load ptr, ptr %t123 %t125 = getelementptr inbounds %Cmp_Val, ptr %t124, i32 0, i32 0 %t126 = load ptr, ptr %t125 - %t127 = call ptr @fn_str_concat(ptr @.str960, ptr %t126) - %t128 = call ptr @fn_str_concat(ptr %t127, ptr @.str961) + %t127 = call ptr @fn_str_concat(ptr @.str947, ptr %t126) + %t128 = call ptr @fn_str_concat(ptr %t127, ptr @.str948) %t129 = call ptr @fn_emit_bind(ptr %t128) - %t130 = call ptr @fn_val(ptr %t129, ptr @.str962) + %t130 = call ptr @fn_val(ptr %t129, ptr @.str949) store ptr %t130, ptr %retval br label %ret ifend41: %t131 = load ptr, ptr %t6 - %t132 = call i32 @fn_str_eq(ptr %t131, ptr @.str963) + %t132 = call i32 @fn_str_eq(ptr %t131, ptr @.str950) %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then42, label %ifend44 then42: @@ -15397,10 +15320,10 @@ then42: %t143 = load ptr, ptr %t142 %t144 = getelementptr inbounds %Cmp_Val, ptr %t143, i32 0, i32 0 %t145 = load ptr, ptr %t144 - %t146 = call ptr @fn_str_concat(ptr @.str964, ptr %t145) - %t147 = call ptr @fn_str_concat(ptr %t146, ptr @.str965) + %t146 = call ptr @fn_str_concat(ptr @.str951, ptr %t145) + %t147 = call ptr @fn_str_concat(ptr %t146, ptr @.str952) %t148 = call ptr @fn_emit_bind(ptr %t147) - %t149 = call ptr @fn_val(ptr %t148, ptr @.str966) + %t149 = call ptr @fn_val(ptr %t148, ptr @.str953) store ptr %t149, ptr %retval br label %ret ifend44: @@ -15449,7 +15372,7 @@ ifend53: br i1 %t176, label %then54, label %ifend56 then54: %t177 = load ptr, ptr %t6 - %t178 = call ptr @fn_str_concat(ptr @.str967, ptr %t177) + %t178 = call ptr @fn_str_concat(ptr @.str954, ptr %t177) store ptr %t178, ptr %t179 %t180 = load ptr, ptr %t179 %t181 = call ptr @fn_find_fn(ptr %t180) @@ -15461,7 +15384,7 @@ then54: br i1 %t185, label %then57, label %ifend59 then57: %t186 = load ptr, ptr %t6 - %t187 = call ptr @fn_str_concat(ptr @.str968, ptr %t186) + %t187 = call ptr @fn_str_concat(ptr @.str955, ptr %t186) call void @fn_perr(ptr %t187) br label %ifend59 ifend59: @@ -15583,10 +15506,10 @@ wend62: %t271 = load ptr, ptr %t270 %t272 = call ptr @fn_llty(ptr %t271) store ptr %t272, ptr %t273 - call void @fn_emit(ptr @.str969) - store ptr @.str970, ptr %t274 + call void @fn_emit(ptr @.str956) + store ptr @.str957, ptr %t274 %t275 = load ptr, ptr %t273 - %t276 = call i32 @fn_str_eq(ptr %t275, ptr @.str971) + %t276 = call i32 @fn_str_eq(ptr %t275, ptr @.str958) %t277 = icmp eq i32 %t276, 0 %t278 = zext i1 %t277 to i32 %t279 = icmp ne i32 %t278, 0 @@ -15596,16 +15519,16 @@ then67: store ptr %t280, ptr %t274 %t281 = load ptr, ptr %t274 call void @fn_emit(ptr %t281) - call void @fn_emit(ptr @.str972) + call void @fn_emit(ptr @.str959) br label %ifend69 ifend69: - call void @fn_emit(ptr @.str973) + call void @fn_emit(ptr @.str960) %t282 = load ptr, ptr %t273 call void @fn_emit(ptr %t282) - call void @fn_emit(ptr @.str974) + call void @fn_emit(ptr @.str961) %t283 = load ptr, ptr %t172 call void @fn_emit(ptr %t283) - call void @fn_emit(ptr @.str975) + call void @fn_emit(ptr @.str962) store i32 0, ptr %t203 br label %wcond70 wcond70: @@ -15624,7 +15547,7 @@ wbody71: %t294 = icmp ne i32 %t293, 0 br i1 %t294, label %then73, label %ifend75 then73: - call void @fn_emit(ptr @.str976) + call void @fn_emit(ptr @.str963) br label %ifend75 ifend75: %t295 = load ptr, ptr %t202 @@ -15635,7 +15558,7 @@ ifend75: %t300 = load ptr, ptr %t299 %t301 = call ptr @fn_llty(ptr %t300) call void @fn_emit(ptr %t301) - call void @fn_emit(ptr @.str977) + call void @fn_emit(ptr @.str964) %t302 = load ptr, ptr %t195 %t303 = getelementptr inbounds %LSlice, ptr %t302, i32 0, i32 0 %t304 = load ptr, ptr %t303 @@ -15648,7 +15571,7 @@ ifend75: store i32 %t309, ptr %t203 br label %wcond70 wend72: - call void @fn_emit(ptr @.str978) + call void @fn_emit(ptr @.str965) %t310 = load ptr, ptr %t274 %t311 = load ptr, ptr %t170 %t312 = getelementptr inbounds %Cmp_Node, ptr %t311, i32 0, i32 3 @@ -15686,7 +15609,7 @@ entry: %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: - %t5 = call ptr @fn_val(ptr @.str979, ptr @.str980) + %t5 = call ptr @fn_val(ptr @.str966, ptr @.str967) store ptr %t5, ptr %retval br label %ret ifend2: @@ -15702,7 +15625,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 @.str981) + %t16 = call ptr @fn_val(ptr %t15, ptr @.str968) store ptr %t16, ptr %retval br label %ret ifend5: @@ -15718,7 +15641,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 @.str982) + %t27 = call ptr @fn_val(ptr %t26, ptr @.str969) store ptr %t27, ptr %retval br label %ret ifend8: @@ -15734,7 +15657,7 @@ 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 @.str983) + %t38 = call ptr @fn_val(ptr %t37, ptr @.str970) store ptr %t38, ptr %retval br label %ret ifend11: @@ -15746,7 +15669,7 @@ ifend11: %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then12, label %ifend14 then12: - %t45 = call ptr @fn_val(ptr @.str984, ptr @.str985) + %t45 = call ptr @fn_val(ptr @.str971, ptr @.str972) store ptr %t45, ptr %retval br label %ret ifend14: @@ -15777,20 +15700,20 @@ then15: %t67 = load ptr, ptr %t56 %t68 = getelementptr inbounds %Cmp_Val, ptr %t67, i32 0, i32 0 %t69 = load ptr, ptr %t68 - %t70 = call ptr @fn_str_concat(ptr @.str986, ptr %t69) - %t71 = call ptr @fn_str_concat(ptr %t70, ptr @.str987) + %t70 = call ptr @fn_str_concat(ptr @.str973, ptr %t69) + %t71 = call ptr @fn_str_concat(ptr %t70, ptr @.str974) %t72 = load ptr, ptr %t61 %t73 = getelementptr inbounds %Cmp_Val, ptr %t72, i32 0, i32 0 %t74 = load ptr, ptr %t73 %t75 = call ptr @fn_str_concat(ptr %t71, ptr %t74) - %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str988) + %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str975) %t77 = load ptr, ptr %t66 %t78 = getelementptr inbounds %Cmp_Val, ptr %t77, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_str_concat(ptr %t76, ptr %t79) - %t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str989) + %t81 = call ptr @fn_str_concat(ptr %t80, ptr @.str976) %t82 = call ptr @fn_emit_bind(ptr %t81) - %t83 = call ptr @fn_val(ptr %t82, ptr @.str990) + %t83 = call ptr @fn_val(ptr %t82, ptr @.str977) store ptr %t83, ptr %retval br label %ret ifend17: @@ -15806,7 +15729,7 @@ then18: %t91 = getelementptr inbounds %Cmp_Node, ptr %t90, i32 0, i32 1 %t92 = load ptr, ptr %t91 %t93 = call ptr @fn_emit_str_const(ptr %t92) - %t94 = call ptr @fn_val(ptr %t93, ptr @.str991) + %t94 = call ptr @fn_val(ptr %t93, ptr @.str978) store ptr %t94, ptr %retval br label %ret ifend20: @@ -15899,7 +15822,7 @@ then36: %t160 = getelementptr inbounds %Cmp_Node, ptr %t159, i32 0, i32 2 %t161 = load i32, ptr %t160 %t162 = call ptr @fn_itoa(i32 %t161) - %t163 = call ptr @fn_val(ptr %t162, ptr @.str992) + %t163 = call ptr @fn_val(ptr %t162, ptr @.str979) store ptr %t163, ptr %retval br label %ret ifend38: @@ -15907,8 +15830,8 @@ ifend38: %t165 = getelementptr inbounds %Cmp_Node, ptr %t164, i32 0, i32 3 %t166 = load ptr, ptr %t165 %t167 = call ptr @fn_llty(ptr %t166) - %t168 = call ptr @fn_str_concat(ptr @.str993, ptr %t167) - %t169 = call ptr @fn_str_concat(ptr %t168, ptr @.str994) + %t168 = call ptr @fn_str_concat(ptr @.str980, ptr %t167) + %t169 = call ptr @fn_str_concat(ptr %t168, ptr @.str981) %t170 = load ptr, ptr %t0 %t171 = getelementptr inbounds %Cmp_Node, ptr %t170, i32 0, i32 1 %t172 = load ptr, ptr %t171 @@ -15935,14 +15858,14 @@ then39: %t188 = load ptr, ptr %t187 %t189 = call i32 @fn_ui_index_of(ptr %t188) %t190 = call ptr @fn_itoa(i32 %t189) - %t191 = call ptr @fn_val(ptr %t190, ptr @.str995) + %t191 = call ptr @fn_val(ptr %t190, ptr @.str982) store ptr %t191, ptr %retval br label %ret ifend41: %t192 = load ptr, ptr %t0 %t193 = getelementptr inbounds %Cmp_Node, ptr %t192, i32 0, i32 1 %t194 = load ptr, ptr %t193 - %t195 = call ptr @fn_str_concat(ptr @.str996, ptr %t194) + %t195 = call ptr @fn_str_concat(ptr @.str983, ptr %t194) call void @fn_perr(ptr %t195) br label %ifend29 ifend29: @@ -15982,7 +15905,7 @@ then45: then48: %t224 = load i32, ptr %t219 %t225 = call ptr @fn_itoa(i32 %t224) - %t226 = call ptr @fn_val(ptr %t225, ptr @.str997) + %t226 = call ptr @fn_val(ptr %t225, ptr @.str984) store ptr %t226, ptr %retval br label %ret ifend50: @@ -16043,19 +15966,19 @@ then57: %t265 = call ptr @fn_emit_index_addr(ptr %t264) store ptr %t265, ptr %t266 %t267 = load ptr, ptr @g_g_addr_ty - %t268 = call i32 @fn_str_eq(ptr %t267, ptr @.str998) + %t268 = call i32 @fn_str_eq(ptr %t267, ptr @.str985) %t269 = icmp ne i32 %t268, 0 br i1 %t269, label %then60, label %ifend62 then60: %t270 = load ptr, ptr %t266 - %t271 = call ptr @fn_str_concat(ptr @.str999, ptr %t270) + %t271 = call ptr @fn_str_concat(ptr @.str986, ptr %t270) %t272 = call ptr @fn_emit_bind(ptr %t271) store ptr %t272, ptr %t273 %t274 = load ptr, ptr %t273 - %t275 = call ptr @fn_str_concat(ptr @.str1000, ptr %t274) - %t276 = call ptr @fn_str_concat(ptr %t275, ptr @.str1001) + %t275 = call ptr @fn_str_concat(ptr @.str987, ptr %t274) + %t276 = call ptr @fn_str_concat(ptr %t275, ptr @.str988) %t277 = call ptr @fn_emit_bind(ptr %t276) - %t278 = call ptr @fn_val(ptr %t277, ptr @.str1002) + %t278 = call ptr @fn_val(ptr %t277, ptr @.str989) store ptr %t278, ptr %retval br label %ret ifend62: @@ -16107,53 +16030,53 @@ then69: %t309 = load ptr, ptr %t0 %t310 = getelementptr inbounds %Cmp_Node, ptr %t309, i32 0, i32 1 %t311 = load ptr, ptr %t310 - %t312 = call i32 @fn_str_eq(ptr %t311, ptr @.str1003) + %t312 = call i32 @fn_str_eq(ptr %t311, ptr @.str990) %t313 = icmp ne i32 %t312, 0 br i1 %t313, label %then72, label %ifend74 then72: %t314 = load ptr, ptr %t308 %t315 = getelementptr inbounds %Cmp_Val, ptr %t314, i32 0, i32 0 %t316 = load ptr, ptr %t315 - %t317 = call ptr @fn_str_concat(ptr @.str1004, ptr %t316) + %t317 = call ptr @fn_str_concat(ptr @.str991, ptr %t316) %t318 = call ptr @fn_emit_bind(ptr %t317) - %t319 = call ptr @fn_val(ptr %t318, ptr @.str1005) + %t319 = call ptr @fn_val(ptr %t318, ptr @.str992) store ptr %t319, ptr %retval br label %ret ifend74: %t320 = load ptr, ptr %t0 %t321 = getelementptr inbounds %Cmp_Node, ptr %t320, i32 0, i32 1 %t322 = load ptr, ptr %t321 - %t323 = call i32 @fn_str_eq(ptr %t322, ptr @.str1006) + %t323 = call i32 @fn_str_eq(ptr %t322, ptr @.str993) %t324 = icmp ne i32 %t323, 0 br i1 %t324, label %then75, label %ifend77 then75: %t325 = load ptr, ptr %t308 %t326 = getelementptr inbounds %Cmp_Val, ptr %t325, i32 0, i32 0 %t327 = load ptr, ptr %t326 - %t328 = call ptr @fn_str_concat(ptr @.str1007, ptr %t327) - %t329 = call ptr @fn_str_concat(ptr %t328, ptr @.str1008) + %t328 = call ptr @fn_str_concat(ptr @.str994, ptr %t327) + %t329 = call ptr @fn_str_concat(ptr %t328, ptr @.str995) %t330 = call ptr @fn_emit_bind(ptr %t329) - %t331 = call ptr @fn_val(ptr %t330, ptr @.str1009) + %t331 = call ptr @fn_val(ptr %t330, ptr @.str996) store ptr %t331, ptr %retval br label %ret ifend77: %t332 = load ptr, ptr %t308 %t333 = getelementptr inbounds %Cmp_Val, ptr %t332, i32 0, i32 0 %t334 = load ptr, ptr %t333 - %t335 = call ptr @fn_str_concat(ptr @.str1010, ptr %t334) - %t336 = call ptr @fn_str_concat(ptr %t335, ptr @.str1011) + %t335 = call ptr @fn_str_concat(ptr @.str997, ptr %t334) + %t336 = call ptr @fn_str_concat(ptr %t335, ptr @.str998) %t337 = call ptr @fn_emit_bind(ptr %t336) store ptr %t337, ptr %t338 %t339 = load ptr, ptr %t338 - %t340 = call ptr @fn_str_concat(ptr @.str1012, ptr %t339) - %t341 = call ptr @fn_str_concat(ptr %t340, ptr @.str1013) + %t340 = call ptr @fn_str_concat(ptr @.str999, ptr %t339) + %t341 = call ptr @fn_str_concat(ptr %t340, ptr @.str1000) %t342 = call ptr @fn_emit_bind(ptr %t341) - %t343 = call ptr @fn_val(ptr %t342, ptr @.str1014) + %t343 = call ptr @fn_val(ptr %t342, ptr @.str1001) store ptr %t343, ptr %retval br label %ret ifend71: - call void @fn_perr(ptr @.str1015) - %t344 = call ptr @fn_val(ptr @.str1016, ptr @.str1017) + call void @fn_perr(ptr @.str1002) + %t344 = call ptr @fn_val(ptr @.str1003, ptr @.str1004) store ptr %t344, ptr %retval br label %ret ret: @@ -16213,16 +16136,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 @.str1018) + call void @fn_emit(ptr @.str1005) %t3 = load ptr, ptr %t0 call void @fn_emit(ptr %t3) - call void @fn_emit(ptr @.str1019) + call void @fn_emit(ptr @.str1006) %t4 = load ptr, ptr %t1 call void @fn_emit(ptr %t4) - call void @fn_emit(ptr @.str1020) + call void @fn_emit(ptr @.str1007) %t5 = load ptr, ptr %t2 call void @fn_emit(ptr %t5) - call void @fn_emit(ptr @.str1021) + call void @fn_emit(ptr @.str1008) br label %ret ret: ret void @@ -16246,8 +16169,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 @.str1022, ptr %t5 - store ptr @.str1023, ptr %t6 + store ptr @.str1009, ptr %t5 + store ptr @.str1010, ptr %t6 %t7 = load ptr, ptr %t4 %t8 = getelementptr inbounds %Cmp_Node, ptr %t7, i32 0, i32 0 %t9 = load i32, ptr %t8 @@ -16281,8 +16204,8 @@ then6: %t31 = load ptr, ptr %t4 %t32 = getelementptr inbounds %Cmp_Node, ptr %t31, i32 0, i32 1 %t33 = load ptr, ptr %t32 - %t34 = call ptr @fn_str_concat(ptr @.str1024, ptr %t33) - %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str1025) + %t34 = call ptr @fn_str_concat(ptr @.str1011, ptr %t33) + %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str1012) %t36 = load ptr, ptr %t0 %t37 = getelementptr inbounds %Cmp_Node, ptr %t36, i32 0, i32 8 %t38 = load i32, ptr %t37 @@ -16321,14 +16244,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_str_concat(ptr @.str1026, ptr %t64) + %t65 = call ptr @fn_str_concat(ptr @.str1013, ptr %t64) call void @fn_perr(ptr %t65) br label %ifend11 ifend11: %t66 = load ptr, ptr %t4 %t67 = getelementptr inbounds %Cmp_Node, ptr %t66, i32 0, i32 1 %t68 = load ptr, ptr %t67 - %t69 = call ptr @fn_str_concat(ptr @.str1027, ptr %t68) + %t69 = call ptr @fn_str_concat(ptr @.str1014, ptr %t68) store ptr %t69, ptr %t5 %t70 = load ptr, ptr %t57 %t71 = getelementptr inbounds %Cmp_Node, ptr %t70, i32 0, i32 3 @@ -16368,7 +16291,7 @@ then15: store ptr %t90, ptr %t6 br label %ifend17 else16: - call void @fn_perr(ptr @.str1028) + call void @fn_perr(ptr @.str1015) br label %ifend17 ifend17: br label %ifend14 @@ -16390,55 +16313,55 @@ 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_str_eq(ptr %t105, ptr @.str1029) + %t106 = call i32 @fn_str_eq(ptr %t105, ptr @.str1016) %t107 = icmp eq i32 %t106, 0 %t108 = zext i1 %t107 to i32 %t109 = icmp ne i32 %t108, 0 br i1 %t109, label %then18, label %ifend20 then18: %t110 = load ptr, ptr %t93 - %t111 = call ptr @fn_str_concat(ptr @.str1030, ptr %t110) - %t112 = call ptr @fn_str_concat(ptr %t111, ptr @.str1031) + %t111 = call ptr @fn_str_concat(ptr @.str1017, ptr %t110) + %t112 = call ptr @fn_str_concat(ptr %t111, ptr @.str1018) %t113 = load ptr, ptr %t5 %t114 = call ptr @fn_str_concat(ptr %t112, ptr %t113) %t115 = call ptr @fn_emit_bind(ptr %t114) store ptr %t115, ptr %t116 - store ptr @.str1032, ptr %t117 + store ptr @.str1019, ptr %t117 %t118 = load ptr, ptr %t0 %t119 = getelementptr inbounds %Cmp_Node, ptr %t118, i32 0, i32 1 %t120 = load ptr, ptr %t119 - %t121 = call i32 @fn_str_eq(ptr %t120, ptr @.str1033) + %t121 = call i32 @fn_str_eq(ptr %t120, ptr @.str1020) %t122 = icmp ne i32 %t121, 0 br i1 %t122, label %then21, label %ifend23 then21: - store ptr @.str1034, ptr %t117 + store ptr @.str1021, ptr %t117 br label %ifend23 ifend23: %t123 = load ptr, ptr %t0 %t124 = getelementptr inbounds %Cmp_Node, ptr %t123, i32 0, i32 1 %t125 = load ptr, ptr %t124 - %t126 = call i32 @fn_str_eq(ptr %t125, ptr @.str1035) + %t126 = call i32 @fn_str_eq(ptr %t125, ptr @.str1022) %t127 = icmp ne i32 %t126, 0 br i1 %t127, label %then24, label %ifend26 then24: - store ptr @.str1036, ptr %t117 + store ptr @.str1023, ptr %t117 br label %ifend26 ifend26: %t128 = load ptr, ptr %t0 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 1 %t130 = load ptr, ptr %t129 - %t131 = call i32 @fn_str_eq(ptr %t130, ptr @.str1037) + %t131 = call i32 @fn_str_eq(ptr %t130, ptr @.str1024) %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then27, label %ifend29 then27: - store ptr @.str1038, ptr %t117 + store ptr @.str1025, ptr %t117 br label %ifend29 ifend29: %t133 = load ptr, ptr %t117 - %t134 = call ptr @fn_str_concat(ptr %t133, ptr @.str1039) + %t134 = call ptr @fn_str_concat(ptr %t133, ptr @.str1026) %t135 = load ptr, ptr %t116 %t136 = call ptr @fn_str_concat(ptr %t134, ptr %t135) - %t137 = call ptr @fn_str_concat(ptr %t136, ptr @.str1040) + %t137 = call ptr @fn_str_concat(ptr %t136, ptr @.str1027) %t138 = load ptr, ptr %t102 %t139 = call ptr @fn_str_concat(ptr %t137, ptr %t138) %t140 = call ptr @fn_emit_bind(ptr %t139) @@ -16446,13 +16369,13 @@ ifend29: br label %ifend20 ifend20: %t141 = load ptr, ptr %t93 - %t142 = call i32 @fn_str_eq(ptr %t141, ptr @.str1041) + %t142 = call i32 @fn_str_eq(ptr %t141, ptr @.str1028) %t143 = icmp ne i32 %t142, 0 br i1 %t143, label %then30, label %ifend32 then30: %t144 = load ptr, ptr %t102 - %t145 = call ptr @fn_str_concat(ptr @.str1042, ptr %t144) - %t146 = call ptr @fn_str_concat(ptr %t145, ptr @.str1043) + %t145 = call ptr @fn_str_concat(ptr @.str1029, ptr %t144) + %t146 = call ptr @fn_str_concat(ptr %t145, ptr @.str1030) %t147 = call ptr @fn_emit_bind(ptr %t146) store ptr %t147, ptr %t102 br label %ifend32 @@ -16484,8 +16407,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_str_concat(ptr @.str1044, ptr %t8) - %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str1045) + %t9 = call ptr @fn_str_concat(ptr @.str1031, ptr %t8) + %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str1032) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t0 @@ -16494,43 +16417,43 @@ entry: %t16 = icmp ne ptr %t15, null %t17 = zext i1 %t16 to i32 store i32 %t17, ptr %t18 - %t19 = call ptr @fn_lbl(ptr @.str1046) + %t19 = call ptr @fn_lbl(ptr @.str1033) store ptr %t19, ptr %t20 - %t21 = call ptr @fn_lbl(ptr @.str1047) + %t21 = call ptr @fn_lbl(ptr @.str1034) store ptr %t21, ptr %t22 - %t23 = call ptr @fn_lbl(ptr @.str1048) + %t23 = call ptr @fn_lbl(ptr @.str1035) store ptr %t23, ptr %t24 %t25 = load i32, ptr %t18 %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then0, label %else1 then0: - call void @fn_emit(ptr @.str1049) + call void @fn_emit(ptr @.str1036) %t27 = load ptr, ptr %t12 call void @fn_emit(ptr %t27) - call void @fn_emit(ptr @.str1050) + call void @fn_emit(ptr @.str1037) %t28 = load ptr, ptr %t20 call void @fn_emit(ptr %t28) - call void @fn_emit(ptr @.str1051) + call void @fn_emit(ptr @.str1038) %t29 = load ptr, ptr %t22 call void @fn_emit(ptr %t29) - call void @fn_emit(ptr @.str1052) + call void @fn_emit(ptr @.str1039) br label %ifend2 else1: - call void @fn_emit(ptr @.str1053) + call void @fn_emit(ptr @.str1040) %t30 = load ptr, ptr %t12 call void @fn_emit(ptr %t30) - call void @fn_emit(ptr @.str1054) + call void @fn_emit(ptr @.str1041) %t31 = load ptr, ptr %t20 call void @fn_emit(ptr %t31) - call void @fn_emit(ptr @.str1055) + call void @fn_emit(ptr @.str1042) %t32 = load ptr, ptr %t24 call void @fn_emit(ptr %t32) - call void @fn_emit(ptr @.str1056) + call void @fn_emit(ptr @.str1043) br label %ifend2 ifend2: %t33 = load ptr, ptr %t20 call void @fn_emit(ptr %t33) - call void @fn_emit(ptr @.str1057) + call void @fn_emit(ptr @.str1044) store i32 0, ptr @g_g_term %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 5 @@ -16542,10 +16465,10 @@ ifend2: %t40 = icmp ne i32 %t39, 0 br i1 %t40, label %then3, label %ifend5 then3: - call void @fn_emit(ptr @.str1058) + call void @fn_emit(ptr @.str1045) %t41 = load ptr, ptr %t24 call void @fn_emit(ptr %t41) - call void @fn_emit(ptr @.str1059) + call void @fn_emit(ptr @.str1046) br label %ifend5 ifend5: %t42 = load i32, ptr %t18 @@ -16554,7 +16477,7 @@ ifend5: then6: %t44 = load ptr, ptr %t22 call void @fn_emit(ptr %t44) - call void @fn_emit(ptr @.str1060) + call void @fn_emit(ptr @.str1047) store i32 0, ptr @g_g_term %t45 = load ptr, ptr %t0 %t46 = getelementptr inbounds %Cmp_Node, ptr %t45, i32 0, i32 6 @@ -16584,17 +16507,17 @@ ifend11: %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then12, label %ifend14 then12: - call void @fn_emit(ptr @.str1061) + call void @fn_emit(ptr @.str1048) %t63 = load ptr, ptr %t24 call void @fn_emit(ptr %t63) - call void @fn_emit(ptr @.str1062) + call void @fn_emit(ptr @.str1049) br label %ifend14 ifend14: br label %ifend8 ifend8: %t64 = load ptr, ptr %t24 call void @fn_emit(ptr %t64) - call void @fn_emit(ptr @.str1063) + call void @fn_emit(ptr @.str1050) store i32 0, ptr @g_g_term br label %ret ret: @@ -16610,19 +16533,19 @@ entry: %t13 = alloca ptr %t20 = alloca ptr store ptr %arg_st, ptr %t0 - %t1 = call ptr @fn_lbl(ptr @.str1064) + %t1 = call ptr @fn_lbl(ptr @.str1051) store ptr %t1, ptr %t2 - %t3 = call ptr @fn_lbl(ptr @.str1065) + %t3 = call ptr @fn_lbl(ptr @.str1052) store ptr %t3, ptr %t4 - %t5 = call ptr @fn_lbl(ptr @.str1066) + %t5 = call ptr @fn_lbl(ptr @.str1053) store ptr %t5, ptr %t6 - call void @fn_emit(ptr @.str1067) + call void @fn_emit(ptr @.str1054) %t7 = load ptr, ptr %t2 call void @fn_emit(ptr %t7) - call void @fn_emit(ptr @.str1068) + call void @fn_emit(ptr @.str1055) %t8 = load ptr, ptr %t2 call void @fn_emit(ptr %t8) - call void @fn_emit(ptr @.str1069) + call void @fn_emit(ptr @.str1056) %t9 = load ptr, ptr %t0 %t10 = getelementptr inbounds %Cmp_Node, ptr %t9, i32 0, i32 4 %t11 = load ptr, ptr %t10 @@ -16631,23 +16554,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_str_concat(ptr @.str1070, ptr %t16) - %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str1071) + %t17 = call ptr @fn_str_concat(ptr @.str1057, ptr %t16) + %t18 = call ptr @fn_str_concat(ptr %t17, ptr @.str1058) %t19 = call ptr @fn_emit_bind(ptr %t18) store ptr %t19, ptr %t20 - call void @fn_emit(ptr @.str1072) + call void @fn_emit(ptr @.str1059) %t21 = load ptr, ptr %t20 call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str1073) + call void @fn_emit(ptr @.str1060) %t22 = load ptr, ptr %t4 call void @fn_emit(ptr %t22) - call void @fn_emit(ptr @.str1074) + call void @fn_emit(ptr @.str1061) %t23 = load ptr, ptr %t6 call void @fn_emit(ptr %t23) - call void @fn_emit(ptr @.str1075) + call void @fn_emit(ptr @.str1062) %t24 = load ptr, ptr %t4 call void @fn_emit(ptr %t24) - call void @fn_emit(ptr @.str1076) + call void @fn_emit(ptr @.str1063) store i32 0, ptr @g_g_term %t25 = load ptr, ptr %t2 %t26 = load ptr, ptr %t6 @@ -16663,15 +16586,15 @@ entry: %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str1077) + call void @fn_emit(ptr @.str1064) %t34 = load ptr, ptr %t2 call void @fn_emit(ptr %t34) - call void @fn_emit(ptr @.str1078) + call void @fn_emit(ptr @.str1065) br label %ifend2 ifend2: %t35 = load ptr, ptr %t6 call void @fn_emit(ptr %t35) - call void @fn_emit(ptr @.str1079) + call void @fn_emit(ptr @.str1066) store i32 0, ptr @g_g_term br label %ret ret: @@ -16693,7 +16616,7 @@ entry: %t62 = alloca ptr %t67 = alloca ptr store ptr %arg_st, ptr %t0 - %t1 = call ptr @fn_emit_alloca(ptr @.str1080) + %t1 = call ptr @fn_emit_alloca(ptr @.str1067) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 4 @@ -16704,29 +16627,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 @.str1081, ptr %t10, ptr %t11) + call void @fn_store_at(ptr @.str1068, 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 @.str1082) - %t16 = call ptr @fn_lbl(ptr @.str1083) + call void @fn_loc_push(ptr %t14, ptr %t15, ptr @.str1069) + %t16 = call ptr @fn_lbl(ptr @.str1070) store ptr %t16, ptr %t17 - %t18 = call ptr @fn_lbl(ptr @.str1084) + %t18 = call ptr @fn_lbl(ptr @.str1071) store ptr %t18, ptr %t19 - %t20 = call ptr @fn_lbl(ptr @.str1085) + %t20 = call ptr @fn_lbl(ptr @.str1072) store ptr %t20, ptr %t21 - %t22 = call ptr @fn_lbl(ptr @.str1086) + %t22 = call ptr @fn_lbl(ptr @.str1073) store ptr %t22, ptr %t23 - call void @fn_emit(ptr @.str1087) + call void @fn_emit(ptr @.str1074) %t24 = load ptr, ptr %t17 call void @fn_emit(ptr %t24) - call void @fn_emit(ptr @.str1088) + call void @fn_emit(ptr @.str1075) %t25 = load ptr, ptr %t17 call void @fn_emit(ptr %t25) - call void @fn_emit(ptr @.str1089) + call void @fn_emit(ptr @.str1076) %t26 = load ptr, ptr %t2 - %t27 = call ptr @fn_str_concat(ptr @.str1090, ptr %t26) + %t27 = call ptr @fn_str_concat(ptr @.str1077, ptr %t26) %t28 = call ptr @fn_emit_bind(ptr %t27) store ptr %t28, ptr %t29 %t30 = load ptr, ptr %t0 @@ -16735,27 +16658,27 @@ entry: %t33 = call ptr @fn_emit_expr(ptr %t32) store ptr %t33, ptr %t34 %t35 = load ptr, ptr %t29 - %t36 = call ptr @fn_str_concat(ptr @.str1091, ptr %t35) - %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str1092) + %t36 = call ptr @fn_str_concat(ptr @.str1078, ptr %t35) + %t37 = call ptr @fn_str_concat(ptr %t36, ptr @.str1079) %t38 = load ptr, ptr %t34 %t39 = getelementptr inbounds %Cmp_Val, ptr %t38, i32 0, i32 0 %t40 = load ptr, ptr %t39 %t41 = call ptr @fn_str_concat(ptr %t37, ptr %t40) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 - call void @fn_emit(ptr @.str1093) + call void @fn_emit(ptr @.str1080) %t44 = load ptr, ptr %t43 call void @fn_emit(ptr %t44) - call void @fn_emit(ptr @.str1094) + call void @fn_emit(ptr @.str1081) %t45 = load ptr, ptr %t19 call void @fn_emit(ptr %t45) - call void @fn_emit(ptr @.str1095) + call void @fn_emit(ptr @.str1082) %t46 = load ptr, ptr %t23 call void @fn_emit(ptr %t46) - call void @fn_emit(ptr @.str1096) + call void @fn_emit(ptr @.str1083) %t47 = load ptr, ptr %t19 call void @fn_emit(ptr %t47) - call void @fn_emit(ptr @.str1097) + call void @fn_emit(ptr @.str1084) store i32 0, ptr @g_g_term %t48 = load ptr, ptr %t21 %t49 = load ptr, ptr %t23 @@ -16771,34 +16694,34 @@ entry: %t56 = icmp ne i32 %t55, 0 br i1 %t56, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str1098) + call void @fn_emit(ptr @.str1085) %t57 = load ptr, ptr %t21 call void @fn_emit(ptr %t57) - call void @fn_emit(ptr @.str1099) + call void @fn_emit(ptr @.str1086) br label %ifend2 ifend2: %t58 = load ptr, ptr %t21 call void @fn_emit(ptr %t58) - call void @fn_emit(ptr @.str1100) + call void @fn_emit(ptr @.str1087) %t59 = load ptr, ptr %t2 - %t60 = call ptr @fn_str_concat(ptr @.str1101, ptr %t59) + %t60 = call ptr @fn_str_concat(ptr @.str1088, ptr %t59) %t61 = call ptr @fn_emit_bind(ptr %t60) store ptr %t61, ptr %t62 %t63 = load ptr, ptr %t62 - %t64 = call ptr @fn_str_concat(ptr @.str1102, ptr %t63) - %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str1103) + %t64 = call ptr @fn_str_concat(ptr @.str1089, ptr %t63) + %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str1090) %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 @.str1104, ptr %t68, ptr %t69) - call void @fn_emit(ptr @.str1105) + call void @fn_store_at(ptr @.str1091, ptr %t68, ptr %t69) + call void @fn_emit(ptr @.str1092) %t70 = load ptr, ptr %t17 call void @fn_emit(ptr %t70) - call void @fn_emit(ptr @.str1106) + call void @fn_emit(ptr @.str1093) %t71 = load ptr, ptr %t23 call void @fn_emit(ptr %t71) - call void @fn_emit(ptr @.str1107) + call void @fn_emit(ptr @.str1094) store i32 0, ptr @g_g_term br label %ret ret: @@ -16828,10 +16751,10 @@ then0: %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 @.str1108) + call void @fn_store_at(ptr %t13, ptr %t16, ptr @.str1095) br label %ifend2 ifend2: - call void @fn_emit(ptr @.str1109) + call void @fn_emit(ptr @.str1096) store i32 1, ptr @g_g_term br label %ret ret: @@ -16886,7 +16809,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_str_eq(ptr %t35, ptr @.str1110) + %t36 = call i32 @fn_str_eq(ptr %t35, ptr @.str1097) %t37 = icmp ne i32 %t36, 0 %t38 = zext i1 %t37 to i32 store i32 %t38, ptr %t11 @@ -16932,7 +16855,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 @.str1111) + %t6 = call ptr @fn_lbl(ptr @.str1098) store ptr %t6, ptr %t7 store ptr null, ptr %t8 store i32 0, ptr %t9 @@ -16967,7 +16890,7 @@ then3: store ptr %t31, ptr %t8 br label %ifend5 else4: - store ptr @.str1112, ptr %t32 + store ptr @.str1099, ptr %t32 store i32 1, ptr %t33 store i32 0, ptr %t34 br label %wcond6 @@ -16996,8 +16919,8 @@ wbody7: %t54 = load ptr, ptr %t5 %t55 = getelementptr inbounds %Cmp_Val, ptr %t54, i32 0, i32 0 %t56 = load ptr, ptr %t55 - %t57 = call ptr @fn_str_concat(ptr @.str1113, ptr %t56) - %t58 = call ptr @fn_str_concat(ptr %t57, ptr @.str1114) + %t57 = call ptr @fn_str_concat(ptr @.str1100, ptr %t56) + %t58 = call ptr @fn_str_concat(ptr %t57, ptr @.str1101) %t59 = load ptr, ptr %t53 %t60 = getelementptr inbounds %Cmp_Val, ptr %t59, i32 0, i32 0 %t61 = load ptr, ptr %t60 @@ -17014,8 +16937,8 @@ then9: br label %ifend11 else10: %t68 = load ptr, ptr %t32 - %t69 = call ptr @fn_str_concat(ptr @.str1115, ptr %t68) - %t70 = call ptr @fn_str_concat(ptr %t69, ptr @.str1116) + %t69 = call ptr @fn_str_concat(ptr @.str1102, ptr %t68) + %t70 = call ptr @fn_str_concat(ptr %t69, ptr @.str1103) %t71 = load ptr, ptr %t64 %t72 = call ptr @fn_str_concat(ptr %t70, ptr %t71) %t73 = call ptr @fn_emit_bind(ptr %t72) @@ -17027,23 +16950,23 @@ ifend11: store i32 %t75, ptr %t34 br label %wcond6 wend8: - %t76 = call ptr @fn_lbl(ptr @.str1117) + %t76 = call ptr @fn_lbl(ptr @.str1104) store ptr %t76, ptr %t77 - %t78 = call ptr @fn_lbl(ptr @.str1118) + %t78 = call ptr @fn_lbl(ptr @.str1105) store ptr %t78, ptr %t79 - call void @fn_emit(ptr @.str1119) + call void @fn_emit(ptr @.str1106) %t80 = load ptr, ptr %t32 call void @fn_emit(ptr %t80) - call void @fn_emit(ptr @.str1120) + call void @fn_emit(ptr @.str1107) %t81 = load ptr, ptr %t77 call void @fn_emit(ptr %t81) - call void @fn_emit(ptr @.str1121) + call void @fn_emit(ptr @.str1108) %t82 = load ptr, ptr %t79 call void @fn_emit(ptr %t82) - call void @fn_emit(ptr @.str1122) + call void @fn_emit(ptr @.str1109) %t83 = load ptr, ptr %t77 call void @fn_emit(ptr %t83) - call void @fn_emit(ptr @.str1123) + call void @fn_emit(ptr @.str1110) store i32 0, ptr @g_g_term %t84 = load ptr, ptr %t27 %t85 = getelementptr inbounds %Cmp_Node, ptr %t84, i32 0, i32 4 @@ -17055,15 +16978,15 @@ wend8: %t90 = icmp ne i32 %t89, 0 br i1 %t90, label %then12, label %ifend14 then12: - call void @fn_emit(ptr @.str1124) + call void @fn_emit(ptr @.str1111) %t91 = load ptr, ptr %t7 call void @fn_emit(ptr %t91) - call void @fn_emit(ptr @.str1125) + call void @fn_emit(ptr @.str1112) br label %ifend14 ifend14: %t92 = load ptr, ptr %t79 call void @fn_emit(ptr %t92) - call void @fn_emit(ptr @.str1126) + call void @fn_emit(ptr @.str1113) store i32 0, ptr @g_g_term br label %ifend5 ifend5: @@ -17090,15 +17013,15 @@ ifend17: %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then18, label %ifend20 then18: - call void @fn_emit(ptr @.str1127) + call void @fn_emit(ptr @.str1114) %t106 = load ptr, ptr %t7 call void @fn_emit(ptr %t106) - call void @fn_emit(ptr @.str1128) + call void @fn_emit(ptr @.str1115) br label %ifend20 ifend20: %t107 = load ptr, ptr %t7 call void @fn_emit(ptr %t107) - call void @fn_emit(ptr @.str1129) + call void @fn_emit(ptr @.str1116) store i32 0, ptr @g_g_term br label %ret ret: @@ -17178,14 +17101,14 @@ ifend5: %t50 = icmp ne i32 %t49, 0 br i1 %t50, label %then6, label %else7 then6: - store ptr @.str1130, ptr %t51 + store ptr @.str1117, ptr %t51 %t52 = load ptr, ptr %t10 %t53 = call ptr @fn_llty(ptr %t52) - %t54 = call i32 @fn_str_eq(ptr %t53, ptr @.str1131) + %t54 = call i32 @fn_str_eq(ptr %t53, ptr @.str1118) %t55 = icmp ne i32 %t54, 0 br i1 %t55, label %then9, label %ifend11 then9: - store ptr @.str1132, ptr %t51 + store ptr @.str1119, ptr %t51 br label %ifend11 ifend11: %t56 = load ptr, ptr %t10 @@ -17289,7 +17212,7 @@ ifend26: %t119 = icmp ne i32 %t118, 0 br i1 %t119, label %then27, label %ifend29 then27: - call void @fn_emit(ptr @.str1133) + call void @fn_emit(ptr @.str1120) %t120 = load ptr, ptr @g_brk_lbl %t121 = getelementptr inbounds %LSlice, ptr %t120, i32 0, i32 0 %t122 = load ptr, ptr %t121 @@ -17298,7 +17221,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 @.str1134) + call void @fn_emit(ptr @.str1121) store i32 1, ptr @g_g_term br label %ret ifend29: @@ -17310,7 +17233,7 @@ ifend29: %t132 = icmp ne i32 %t131, 0 br i1 %t132, label %then30, label %ifend32 then30: - call void @fn_emit(ptr @.str1135) + call void @fn_emit(ptr @.str1122) %t133 = load ptr, ptr @g_cnt_lbl %t134 = getelementptr inbounds %LSlice, ptr %t133, i32 0, i32 0 %t135 = load ptr, ptr %t134 @@ -17319,7 +17242,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 @.str1136) + call void @fn_emit(ptr @.str1123) store i32 1, ptr @g_g_term br label %ret ifend32: @@ -17422,7 +17345,7 @@ then54: store ptr %t198, ptr %t199 br label %ret ifend56: - call void @fn_perr(ptr @.str1137) + call void @fn_perr(ptr @.str1124) br label %ret ret: ret void @@ -17652,24 +17575,24 @@ entry: %t1 = alloca ptr %t11 = alloca i32 %t25 = alloca ptr - call void @fn_emith(ptr @.str1138) - call void @fn_emith(ptr @.str1139) - call void @fn_emith(ptr @.str1140) + call void @fn_emith(ptr @.str1125) + call void @fn_emith(ptr @.str1126) + call void @fn_emith(ptr @.str1127) %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 %t2 = load ptr, ptr %t1 - %t3 = call ptr @fn_str_concat(ptr @.str1141, ptr %t2) - %t4 = call ptr @fn_str_concat(ptr %t3, ptr @.str1142) + %t3 = call ptr @fn_str_concat(ptr @.str1128, ptr %t2) + %t4 = call ptr @fn_str_concat(ptr %t3, ptr @.str1129) call void @fn_emith(ptr %t4) %t5 = load ptr, ptr %t1 - %t6 = call ptr @fn_str_concat(ptr @.str1143, ptr %t5) - %t7 = call ptr @fn_str_concat(ptr %t6, ptr @.str1144) + %t6 = call ptr @fn_str_concat(ptr @.str1130, ptr %t5) + %t7 = call ptr @fn_str_concat(ptr %t6, ptr @.str1131) call void @fn_emith(ptr %t7) %t8 = load ptr, ptr %t1 - %t9 = call ptr @fn_str_concat(ptr @.str1145, ptr %t8) - %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str1146) + %t9 = call ptr @fn_str_concat(ptr @.str1132, ptr %t8) + %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str1133) call void @fn_emith(ptr %t10) - call void @fn_emith(ptr @.str1147) + call void @fn_emith(ptr @.str1134) store i32 0, ptr %t11 br label %wcond0 wcond0: @@ -17700,25 +17623,25 @@ then3: %t32 = load ptr, ptr %t25 %t33 = getelementptr inbounds %Cmp_Node, ptr %t32, i32 0, i32 1 %t34 = load ptr, ptr %t33 - %t35 = call ptr @fn_str_concat(ptr @.str1148, ptr %t34) - %t36 = call ptr @fn_str_concat(ptr %t35, ptr @.str1149) + %t35 = call ptr @fn_str_concat(ptr @.str1135, ptr %t34) + %t36 = call ptr @fn_str_concat(ptr %t35, ptr @.str1136) %t37 = load ptr, ptr %t1 %t38 = call ptr @fn_str_concat(ptr %t36, ptr %t37) - %t39 = call ptr @fn_str_concat(ptr %t38, ptr @.str1150) + %t39 = call ptr @fn_str_concat(ptr %t38, ptr @.str1137) %t40 = load ptr, ptr %t25 %t41 = getelementptr inbounds %Cmp_Node, ptr %t40, i32 0, i32 1 %t42 = load ptr, ptr %t41 %t43 = call ptr @fn_str_concat(ptr %t39, ptr %t42) - %t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str1151) + %t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str1138) 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 = call ptr @fn_str_concat(ptr @.str1152, ptr %t47) - %t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str1153) + %t48 = call ptr @fn_str_concat(ptr @.str1139, ptr %t47) + %t49 = call ptr @fn_str_concat(ptr %t48, ptr @.str1140) %t50 = load ptr, ptr %t1 %t51 = call ptr @fn_str_concat(ptr %t49, ptr %t50) - %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str1154) + %t52 = call ptr @fn_str_concat(ptr %t51, ptr @.str1141) call void @fn_emith(ptr %t52) br label %ifend5 ifend5: @@ -17733,8 +17656,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_str_concat(ptr @.str1155, ptr %t61) - %t63 = call ptr @fn_str_concat(ptr %t62, ptr @.str1156) + %t62 = call ptr @fn_str_concat(ptr @.str1142, ptr %t61) + %t63 = call ptr @fn_str_concat(ptr %t62, ptr @.str1143) call void @fn_emith(ptr %t63) br label %ifend8 ifend8: @@ -17749,8 +17672,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_str_concat(ptr @.str1157, ptr %t72) - %t74 = call ptr @fn_str_concat(ptr %t73, ptr @.str1158) + %t73 = call ptr @fn_str_concat(ptr @.str1144, ptr %t72) + %t74 = call ptr @fn_str_concat(ptr %t73, ptr @.str1145) call void @fn_emith(ptr %t74) br label %ifend11 ifend11: @@ -17771,7 +17694,7 @@ entry: %t24 = alloca ptr %t0 = call ptr @fn_itoa(i32 1024) store ptr %t0, ptr %t1 - call void @fn_emit(ptr @.str1159) + call void @fn_emit(ptr @.str1146) store i32 0, ptr %t2 br label %wcond0 wcond0: @@ -17799,15 +17722,15 @@ wbody1: then3: %t21 = load i32, ptr %t2 %t22 = call ptr @fn_itoa(i32 %t21) - %t23 = call ptr @fn_str_concat(ptr @.str1160, ptr %t22) + %t23 = call ptr @fn_str_concat(ptr @.str1147, ptr %t22) store ptr %t23, ptr %t24 - call void @fn_emit(ptr @.str1161) + call void @fn_emit(ptr @.str1148) %t25 = load ptr, ptr %t24 call void @fn_emit(ptr %t25) - call void @fn_emit(ptr @.str1162) + call void @fn_emit(ptr @.str1149) %t26 = load ptr, ptr %t1 call void @fn_emit(ptr %t26) - call void @fn_emit(ptr @.str1163) + call void @fn_emit(ptr @.str1150) %t27 = load ptr, ptr @g_prog %t28 = getelementptr inbounds %LSlice, ptr %t27, i32 0, i32 0 %t29 = load ptr, ptr %t28 @@ -17817,11 +17740,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 @.str1164) - call void @fn_emit(ptr @.str1165) + call void @fn_emit(ptr @.str1151) + call void @fn_emit(ptr @.str1152) %t35 = load ptr, ptr %t24 call void @fn_emit(ptr %t35) - call void @fn_emit(ptr @.str1166) + call void @fn_emit(ptr @.str1153) br label %ifend5 ifend5: %t36 = load i32, ptr %t2 @@ -17829,9 +17752,24 @@ ifend5: store i32 %t37, ptr %t2 br label %wcond0 wend2: - call void @fn_emit(ptr @.str1167) + call void @fn_emit(ptr @.str1154) %t38 = load ptr, ptr %t1 call void @fn_emit(ptr %t38) + call void @fn_emit(ptr @.str1155) + call void @fn_emit(ptr @.str1156) + call void @fn_emit(ptr @.str1157) + call void @fn_emit(ptr @.str1158) + call void @fn_emit(ptr @.str1159) + call void @fn_emit(ptr @.str1160) + call void @fn_emit(ptr @.str1161) + call void @fn_emit(ptr @.str1162) + call void @fn_emit(ptr @.str1163) + call void @fn_emit(ptr @.str1164) + %t39 = load ptr, ptr %t1 + call void @fn_emit(ptr %t39) + call void @fn_emit(ptr @.str1165) + call void @fn_emit(ptr @.str1166) + call void @fn_emit(ptr @.str1167) call void @fn_emit(ptr @.str1168) call void @fn_emit(ptr @.str1169) call void @fn_emit(ptr @.str1170) @@ -17841,42 +17779,27 @@ wend2: call void @fn_emit(ptr @.str1174) call void @fn_emit(ptr @.str1175) call void @fn_emit(ptr @.str1176) + %t40 = load ptr, ptr %t1 + call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str1177) - %t39 = load ptr, ptr %t1 - call void @fn_emit(ptr %t39) call void @fn_emit(ptr @.str1178) call void @fn_emit(ptr @.str1179) call void @fn_emit(ptr @.str1180) call void @fn_emit(ptr @.str1181) + %t41 = load ptr, ptr %t1 + call void @fn_emit(ptr %t41) call void @fn_emit(ptr @.str1182) call void @fn_emit(ptr @.str1183) call void @fn_emit(ptr @.str1184) call void @fn_emit(ptr @.str1185) call void @fn_emit(ptr @.str1186) + %t42 = load ptr, ptr %t1 + call void @fn_emit(ptr %t42) call void @fn_emit(ptr @.str1187) call void @fn_emit(ptr @.str1188) call void @fn_emit(ptr @.str1189) - %t40 = load ptr, ptr %t1 - call void @fn_emit(ptr %t40) call void @fn_emit(ptr @.str1190) call void @fn_emit(ptr @.str1191) - call void @fn_emit(ptr @.str1192) - call void @fn_emit(ptr @.str1193) - call void @fn_emit(ptr @.str1194) - %t41 = load ptr, ptr %t1 - call void @fn_emit(ptr %t41) - call void @fn_emit(ptr @.str1195) - call void @fn_emit(ptr @.str1196) - call void @fn_emit(ptr @.str1197) - call void @fn_emit(ptr @.str1198) - call void @fn_emit(ptr @.str1199) - %t42 = load ptr, ptr %t1 - call void @fn_emit(ptr %t42) - call void @fn_emit(ptr @.str1200) - call void @fn_emit(ptr @.str1201) - call void @fn_emit(ptr @.str1202) - call void @fn_emit(ptr @.str1203) - call void @fn_emit(ptr @.str1204) br label %ret ret: ret void @@ -17993,10 +17916,10 @@ entry: 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 @.str1205) + %t3 = call ptr @fn_emit_alloca(ptr @.str1192) store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 - call void @fn_store_at(ptr @.str1206, ptr @.str1207, ptr %t5) + call void @fn_store_at(ptr @.str1193, ptr @.str1194, 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 @@ -18048,88 +17971,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 @.str1208) + %t41 = call ptr @fn_lbl(ptr @.str1195) store ptr %t41, ptr %t42 - %t43 = call ptr @fn_lbl(ptr @.str1209) + %t43 = call ptr @fn_lbl(ptr @.str1196) store ptr %t43, ptr %t44 - %t45 = call ptr @fn_lbl(ptr @.str1210) + %t45 = call ptr @fn_lbl(ptr @.str1197) store ptr %t45, ptr %t46 - %t47 = call ptr @fn_lbl(ptr @.str1211) + %t47 = call ptr @fn_lbl(ptr @.str1198) store ptr %t47, ptr %t48 - call void @fn_emit(ptr @.str1212) + call void @fn_emit(ptr @.str1199) %t49 = load ptr, ptr %t42 call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str1213) + call void @fn_emit(ptr @.str1200) %t50 = load ptr, ptr %t42 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str1214) + call void @fn_emit(ptr @.str1201) %t51 = load ptr, ptr %t4 - %t52 = call ptr @fn_str_concat(ptr @.str1215, ptr %t51) + %t52 = call ptr @fn_str_concat(ptr @.str1202, ptr %t51) %t53 = call ptr @fn_emit_bind(ptr %t52) store ptr %t53, ptr %t54 - %t55 = call ptr @fn_emit_bind(ptr @.str1216) + %t55 = call ptr @fn_emit_bind(ptr @.str1203) store ptr %t55, ptr %t56 %t57 = load ptr, ptr %t54 - %t58 = call ptr @fn_str_concat(ptr @.str1217, ptr %t57) - %t59 = call ptr @fn_str_concat(ptr %t58, ptr @.str1218) + %t58 = call ptr @fn_str_concat(ptr @.str1204, ptr %t57) + %t59 = call ptr @fn_str_concat(ptr %t58, ptr @.str1205) %t60 = load ptr, ptr %t56 %t61 = call ptr @fn_str_concat(ptr %t59, ptr %t60) %t62 = call ptr @fn_emit_bind(ptr %t61) store ptr %t62, ptr %t63 - call void @fn_emit(ptr @.str1219) + call void @fn_emit(ptr @.str1206) %t64 = load ptr, ptr %t63 call void @fn_emit(ptr %t64) - call void @fn_emit(ptr @.str1220) + call void @fn_emit(ptr @.str1207) %t65 = load ptr, ptr %t44 call void @fn_emit(ptr %t65) - call void @fn_emit(ptr @.str1221) + call void @fn_emit(ptr @.str1208) %t66 = load ptr, ptr %t48 call void @fn_emit(ptr %t66) - call void @fn_emit(ptr @.str1222) + call void @fn_emit(ptr @.str1209) %t67 = load ptr, ptr %t44 call void @fn_emit(ptr %t67) - call void @fn_emit(ptr @.str1223) + call void @fn_emit(ptr @.str1210) store i32 0, ptr @g_g_term %t68 = load ptr, ptr %t4 - %t69 = call ptr @fn_str_concat(ptr @.str1224, ptr %t68) + %t69 = call ptr @fn_str_concat(ptr @.str1211, 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 @.str1225) + call void @fn_emit(ptr @.str1212) %t74 = load ptr, ptr %t73 call void @fn_emit(ptr %t74) - call void @fn_emit(ptr @.str1226) + call void @fn_emit(ptr @.str1213) %t75 = load ptr, ptr %t2 call void @fn_emit(ptr %t75) - call void @fn_emit(ptr @.str1227) + call void @fn_emit(ptr @.str1214) %t76 = load ptr, ptr %t71 call void @fn_emit(ptr %t76) - call void @fn_emit(ptr @.str1228) + call void @fn_emit(ptr @.str1215) %t77 = load ptr, ptr %t73 - %t78 = call ptr @fn_str_concat(ptr @.str1229, ptr %t77) + %t78 = call ptr @fn_str_concat(ptr @.str1216, ptr %t77) %t79 = call ptr @fn_emit_bind(ptr %t78) store ptr %t79, ptr %t80 %t81 = load ptr, ptr %t80 - %t82 = call ptr @fn_str_concat(ptr @.str1230, ptr %t81) - %t83 = call ptr @fn_str_concat(ptr %t82, ptr @.str1231) + %t82 = call ptr @fn_str_concat(ptr @.str1217, ptr %t81) + %t83 = call ptr @fn_str_concat(ptr %t82, ptr @.str1218) %t84 = call ptr @fn_emit_bind(ptr %t83) store ptr %t84, ptr %t85 - %t86 = call ptr @fn_lbl(ptr @.str1232) + %t86 = call ptr @fn_lbl(ptr @.str1219) store ptr %t86, ptr %t87 - call void @fn_emit(ptr @.str1233) + call void @fn_emit(ptr @.str1220) %t88 = load ptr, ptr %t85 call void @fn_emit(ptr %t88) - call void @fn_emit(ptr @.str1234) + call void @fn_emit(ptr @.str1221) %t89 = load ptr, ptr %t87 call void @fn_emit(ptr %t89) - call void @fn_emit(ptr @.str1235) + call void @fn_emit(ptr @.str1222) %t90 = load ptr, ptr %t46 call void @fn_emit(ptr %t90) - call void @fn_emit(ptr @.str1236) + call void @fn_emit(ptr @.str1223) %t91 = load ptr, ptr %t87 call void @fn_emit(ptr %t91) - call void @fn_emit(ptr @.str1237) + call void @fn_emit(ptr @.str1224) %t92 = load ptr, ptr %t0 %t93 = getelementptr inbounds %Cmp_Node, ptr %t92, i32 0, i32 6 %t94 = load ptr, ptr %t93 @@ -18162,7 +18085,7 @@ wbody6: %t117 = load ptr, ptr %t116 %t118 = call i32 @fn_find_arch_id(ptr %t117) store i32 %t118, ptr %t119 - store ptr @.str1238, ptr %t120 + store ptr @.str1225, ptr %t120 %t121 = load i32, ptr %t119 %t122 = icmp sgt i32 %t121, 0 %t123 = zext i1 %t122 to i32 @@ -18171,23 +18094,23 @@ wbody6: then8: %t125 = call ptr @fn_nreg() store ptr %t125, ptr %t126 - call void @fn_emit(ptr @.str1239) + call void @fn_emit(ptr @.str1226) %t127 = load ptr, ptr %t126 call void @fn_emit(ptr %t127) - call void @fn_emit(ptr @.str1240) + call void @fn_emit(ptr @.str1227) %t128 = load ptr, ptr %t2 call void @fn_emit(ptr %t128) - call void @fn_emit(ptr @.str1241) + call void @fn_emit(ptr @.str1228) %t129 = load ptr, ptr %t71 call void @fn_emit(ptr %t129) - call void @fn_emit(ptr @.str1242) + call void @fn_emit(ptr @.str1229) %t130 = load ptr, ptr %t126 - %t131 = call ptr @fn_str_concat(ptr @.str1243, ptr %t130) + %t131 = call ptr @fn_str_concat(ptr @.str1230, ptr %t130) %t132 = call ptr @fn_emit_bind(ptr %t131) store ptr %t132, ptr %t133 %t134 = load ptr, ptr %t133 - %t135 = call ptr @fn_str_concat(ptr @.str1244, ptr %t134) - %t136 = call ptr @fn_str_concat(ptr %t135, ptr @.str1245) + %t135 = call ptr @fn_str_concat(ptr @.str1231, ptr %t134) + %t136 = call ptr @fn_str_concat(ptr %t135, ptr @.str1232) %t137 = load i32, ptr %t119 %t138 = call ptr @fn_itoa(i32 %t137) %t139 = call ptr @fn_str_concat(ptr %t136, ptr %t138) @@ -18196,17 +18119,17 @@ then8: %t142 = load ptr, ptr %t114 %t143 = getelementptr inbounds %Cmp_Node, ptr %t142, i32 0, i32 1 %t144 = load ptr, ptr %t143 - %t145 = call ptr @fn_str_concat(ptr @.str1246, ptr %t144) + %t145 = call ptr @fn_str_concat(ptr @.str1233, ptr %t144) %t146 = call ptr @fn_emit_bind(ptr %t145) store ptr %t146, ptr %t147 %t148 = load ptr, ptr %t147 - %t149 = call ptr @fn_str_concat(ptr @.str1247, ptr %t148) - %t150 = call ptr @fn_str_concat(ptr %t149, ptr @.str1248) + %t149 = call ptr @fn_str_concat(ptr @.str1234, ptr %t148) + %t150 = call ptr @fn_str_concat(ptr %t149, ptr @.str1235) %t151 = call ptr @fn_emit_bind(ptr %t150) store ptr %t151, ptr %t152 %t153 = load ptr, ptr %t141 - %t154 = call ptr @fn_str_concat(ptr @.str1249, ptr %t153) - %t155 = call ptr @fn_str_concat(ptr %t154, ptr @.str1250) + %t154 = call ptr @fn_str_concat(ptr @.str1236, ptr %t153) + %t155 = call ptr @fn_str_concat(ptr %t154, ptr @.str1237) %t156 = load ptr, ptr %t152 %t157 = call ptr @fn_str_concat(ptr %t155, ptr %t156) %t158 = call ptr @fn_emit_bind(ptr %t157) @@ -18215,47 +18138,47 @@ then8: else9: %t159 = call ptr @fn_nreg() store ptr %t159, ptr %t160 - call void @fn_emit(ptr @.str1251) + call void @fn_emit(ptr @.str1238) %t161 = load ptr, ptr %t160 call void @fn_emit(ptr %t161) - call void @fn_emit(ptr @.str1252) + call void @fn_emit(ptr @.str1239) %t162 = load ptr, ptr %t2 call void @fn_emit(ptr %t162) - call void @fn_emit(ptr @.str1253) + call void @fn_emit(ptr @.str1240) %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 @.str1254) + call void @fn_emit(ptr @.str1241) %t166 = load ptr, ptr %t71 call void @fn_emit(ptr %t166) - call void @fn_emit(ptr @.str1255) + call void @fn_emit(ptr @.str1242) %t167 = load ptr, ptr %t160 - %t168 = call ptr @fn_str_concat(ptr @.str1256, ptr %t167) + %t168 = call ptr @fn_str_concat(ptr @.str1243, ptr %t167) %t169 = call ptr @fn_emit_bind(ptr %t168) store ptr %t169, ptr %t170 %t171 = load ptr, ptr %t170 - %t172 = call ptr @fn_str_concat(ptr @.str1257, ptr %t171) - %t173 = call ptr @fn_str_concat(ptr %t172, ptr @.str1258) + %t172 = call ptr @fn_str_concat(ptr @.str1244, ptr %t171) + %t173 = call ptr @fn_str_concat(ptr %t172, ptr @.str1245) %t174 = call ptr @fn_emit_bind(ptr %t173) store ptr %t174, ptr %t120 br label %ifend10 ifend10: - %t175 = call ptr @fn_lbl(ptr @.str1259) + %t175 = call ptr @fn_lbl(ptr @.str1246) store ptr %t175, ptr %t176 - call void @fn_emit(ptr @.str1260) + call void @fn_emit(ptr @.str1247) %t177 = load ptr, ptr %t120 call void @fn_emit(ptr %t177) - call void @fn_emit(ptr @.str1261) + call void @fn_emit(ptr @.str1248) %t178 = load ptr, ptr %t176 call void @fn_emit(ptr %t178) - call void @fn_emit(ptr @.str1262) + call void @fn_emit(ptr @.str1249) %t179 = load ptr, ptr %t46 call void @fn_emit(ptr %t179) - call void @fn_emit(ptr @.str1263) + call void @fn_emit(ptr @.str1250) %t180 = load ptr, ptr %t176 call void @fn_emit(ptr %t180) - call void @fn_emit(ptr @.str1264) + call void @fn_emit(ptr @.str1251) %t181 = load i32, ptr %t96 %t182 = add i32 %t181, 1 store i32 %t182, ptr %t96 @@ -18325,35 +18248,35 @@ then16: then19: %t231 = call ptr @fn_nreg() store ptr %t231, ptr %t232 - call void @fn_emit(ptr @.str1265) + call void @fn_emit(ptr @.str1252) %t233 = load ptr, ptr %t232 call void @fn_emit(ptr %t233) - call void @fn_emit(ptr @.str1266) + call void @fn_emit(ptr @.str1253) %t234 = load ptr, ptr %t2 call void @fn_emit(ptr %t234) - call void @fn_emit(ptr @.str1267) + call void @fn_emit(ptr @.str1254) %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 @.str1268) + call void @fn_emit(ptr @.str1255) %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 @.str1269) + call void @fn_emit(ptr @.str1256) %t241 = load ptr, ptr %t71 call void @fn_emit(ptr %t241) - call void @fn_emit(ptr @.str1270) - %t242 = call ptr @fn_emit_alloca(ptr @.str1271) + call void @fn_emit(ptr @.str1257) + %t242 = call ptr @fn_emit_alloca(ptr @.str1258) store ptr %t242, ptr %t243 - call void @fn_emit(ptr @.str1272) + call void @fn_emit(ptr @.str1259) %t244 = load ptr, ptr %t232 call void @fn_emit(ptr %t244) - call void @fn_emit(ptr @.str1273) + call void @fn_emit(ptr @.str1260) %t245 = load ptr, ptr %t243 call void @fn_emit(ptr %t245) - call void @fn_emit(ptr @.str1274) + call void @fn_emit(ptr @.str1261) %t246 = load ptr, ptr %t0 %t247 = getelementptr inbounds %Cmp_Node, ptr %t246, i32 0, i32 7 %t248 = load ptr, ptr %t247 @@ -18397,25 +18320,25 @@ then22: %t275 = load ptr, ptr %t274 %t276 = getelementptr inbounds %Cmp_Val, ptr %t275, i32 0, i32 0 %t277 = load ptr, ptr %t276 - %t278 = call ptr @fn_str_concat(ptr @.str1275, ptr %t277) - %t279 = call ptr @fn_str_concat(ptr %t278, ptr @.str1276) + %t278 = call ptr @fn_str_concat(ptr @.str1262, ptr %t277) + %t279 = call ptr @fn_str_concat(ptr %t278, ptr @.str1263) %t280 = call ptr @fn_emit_bind(ptr %t279) store ptr %t280, ptr %t281 - %t282 = call ptr @fn_lbl(ptr @.str1277) + %t282 = call ptr @fn_lbl(ptr @.str1264) store ptr %t282, ptr %t283 - call void @fn_emit(ptr @.str1278) + call void @fn_emit(ptr @.str1265) %t284 = load ptr, ptr %t281 call void @fn_emit(ptr %t284) - call void @fn_emit(ptr @.str1279) + call void @fn_emit(ptr @.str1266) %t285 = load ptr, ptr %t283 call void @fn_emit(ptr %t285) - call void @fn_emit(ptr @.str1280) + call void @fn_emit(ptr @.str1267) %t286 = load ptr, ptr %t46 call void @fn_emit(ptr %t286) - call void @fn_emit(ptr @.str1281) + call void @fn_emit(ptr @.str1268) %t287 = load ptr, ptr %t283 call void @fn_emit(ptr %t287) - call void @fn_emit(ptr @.str1282) + call void @fn_emit(ptr @.str1269) br label %ifend24 ifend24: %t288 = load ptr, ptr %t46 @@ -18434,34 +18357,34 @@ ifend24: %t297 = icmp ne i32 %t296, 0 br i1 %t297, label %then25, label %ifend27 then25: - call void @fn_emit(ptr @.str1283) + call void @fn_emit(ptr @.str1270) %t298 = load ptr, ptr %t46 call void @fn_emit(ptr %t298) - call void @fn_emit(ptr @.str1284) + call void @fn_emit(ptr @.str1271) br label %ifend27 ifend27: %t299 = load ptr, ptr %t46 call void @fn_emit(ptr %t299) - call void @fn_emit(ptr @.str1285) + call void @fn_emit(ptr @.str1272) %t300 = load ptr, ptr %t4 - %t301 = call ptr @fn_str_concat(ptr @.str1286, ptr %t300) + %t301 = call ptr @fn_str_concat(ptr @.str1273, ptr %t300) %t302 = call ptr @fn_emit_bind(ptr %t301) store ptr %t302, ptr %t303 %t304 = load ptr, ptr %t303 - %t305 = call ptr @fn_str_concat(ptr @.str1287, ptr %t304) - %t306 = call ptr @fn_str_concat(ptr %t305, ptr @.str1288) + %t305 = call ptr @fn_str_concat(ptr @.str1274, ptr %t304) + %t306 = call ptr @fn_str_concat(ptr %t305, ptr @.str1275) %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 @.str1289, ptr %t309, ptr %t310) - call void @fn_emit(ptr @.str1290) + call void @fn_store_at(ptr @.str1276, ptr %t309, ptr %t310) + call void @fn_emit(ptr @.str1277) %t311 = load ptr, ptr %t42 call void @fn_emit(ptr %t311) - call void @fn_emit(ptr @.str1291) + call void @fn_emit(ptr @.str1278) %t312 = load ptr, ptr %t48 call void @fn_emit(ptr %t312) - call void @fn_emit(ptr @.str1292) + call void @fn_emit(ptr @.str1279) store i32 0, ptr @g_g_term %t313 = load i32, ptr @g_nself %t314 = sub i32 %t313, 1 @@ -18509,47 +18432,47 @@ entry: br i1 %t11, label %then0, label %ifend2 then0: %t12 = load ptr, ptr %t1 - %t13 = call ptr @fn_str_concat(ptr @.str1293, ptr %t12) + %t13 = call ptr @fn_str_concat(ptr @.str1280, 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 @.str1294) + call void @fn_emit(ptr @.str1281) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) - call void @fn_emit(ptr @.str1295) + call void @fn_emit(ptr @.str1282) %t17 = load ptr, ptr %t4 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str1296) + call void @fn_emit(ptr @.str1283) %t18 = load ptr, ptr %t1 call void @fn_emit(ptr %t18) - call void @fn_emit(ptr @.str1297) + call void @fn_emit(ptr @.str1284) %t19 = load ptr, ptr %t0 call void @fn_emit(ptr %t19) - call void @fn_emit(ptr @.str1298) - call void @fn_emit(ptr @.str1299) + call void @fn_emit(ptr @.str1285) + call void @fn_emit(ptr @.str1286) %t20 = load ptr, ptr %t15 call void @fn_emit(ptr %t20) - call void @fn_emit(ptr @.str1300) + call void @fn_emit(ptr @.str1287) %t21 = call ptr @fn_nreg() store ptr %t21, ptr %t22 - call void @fn_emit(ptr @.str1301) + call void @fn_emit(ptr @.str1288) %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) - call void @fn_emit(ptr @.str1302) + call void @fn_emit(ptr @.str1289) %t24 = load ptr, ptr %t4 call void @fn_emit(ptr %t24) - call void @fn_emit(ptr @.str1303) + call void @fn_emit(ptr @.str1290) %t25 = load ptr, ptr %t1 call void @fn_emit(ptr %t25) - call void @fn_emit(ptr @.str1304) + call void @fn_emit(ptr @.str1291) %t26 = load ptr, ptr %t1 call void @fn_emit(ptr %t26) - call void @fn_emit(ptr @.str1305) + call void @fn_emit(ptr @.str1292) %t27 = load ptr, ptr %t0 call void @fn_emit(ptr %t27) - call void @fn_emit(ptr @.str1306) + call void @fn_emit(ptr @.str1293) store i32 0, ptr %t28 br label %wcond3 wcond3: @@ -18575,32 +18498,32 @@ wbody4: store ptr %t45, ptr %t46 %t47 = call ptr @fn_nreg() store ptr %t47, ptr %t48 - call void @fn_emit(ptr @.str1307) + call void @fn_emit(ptr @.str1294) %t49 = load ptr, ptr %t48 call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str1308) + call void @fn_emit(ptr @.str1295) %t50 = load ptr, ptr %t1 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str1309) + call void @fn_emit(ptr @.str1296) %t51 = load ptr, ptr %t22 call void @fn_emit(ptr %t51) - call void @fn_emit(ptr @.str1310) + call void @fn_emit(ptr @.str1297) %t52 = load i32, ptr %t28 %t53 = call ptr @fn_itoa(i32 %t52) call void @fn_emit(ptr %t53) - call void @fn_emit(ptr @.str1311) + call void @fn_emit(ptr @.str1298) %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 @.str1312, ptr %t59 + store ptr @.str1299, ptr %t59 %t60 = load ptr, ptr %t58 - %t61 = call i32 @fn_str_eq(ptr %t60, ptr @.str1313) + %t61 = call i32 @fn_str_eq(ptr %t60, ptr @.str1300) %t62 = icmp ne i32 %t61, 0 br i1 %t62, label %then6, label %ifend8 then6: - store ptr @.str1314, ptr %t59 + store ptr @.str1301, ptr %t59 br label %ifend8 ifend8: %t63 = load ptr, ptr %t46 @@ -18622,16 +18545,16 @@ then9: store ptr %t76, ptr %t59 br label %ifend11 ifend11: - call void @fn_emit(ptr @.str1315) + call void @fn_emit(ptr @.str1302) %t77 = load ptr, ptr %t58 call void @fn_emit(ptr %t77) - call void @fn_emit(ptr @.str1316) + call void @fn_emit(ptr @.str1303) %t78 = load ptr, ptr %t59 call void @fn_emit(ptr %t78) - call void @fn_emit(ptr @.str1317) + call void @fn_emit(ptr @.str1304) %t79 = load ptr, ptr %t48 call void @fn_emit(ptr %t79) - call void @fn_emit(ptr @.str1318) + call void @fn_emit(ptr @.str1305) %t80 = load i32, ptr %t28 %t81 = add i32 %t80, 1 store i32 %t81, ptr %t28 @@ -18680,26 +18603,26 @@ wbody16: then18: %t115 = call ptr @fn_nreg() store ptr %t115, ptr %t116 - call void @fn_emit(ptr @.str1319) + call void @fn_emit(ptr @.str1306) %t117 = load ptr, ptr %t116 call void @fn_emit(ptr %t117) - call void @fn_emit(ptr @.str1320) + call void @fn_emit(ptr @.str1307) %t118 = load ptr, ptr %t1 call void @fn_emit(ptr %t118) - call void @fn_emit(ptr @.str1321) + call void @fn_emit(ptr @.str1308) %t119 = load ptr, ptr %t22 call void @fn_emit(ptr %t119) - call void @fn_emit(ptr @.str1322) + call void @fn_emit(ptr @.str1309) %t120 = load i32, ptr %t110 %t121 = call ptr @fn_itoa(i32 %t120) call void @fn_emit(ptr %t121) - call void @fn_emit(ptr @.str1323) + call void @fn_emit(ptr @.str1310) %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 @.str1324) + call void @fn_emit(ptr @.str1311) %t127 = load ptr, ptr %t7 %t128 = load ptr, ptr %t104 %t129 = getelementptr inbounds %Cmp_Node, ptr %t128, i32 0, i32 1 @@ -18707,15 +18630,15 @@ then18: %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 @.str1325) + call void @fn_emit(ptr @.str1312) %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 @.str1326) + call void @fn_emit(ptr @.str1313) %t136 = load ptr, ptr %t116 call void @fn_emit(ptr %t136) - call void @fn_emit(ptr @.str1327) + call void @fn_emit(ptr @.str1314) br label %ifend20 ifend20: %t137 = load i32, ptr %t86 @@ -18736,15 +18659,15 @@ ifend14: then21: %t146 = load i32, ptr @g_nloc store i32 %t146, ptr %t147 - %t148 = call ptr @fn_emit_alloca(ptr @.str1328) + %t148 = call ptr @fn_emit_alloca(ptr @.str1315) store ptr %t148, ptr %t149 - call void @fn_emit(ptr @.str1329) + call void @fn_emit(ptr @.str1316) %t150 = load ptr, ptr %t22 call void @fn_emit(ptr %t150) - call void @fn_emit(ptr @.str1330) + call void @fn_emit(ptr @.str1317) %t151 = load ptr, ptr %t149 call void @fn_emit(ptr %t151) - call void @fn_emit(ptr @.str1331) + call void @fn_emit(ptr @.str1318) %t152 = load ptr, ptr %t1 %t153 = load ptr, ptr %t149 %t154 = load ptr, ptr %t1 @@ -18800,31 +18723,31 @@ wbody1: store ptr %t23, ptr %t24 %t25 = call ptr @fn_nreg() store ptr %t25, ptr %t26 - call void @fn_emit(ptr @.str1332) + call void @fn_emit(ptr @.str1319) %t27 = load ptr, ptr %t26 call void @fn_emit(ptr %t27) - call void @fn_emit(ptr @.str1333) + call void @fn_emit(ptr @.str1320) %t28 = load ptr, ptr %t3 call void @fn_emit(ptr %t28) - call void @fn_emit(ptr @.str1334) + call void @fn_emit(ptr @.str1321) %t29 = load ptr, ptr %t24 call void @fn_emit(ptr %t29) - call void @fn_emit(ptr @.str1335) + call void @fn_emit(ptr @.str1322) %t30 = load ptr, ptr %t24 call void @fn_emit(ptr %t30) - call void @fn_emit(ptr @.str1336) + call void @fn_emit(ptr @.str1323) %t31 = load ptr, ptr %t1 call void @fn_emit(ptr %t31) - call void @fn_emit(ptr @.str1337) - %t32 = call ptr @fn_emit_alloca(ptr @.str1338) + call void @fn_emit(ptr @.str1324) + %t32 = call ptr @fn_emit_alloca(ptr @.str1325) store ptr %t32, ptr %t33 - call void @fn_emit(ptr @.str1339) + call void @fn_emit(ptr @.str1326) %t34 = load ptr, ptr %t26 call void @fn_emit(ptr %t34) - call void @fn_emit(ptr @.str1340) + call void @fn_emit(ptr @.str1327) %t35 = load ptr, ptr %t33 call void @fn_emit(ptr %t35) - call void @fn_emit(ptr @.str1341) + call void @fn_emit(ptr @.str1328) %t36 = load ptr, ptr %t24 %t37 = load ptr, ptr %t33 %t38 = load ptr, ptr %t24 @@ -18855,7 +18778,7 @@ entry: %t99 = alloca i32 %t104 = alloca i32 store ptr %arg_st, ptr %t0 - %t1 = call ptr @fn_emit_bind(ptr @.str1342) + %t1 = call ptr @fn_emit_bind(ptr @.str1329) store ptr %t1, ptr %t2 %t3 = load ptr, ptr %t0 %t4 = getelementptr inbounds %Cmp_Node, ptr %t3, i32 0, i32 1 @@ -18872,24 +18795,24 @@ then0: store ptr %t12, ptr %t13 %t14 = call ptr @fn_nreg() store ptr %t14, ptr %t15 - call void @fn_emit(ptr @.str1343) + call void @fn_emit(ptr @.str1330) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) - call void @fn_emit(ptr @.str1344) + call void @fn_emit(ptr @.str1331) %t17 = load ptr, ptr %t13 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str1345) + call void @fn_emit(ptr @.str1332) %t18 = load ptr, ptr %t2 call void @fn_emit(ptr %t18) - call void @fn_emit(ptr @.str1346) - call void @fn_emit(ptr @.str1347) + call void @fn_emit(ptr @.str1333) + call void @fn_emit(ptr @.str1334) %t19 = load i32, ptr %t7 %t20 = call ptr @fn_itoa(i32 %t19) call void @fn_emit(ptr %t20) - call void @fn_emit(ptr @.str1348) + call void @fn_emit(ptr @.str1335) %t21 = load ptr, ptr %t15 call void @fn_emit(ptr %t21) - call void @fn_emit(ptr @.str1349) + call void @fn_emit(ptr @.str1336) %t22 = load ptr, ptr %t0 %t23 = getelementptr inbounds %Cmp_Node, ptr %t22, i32 0, i32 1 %t24 = load ptr, ptr %t23 @@ -19079,20 +19002,20 @@ then0: store ptr %t12, ptr %t13 %t14 = call ptr @fn_nreg() store ptr %t14, ptr %t15 - call void @fn_emit(ptr @.str1350) + call void @fn_emit(ptr @.str1337) %t16 = load ptr, ptr %t15 call void @fn_emit(ptr %t16) - call void @fn_emit(ptr @.str1351) + call void @fn_emit(ptr @.str1338) %t17 = load ptr, ptr %t13 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str1352) + call void @fn_emit(ptr @.str1339) %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 @.str1353) + call void @fn_emit(ptr @.str1340) %t21 = load ptr, ptr %t15 - %t22 = call ptr @fn_str_concat(ptr @.str1354, ptr %t21) + %t22 = call ptr @fn_str_concat(ptr @.str1341, ptr %t21) %t23 = call ptr @fn_emit_bind(ptr %t22) store ptr %t23, ptr %t24 store i32 0, ptr %t25 @@ -19117,46 +19040,46 @@ wbody4: %t40 = load ptr, ptr %t39 store ptr %t40, ptr %t41 %t42 = load ptr, ptr %t24 - %t43 = call ptr @fn_str_concat(ptr @.str1355, ptr %t42) - %t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str1356) + %t43 = call ptr @fn_str_concat(ptr @.str1342, ptr %t42) + %t44 = call ptr @fn_str_concat(ptr %t43, ptr @.str1343) %t45 = load ptr, ptr %t41 %t46 = call i32 @fn_find_arch_id(ptr %t45) %t47 = call ptr @fn_itoa(i32 %t46) %t48 = call ptr @fn_str_concat(ptr %t44, ptr %t47) %t49 = call ptr @fn_emit_bind(ptr %t48) store ptr %t49, ptr %t50 - %t51 = call ptr @fn_lbl(ptr @.str1357) + %t51 = call ptr @fn_lbl(ptr @.str1344) store ptr %t51, ptr %t52 - %t53 = call ptr @fn_lbl(ptr @.str1358) + %t53 = call ptr @fn_lbl(ptr @.str1345) store ptr %t53, ptr %t54 - call void @fn_emit(ptr @.str1359) + call void @fn_emit(ptr @.str1346) %t55 = load ptr, ptr %t50 call void @fn_emit(ptr %t55) - call void @fn_emit(ptr @.str1360) + call void @fn_emit(ptr @.str1347) %t56 = load ptr, ptr %t52 call void @fn_emit(ptr %t56) - call void @fn_emit(ptr @.str1361) + call void @fn_emit(ptr @.str1348) %t57 = load ptr, ptr %t54 call void @fn_emit(ptr %t57) - call void @fn_emit(ptr @.str1362) + call void @fn_emit(ptr @.str1349) %t58 = load ptr, ptr %t52 call void @fn_emit(ptr %t58) - call void @fn_emit(ptr @.str1363) + call void @fn_emit(ptr @.str1350) %t59 = load ptr, ptr %t41 call void @fn_emit(ptr %t59) - call void @fn_emit(ptr @.str1364) + call void @fn_emit(ptr @.str1351) %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 @.str1365) - call void @fn_emit(ptr @.str1366) + call void @fn_emit(ptr @.str1352) + call void @fn_emit(ptr @.str1353) %t63 = load ptr, ptr %t54 call void @fn_emit(ptr %t63) - call void @fn_emit(ptr @.str1367) + call void @fn_emit(ptr @.str1354) %t64 = load ptr, ptr %t54 call void @fn_emit(ptr %t64) - call void @fn_emit(ptr @.str1368) + call void @fn_emit(ptr @.str1355) %t65 = load i32, ptr %t25 %t66 = add i32 %t65, 1 store i32 %t66, ptr %t25 @@ -19164,12 +19087,12 @@ wbody4: wend5: br label %ifend2 ifend2: - call void @fn_emit(ptr @.str1369) + call void @fn_emit(ptr @.str1356) %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 @.str1370) + call void @fn_emit(ptr @.str1357) br label %ret ret: ret void @@ -19188,7 +19111,7 @@ entry: %t68 = alloca ptr %t80 = alloca ptr store ptr %arg_st, ptr %t0 - store ptr @.str1371, ptr %t1 + store ptr @.str1358, ptr %t1 %t2 = load ptr, ptr %t0 %t3 = getelementptr inbounds %Cmp_Node, ptr %t2, i32 0, i32 2 %t4 = load i32, ptr %t3 @@ -19197,7 +19120,7 @@ entry: %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: - store ptr @.str1372, ptr %t1 + store ptr @.str1359, ptr %t1 br label %ifend2 ifend2: %t8 = load ptr, ptr %t0 @@ -19217,30 +19140,30 @@ then3: store ptr %t19, ptr %t20 %t21 = call ptr @fn_nreg() store ptr %t21, ptr %t22 - call void @fn_emit(ptr @.str1373) + call void @fn_emit(ptr @.str1360) %t23 = load ptr, ptr %t22 call void @fn_emit(ptr %t23) - call void @fn_emit(ptr @.str1374) + call void @fn_emit(ptr @.str1361) %t24 = load ptr, ptr %t20 call void @fn_emit(ptr %t24) - call void @fn_emit(ptr @.str1375) + call void @fn_emit(ptr @.str1362) %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 @.str1376) + call void @fn_emit(ptr @.str1363) %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 @.str1377) - call void @fn_emit(ptr @.str1378) + call void @fn_emit(ptr @.str1364) + call void @fn_emit(ptr @.str1365) %t31 = load ptr, ptr %t1 call void @fn_emit(ptr %t31) - call void @fn_emit(ptr @.str1379) + call void @fn_emit(ptr @.str1366) %t32 = load ptr, ptr %t22 call void @fn_emit(ptr %t32) - call void @fn_emit(ptr @.str1380) + call void @fn_emit(ptr @.str1367) store ptr null, ptr %t33 %t34 = load ptr, ptr %t0 %t35 = getelementptr inbounds %Cmp_Node, ptr %t34, i32 0, i32 2 @@ -19274,37 +19197,37 @@ then9: store i32 %t52, ptr %t53 %t54 = call ptr @fn_nreg() store ptr %t54, ptr %t55 - call void @fn_emit(ptr @.str1381) + call void @fn_emit(ptr @.str1368) %t56 = load ptr, ptr %t55 call void @fn_emit(ptr %t56) - call void @fn_emit(ptr @.str1382) + call void @fn_emit(ptr @.str1369) %t57 = load ptr, ptr %t20 call void @fn_emit(ptr %t57) - call void @fn_emit(ptr @.str1383) + call void @fn_emit(ptr @.str1370) %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 @.str1384) + call void @fn_emit(ptr @.str1371) %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 @.str1385) + call void @fn_emit(ptr @.str1372) %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 @.str1386) - %t67 = call ptr @fn_emit_alloca(ptr @.str1387) + call void @fn_emit(ptr @.str1373) + %t67 = call ptr @fn_emit_alloca(ptr @.str1374) store ptr %t67, ptr %t68 - call void @fn_emit(ptr @.str1388) + call void @fn_emit(ptr @.str1375) %t69 = load ptr, ptr %t55 call void @fn_emit(ptr %t69) - call void @fn_emit(ptr @.str1389) + call void @fn_emit(ptr @.str1376) %t70 = load ptr, ptr %t68 call void @fn_emit(ptr %t70) - call void @fn_emit(ptr @.str1390) + call void @fn_emit(ptr @.str1377) %t71 = load ptr, ptr %t0 %t72 = getelementptr inbounds %Cmp_Node, ptr %t71, i32 0, i32 1 %t73 = load ptr, ptr %t72 @@ -19321,7 +19244,7 @@ then9: ifend11: br label %ifend5 else4: - store ptr @.str1391, ptr %t80 + store ptr @.str1378, ptr %t80 %t81 = load ptr, ptr %t0 %t82 = getelementptr inbounds %Cmp_Node, ptr %t81, i32 0, i32 1 %t83 = load ptr, ptr %t82 @@ -19329,20 +19252,20 @@ else4: %t85 = icmp ne i32 %t84, 0 br i1 %t85, label %then12, label %ifend14 then12: - store ptr @.str1392, ptr %t80 + store ptr @.str1379, ptr %t80 br label %ifend14 ifend14: - call void @fn_emit(ptr @.str1393) + call void @fn_emit(ptr @.str1380) %t86 = load ptr, ptr %t1 call void @fn_emit(ptr %t86) - call void @fn_emit(ptr @.str1394) + call void @fn_emit(ptr @.str1381) %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 @.str1395) + call void @fn_emit(ptr @.str1382) br label %ifend5 ifend5: br label %ret @@ -19362,7 +19285,7 @@ entry: call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself - store ptr @.str1396, ptr @g_ret_ty + store ptr @.str1383, ptr @g_ret_ty %t1 = call ptr @fn_buf_new() store ptr %t1, ptr %t2 %t3 = call ptr @fn_buf_new() @@ -19381,25 +19304,25 @@ entry: %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str1397) + call void @fn_emit(ptr @.str1384) br label %ifend2 ifend2: - call void @fn_emit(ptr @.str1398) + call void @fn_emit(ptr @.str1385) %t14 = load ptr, ptr %t5 store ptr %t14, ptr @g_code - call void @fn_emit(ptr @.str1399) + call void @fn_emit(ptr @.str1386) %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 @.str1400) + call void @fn_emit(ptr @.str1387) %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 @.str1401) + call void @fn_emit(ptr @.str1388) br label %ret ret: ret void @@ -19462,43 +19385,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_str_concat(ptr @.str1402, ptr %t35) + %t36 = call ptr @fn_str_concat(ptr @.str1389, ptr %t35) %t37 = call ptr @fn_emit_bind(ptr %t36) store ptr %t37, ptr %t38 %t39 = load ptr, ptr %t38 - %t40 = call ptr @fn_str_concat(ptr @.str1403, ptr %t39) - %t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str1404) + %t40 = call ptr @fn_str_concat(ptr @.str1390, ptr %t39) + %t41 = call ptr @fn_str_concat(ptr %t40, ptr @.str1391) %t42 = call ptr @fn_emit_bind(ptr %t41) store ptr %t42, ptr %t43 - %t44 = call ptr @fn_lbl(ptr @.str1405) + %t44 = call ptr @fn_lbl(ptr @.str1392) store ptr %t44, ptr %t45 - %t46 = call ptr @fn_lbl(ptr @.str1406) + %t46 = call ptr @fn_lbl(ptr @.str1393) store ptr %t46, ptr %t47 - call void @fn_emit(ptr @.str1407) + call void @fn_emit(ptr @.str1394) %t48 = load ptr, ptr %t43 call void @fn_emit(ptr %t48) - call void @fn_emit(ptr @.str1408) + call void @fn_emit(ptr @.str1395) %t49 = load ptr, ptr %t45 call void @fn_emit(ptr %t49) - call void @fn_emit(ptr @.str1409) + call void @fn_emit(ptr @.str1396) %t50 = load ptr, ptr %t47 call void @fn_emit(ptr %t50) - call void @fn_emit(ptr @.str1410) + call void @fn_emit(ptr @.str1397) %t51 = load ptr, ptr %t45 call void @fn_emit(ptr %t51) - call void @fn_emit(ptr @.str1411) + call void @fn_emit(ptr @.str1398) %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 @.str1412) - call void @fn_emit(ptr @.str1413) + call void @fn_emit(ptr @.str1399) + call void @fn_emit(ptr @.str1400) %t55 = load ptr, ptr %t47 call void @fn_emit(ptr %t55) - call void @fn_emit(ptr @.str1414) + call void @fn_emit(ptr @.str1401) %t56 = load ptr, ptr %t47 call void @fn_emit(ptr %t56) - call void @fn_emit(ptr @.str1415) + call void @fn_emit(ptr @.str1402) br label %ifend7 ifend7: %t57 = load i32, ptr %t1 @@ -19548,7 +19471,7 @@ wbody1: call void @fn_loc_reset() store i32 0, ptr @g_nloop store i32 0, ptr @g_nself - store ptr @.str1416, ptr @g_ret_ty + store ptr @.str1403, ptr @g_ret_ty %t20 = call ptr @fn_buf_new() store ptr %t20, ptr %t21 %t22 = call ptr @fn_buf_new() @@ -19558,7 +19481,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 @.str1417) + call void @fn_emit_bind_props(ptr %t26, ptr @.str1404) %t27 = load ptr, ptr %t14 %t28 = getelementptr inbounds %Cmp_Node, ptr %t27, i32 0, i32 4 %t29 = load ptr, ptr %t28 @@ -19569,25 +19492,25 @@ wbody1: %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then3, label %ifend5 then3: - call void @fn_emit(ptr @.str1418) + call void @fn_emit(ptr @.str1405) br label %ifend5 ifend5: - call void @fn_emit(ptr @.str1419) + call void @fn_emit(ptr @.str1406) %t34 = load ptr, ptr %t24 store ptr %t34, ptr @g_code - call void @fn_emit(ptr @.str1420) + call void @fn_emit(ptr @.str1407) %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 @.str1421) + call void @fn_emit(ptr @.str1408) %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 @.str1422) + call void @fn_emit(ptr @.str1409) %t42 = load i32, ptr %t0 %t43 = add i32 %t42, 1 store i32 %t43, ptr %t0 @@ -19647,93 +19570,93 @@ ifend5: br label %wcond0 wend2: call void @fn_emit_despawn_hooks() - call void @fn_emit(ptr @.str1423) - call void @fn_emit(ptr @.str1424) - call void @fn_emit(ptr @.str1425) - %t27 = call ptr @fn_find_fn(ptr @.str1426) + call void @fn_emit(ptr @.str1410) + call void @fn_emit(ptr @.str1411) + call void @fn_emit(ptr @.str1412) + %t27 = call ptr @fn_find_fn(ptr @.str1413) %t28 = icmp ne ptr %t27, null %t29 = zext i1 %t28 to i32 %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then6, label %ifend8 then6: - call void @fn_emit(ptr @.str1427) + call void @fn_emit(ptr @.str1414) br label %ifend8 ifend8: - call void @fn_emit_calls_for_phase(ptr @.str1428) - call void @fn_emit(ptr @.str1429) - call void @fn_emit(ptr @.str1430) - %t31 = call ptr @fn_emit_bind(ptr @.str1431) + call void @fn_emit_calls_for_phase(ptr @.str1415) + call void @fn_emit(ptr @.str1416) + call void @fn_emit(ptr @.str1417) + %t31 = call ptr @fn_emit_bind(ptr @.str1418) store ptr %t31, ptr %t32 %t33 = load ptr, ptr %t32 - %t34 = call ptr @fn_str_concat(ptr @.str1432, ptr %t33) - %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str1433) + %t34 = call ptr @fn_str_concat(ptr @.str1419, ptr %t33) + %t35 = call ptr @fn_str_concat(ptr %t34, ptr @.str1420) %t36 = call ptr @fn_emit_bind(ptr %t35) store ptr %t36, ptr %t37 - %t38 = call ptr @fn_find_fn(ptr @.str1434) + %t38 = call ptr @fn_find_fn(ptr @.str1421) %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: - %t42 = call ptr @fn_emit_bind(ptr @.str1435) + %t42 = call ptr @fn_emit_bind(ptr @.str1422) store ptr %t42, ptr %t43 %t44 = load ptr, ptr %t43 - %t45 = call ptr @fn_str_concat(ptr @.str1436, ptr %t44) - %t46 = call ptr @fn_str_concat(ptr %t45, ptr @.str1437) + %t45 = call ptr @fn_str_concat(ptr @.str1423, ptr %t44) + %t46 = call ptr @fn_str_concat(ptr %t45, ptr @.str1424) %t47 = call ptr @fn_emit_bind(ptr %t46) store ptr %t47, ptr %t48 %t49 = load ptr, ptr %t37 - %t50 = call ptr @fn_str_concat(ptr @.str1438, ptr %t49) - %t51 = call ptr @fn_str_concat(ptr %t50, ptr @.str1439) + %t50 = call ptr @fn_str_concat(ptr @.str1425, ptr %t49) + %t51 = call ptr @fn_str_concat(ptr %t50, ptr @.str1426) %t52 = load ptr, ptr %t48 %t53 = call ptr @fn_str_concat(ptr %t51, ptr %t52) %t54 = call ptr @fn_emit_bind(ptr %t53) store ptr %t54, ptr %t55 - call void @fn_emit(ptr @.str1440) + call void @fn_emit(ptr @.str1427) %t56 = load ptr, ptr %t55 call void @fn_emit(ptr %t56) - call void @fn_emit(ptr @.str1441) + call void @fn_emit(ptr @.str1428) br label %ifend11 else10: - call void @fn_emit(ptr @.str1442) + call void @fn_emit(ptr @.str1429) %t57 = load ptr, ptr %t37 call void @fn_emit(ptr %t57) - call void @fn_emit(ptr @.str1443) + call void @fn_emit(ptr @.str1430) br label %ifend11 ifend11: - call void @fn_emit(ptr @.str1444) - %t58 = call ptr @fn_find_fn(ptr @.str1445) + call void @fn_emit(ptr @.str1431) + %t58 = call ptr @fn_find_fn(ptr @.str1432) %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: - %t62 = call ptr @fn_emit_bind(ptr @.str1446) + %t62 = call ptr @fn_emit_bind(ptr @.str1433) store ptr %t62, ptr %t63 - call void @fn_emit(ptr @.str1447) + call void @fn_emit(ptr @.str1434) %t64 = load ptr, ptr %t63 call void @fn_emit(ptr %t64) - call void @fn_emit(ptr @.str1448) + call void @fn_emit(ptr @.str1435) br label %ifend14 ifend14: - call void @fn_emit_calls_for_phase(ptr @.str1449) - call void @fn_emit_calls_for_phase(ptr @.str1450) - call void @fn_emit_calls_for_phase(ptr @.str1451) - call void @fn_emit_calls_for_phase(ptr @.str1452) - call void @fn_emit_calls_for_phase(ptr @.str1453) - call void @fn_emit(ptr @.str1454) - call void @fn_emit(ptr @.str1455) - call void @fn_emit_calls_for_phase(ptr @.str1456) - %t65 = call ptr @fn_find_fn(ptr @.str1457) + call void @fn_emit_calls_for_phase(ptr @.str1436) + call void @fn_emit_calls_for_phase(ptr @.str1437) + call void @fn_emit_calls_for_phase(ptr @.str1438) + call void @fn_emit_calls_for_phase(ptr @.str1439) + call void @fn_emit_calls_for_phase(ptr @.str1440) + call void @fn_emit(ptr @.str1441) + call void @fn_emit(ptr @.str1442) + call void @fn_emit_calls_for_phase(ptr @.str1443) + %t65 = call ptr @fn_find_fn(ptr @.str1444) %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 @.str1458) + call void @fn_emit(ptr @.str1445) br label %ifend17 ifend17: - call void @fn_emit(ptr @.str1459) + call void @fn_emit(ptr @.str1446) br label %ret ret: ret void @@ -19760,8 +19683,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_str_concat(ptr @.str1460, ptr %t8) - %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str1461) + %t9 = call ptr @fn_str_concat(ptr @.str1447, ptr %t8) + %t10 = call ptr @fn_str_concat(ptr %t9, ptr @.str1448) %t11 = call ptr @fn_emit_bind(ptr %t10) store ptr %t11, ptr %t12 %t13 = load i32, ptr @g_nmach @@ -19815,7 +19738,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 @.str1462) + %t48 = call ptr @fn_lbl(ptr @.str1449) store ptr %t48, ptr %t49 store i32 0, ptr %t50 br label %wcond5 @@ -19846,31 +19769,31 @@ wbody6: %t72 = call ptr @fn_emit_expr(ptr %t71) store ptr %t72, ptr %t73 %t74 = load ptr, ptr %t12 - %t75 = call ptr @fn_str_concat(ptr @.str1463, ptr %t74) - %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str1464) + %t75 = call ptr @fn_str_concat(ptr @.str1450, ptr %t74) + %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str1451) %t77 = load ptr, ptr %t73 %t78 = getelementptr inbounds %Cmp_Val, ptr %t77, i32 0, i32 0 %t79 = load ptr, ptr %t78 %t80 = call ptr @fn_str_concat(ptr %t76, ptr %t79) %t81 = call ptr @fn_emit_bind(ptr %t80) store ptr %t81, ptr %t82 - %t83 = call ptr @fn_lbl(ptr @.str1465) + %t83 = call ptr @fn_lbl(ptr @.str1452) store ptr %t83, ptr %t84 - %t85 = call ptr @fn_lbl(ptr @.str1466) + %t85 = call ptr @fn_lbl(ptr @.str1453) store ptr %t85, ptr %t86 - call void @fn_emit(ptr @.str1467) + call void @fn_emit(ptr @.str1454) %t87 = load ptr, ptr %t82 call void @fn_emit(ptr %t87) - call void @fn_emit(ptr @.str1468) + call void @fn_emit(ptr @.str1455) %t88 = load ptr, ptr %t84 call void @fn_emit(ptr %t88) - call void @fn_emit(ptr @.str1469) + call void @fn_emit(ptr @.str1456) %t89 = load ptr, ptr %t86 call void @fn_emit(ptr %t89) - call void @fn_emit(ptr @.str1470) + call void @fn_emit(ptr @.str1457) %t90 = load ptr, ptr %t84 call void @fn_emit(ptr %t90) - call void @fn_emit(ptr @.str1471) + call void @fn_emit(ptr @.str1458) store i32 0, ptr @g_g_term %t91 = load ptr, ptr %t68 %t92 = getelementptr inbounds %Cmp_Node, ptr %t91, i32 0, i32 4 @@ -19882,15 +19805,15 @@ wbody6: %t97 = icmp ne i32 %t96, 0 br i1 %t97, label %then8, label %ifend10 then8: - call void @fn_emit(ptr @.str1472) + call void @fn_emit(ptr @.str1459) %t98 = load ptr, ptr %t49 call void @fn_emit(ptr %t98) - call void @fn_emit(ptr @.str1473) + call void @fn_emit(ptr @.str1460) br label %ifend10 ifend10: %t99 = load ptr, ptr %t86 call void @fn_emit(ptr %t99) - call void @fn_emit(ptr @.str1474) + call void @fn_emit(ptr @.str1461) store i32 0, ptr @g_g_term %t100 = load i32, ptr %t50 %t101 = add i32 %t100, 1 @@ -19903,15 +19826,15 @@ wend7: %t105 = icmp ne i32 %t104, 0 br i1 %t105, label %then11, label %ifend13 then11: - call void @fn_emit(ptr @.str1475) + call void @fn_emit(ptr @.str1462) %t106 = load ptr, ptr %t49 call void @fn_emit(ptr %t106) - call void @fn_emit(ptr @.str1476) + call void @fn_emit(ptr @.str1463) br label %ifend13 ifend13: %t107 = load ptr, ptr %t49 call void @fn_emit(ptr %t107) - call void @fn_emit(ptr @.str1477) + call void @fn_emit(ptr @.str1464) store i32 0, ptr @g_g_term %t108 = load i32, ptr @g_nmach %t109 = sub i32 %t108, 1 @@ -19936,7 +19859,7 @@ entry: %t4 = icmp ne i32 %t3, 0 br i1 %t4, label %then0, label %ifend2 then0: - call void @fn_perr(ptr @.str1478) + call void @fn_perr(ptr @.str1465) br label %ifend2 ifend2: %t5 = load ptr, ptr @g_mach_stk @@ -20004,7 +19927,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_str_concat(ptr @.str1479, ptr %t55) + %t56 = call ptr @fn_str_concat(ptr @.str1466, ptr %t55) call void @fn_perr(ptr %t56) br label %ifend11 ifend11: @@ -20018,17 +19941,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 @.str1480) + call void @fn_emit(ptr @.str1467) %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 @.str1481) + call void @fn_emit(ptr @.str1468) %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 @.str1482) + call void @fn_emit(ptr @.str1469) br label %ret ret: ret void @@ -20045,24 +19968,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_str_concat(ptr @.str1483, ptr %t4) + %t5 = call ptr @fn_str_concat(ptr @.str1470, 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 @.str1484) + call void @fn_emit(ptr @.str1471) %t9 = load ptr, ptr %t6 call void @fn_emit(ptr %t9) - call void @fn_emit(ptr @.str1485) + call void @fn_emit(ptr @.str1472) %t10 = load ptr, ptr %t0 call void @fn_emit(ptr %t10) - call void @fn_emit(ptr @.str1486) + call void @fn_emit(ptr @.str1473) %t11 = load ptr, ptr %t1 call void @fn_emit(ptr %t11) - call void @fn_emit(ptr @.str1487) + call void @fn_emit(ptr @.str1474) %t12 = load ptr, ptr %t2 call void @fn_emit(ptr %t12) - call void @fn_emit(ptr @.str1488) + call void @fn_emit(ptr @.str1475) br label %ret ret: ret void @@ -20081,19 +20004,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 @.str1489, ptr @.str1490) + call void @fn_emit_io(ptr %t3, ptr @.str1476, ptr @.str1477) %t4 = load ptr, ptr %t0 - call void @fn_emit_io(ptr %t4, ptr @.str1491, ptr @.str1492) - call void @fn_emit(ptr @.str1493) + call void @fn_emit_io(ptr %t4, ptr @.str1478, ptr @.str1479) + call void @fn_emit(ptr @.str1480) %t5 = load ptr, ptr %t2 call void @fn_emit(ptr %t5) - call void @fn_emit(ptr @.str1494) + call void @fn_emit(ptr @.str1481) %t6 = load ptr, ptr %t0 - call void @fn_emit_io(ptr %t6, ptr @.str1495, ptr @.str1496) + call void @fn_emit_io(ptr %t6, ptr @.str1482, ptr @.str1483) %t7 = load ptr, ptr %t0 - call void @fn_emit_io(ptr %t7, ptr @.str1497, ptr @.str1498) + call void @fn_emit_io(ptr %t7, ptr @.str1484, ptr @.str1485) %t8 = load ptr, ptr %t0 - call void @fn_emit_io(ptr %t8, ptr @.str1499, ptr @.str1500) + call void @fn_emit_io(ptr %t8, ptr @.str1486, ptr @.str1487) store i32 0, ptr %t9 br label %wcond0 wcond0: @@ -20128,8 +20051,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_str_concat(ptr @.str1501, ptr %t36) - call void @fn_emit_io(ptr %t28, ptr %t37, ptr @.str1502) + %t37 = call ptr @fn_str_concat(ptr @.str1488, ptr %t36) + call void @fn_emit_io(ptr %t28, ptr %t37, ptr @.str1489) br label %ifend5 ifend5: %t38 = load i32, ptr %t9 @@ -20174,26 +20097,26 @@ then9: store ptr %t66, ptr %t67 %t68 = load i32, ptr %t40 %t69 = call ptr @fn_itoa(i32 %t68) - %t70 = call ptr @fn_str_concat(ptr @.str1503, ptr %t69) + %t70 = call ptr @fn_str_concat(ptr @.str1490, ptr %t69) store ptr %t70, ptr %t71 - call void @fn_emit(ptr @.str1504) + call void @fn_emit(ptr @.str1491) %t72 = load ptr, ptr %t71 call void @fn_emit(ptr %t72) - call void @fn_emit(ptr @.str1505) + call void @fn_emit(ptr @.str1492) %t73 = load ptr, ptr %t67 call void @fn_emit(ptr %t73) - call void @fn_emit(ptr @.str1506) + call void @fn_emit(ptr @.str1493) %t74 = load ptr, ptr %t2 call void @fn_emit(ptr %t74) - call void @fn_emit(ptr @.str1507) + call void @fn_emit(ptr @.str1494) %t75 = load ptr, ptr %t0 %t76 = load ptr, ptr %t67 - %t77 = call ptr @fn_str_concat(ptr @.str1508, ptr %t76) + %t77 = call ptr @fn_str_concat(ptr @.str1495, 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_str_concat(ptr @.str1509, ptr %t80) + %t81 = call ptr @fn_str_concat(ptr @.str1496, ptr %t80) %t82 = load ptr, ptr %t2 call void @fn_emit_io(ptr %t79, ptr %t81, ptr %t82) %t83 = load i32, ptr %t40 @@ -20215,43 +20138,43 @@ define void @fn_emit_snapshot() { entry: %t3 = alloca i32 %t7 = alloca i32 - call void @fn_emith(ptr @.str1510) - call void @fn_emith(ptr @.str1511) - call void @fn_emith(ptr @.str1512) - %t0 = call ptr @fn_find_fn(ptr @.str1513) + call void @fn_emith(ptr @.str1497) + call void @fn_emith(ptr @.str1498) + call void @fn_emith(ptr @.str1499) + %t0 = call ptr @fn_find_fn(ptr @.str1500) %t1 = icmp ne ptr %t0, null %t2 = zext i1 %t1 to i32 store i32 %t2, ptr %t3 - %t4 = call ptr @fn_find_fn(ptr @.str1514) + %t4 = call ptr @fn_find_fn(ptr @.str1501) %t5 = icmp ne ptr %t4, null %t6 = zext i1 %t5 to i32 store i32 %t6, ptr %t7 - call void @fn_emit(ptr @.str1515) - call void @fn_emit(ptr @.str1516) - call void @fn_emit(ptr @.str1517) - call void @fn_emit(ptr @.str1518) - call void @fn_emit_snapshot_blocks(ptr @.str1519) + call void @fn_emit(ptr @.str1502) + call void @fn_emit(ptr @.str1503) + call void @fn_emit(ptr @.str1504) + call void @fn_emit(ptr @.str1505) + call void @fn_emit_snapshot_blocks(ptr @.str1506) %t8 = load i32, ptr %t3 %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str1520) + call void @fn_emit(ptr @.str1507) br label %ifend2 ifend2: - call void @fn_emit(ptr @.str1521) - call void @fn_emit(ptr @.str1522) - call void @fn_emit(ptr @.str1523) - call void @fn_emit(ptr @.str1524) - call void @fn_emit(ptr @.str1525) - call void @fn_emit_snapshot_blocks(ptr @.str1526) + call void @fn_emit(ptr @.str1508) + call void @fn_emit(ptr @.str1509) + call void @fn_emit(ptr @.str1510) + call void @fn_emit(ptr @.str1511) + call void @fn_emit(ptr @.str1512) + call void @fn_emit_snapshot_blocks(ptr @.str1513) %t10 = load i32, ptr %t7 %t11 = icmp ne i32 %t10, 0 br i1 %t11, label %then3, label %ifend5 then3: - call void @fn_emit(ptr @.str1527) + call void @fn_emit(ptr @.str1514) br label %ifend5 ifend5: - call void @fn_emit(ptr @.str1528) + call void @fn_emit(ptr @.str1515) br label %ret ret: ret void @@ -20268,7 +20191,7 @@ entry: %t3 = load ptr, ptr %t2 store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t4 - %t6 = call i32 @fn_str_eq(ptr %t5, ptr @.str1529) + %t6 = call i32 @fn_str_eq(ptr %t5, ptr @.str1516) %t7 = icmp ne i32 %t6, 0 br i1 %t7, label %then0, label %ifend2 then0: @@ -20276,7 +20199,7 @@ then0: br label %ret ifend2: %t8 = load ptr, ptr %t4 - %t9 = call i32 @fn_str_eq(ptr %t8, ptr @.str1530) + %t9 = call i32 @fn_str_eq(ptr %t8, ptr @.str1517) %t10 = icmp ne i32 %t9, 0 br i1 %t10, label %then3, label %ifend5 then3: @@ -20284,7 +20207,7 @@ then3: br label %ret ifend5: %t11 = load ptr, ptr %t4 - %t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str1531) + %t12 = call i32 @fn_str_eq(ptr %t11, ptr @.str1518) %t13 = icmp ne i32 %t12, 0 br i1 %t13, label %then6, label %ifend8 then6: @@ -20292,7 +20215,7 @@ then6: br label %ret ifend8: %t14 = load ptr, ptr %t4 - %t15 = call i32 @fn_str_eq(ptr %t14, ptr @.str1532) + %t15 = call i32 @fn_str_eq(ptr %t14, ptr @.str1519) %t16 = icmp ne i32 %t15, 0 br i1 %t16, label %then9, label %ifend11 then9: @@ -20300,7 +20223,7 @@ then9: br label %ret ifend11: %t17 = load ptr, ptr %t4 - %t18 = call i32 @fn_str_eq(ptr %t17, ptr @.str1533) + %t18 = call i32 @fn_str_eq(ptr %t17, ptr @.str1520) %t19 = icmp ne i32 %t18, 0 br i1 %t19, label %then12, label %ifend14 then12: @@ -20308,7 +20231,7 @@ then12: br label %ret ifend14: %t20 = load ptr, ptr %t4 - %t21 = call i32 @fn_str_eq(ptr %t20, ptr @.str1534) + %t21 = call i32 @fn_str_eq(ptr %t20, ptr @.str1521) %t22 = icmp ne i32 %t21, 0 br i1 %t22, label %then15, label %ifend17 then15: @@ -20316,7 +20239,7 @@ then15: br label %ret ifend17: %t23 = load ptr, ptr %t4 - %t24 = call i32 @fn_str_eq(ptr %t23, ptr @.str1535) + %t24 = call i32 @fn_str_eq(ptr %t23, ptr @.str1522) %t25 = icmp ne i32 %t24, 0 br i1 %t25, label %then18, label %ifend20 then18: @@ -20814,7 +20737,7 @@ 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 @.str1536) + %t78 = call ptr @fn_ui_prop(ptr %t77, ptr @.str1523) store ptr %t78, ptr %t79 %t80 = load ptr, ptr %t79 %t81 = icmp ne ptr %t80, null @@ -20943,18 +20866,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 @.str1537) + call void @fn_emit(ptr @.str1524) %t3 = load i32, ptr %t0 %t4 = call ptr @fn_itoa(i32 %t3) call void @fn_emit(ptr %t4) - call void @fn_emit(ptr @.str1538) + call void @fn_emit(ptr @.str1525) %t5 = load i32, ptr %t1 %t6 = call ptr @fn_itoa(i32 %t5) call void @fn_emit(ptr %t6) - call void @fn_emit(ptr @.str1539) + call void @fn_emit(ptr @.str1526) %t7 = load ptr, ptr %t2 call void @fn_emit(ptr %t7) - call void @fn_emit(ptr @.str1540) + call void @fn_emit(ptr @.str1527) br label %ret ret: ret void @@ -20966,7 +20889,7 @@ entry: %t0 = alloca ptr store ptr %arg_k, ptr %t0 %t1 = load ptr, ptr %t0 - %t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str1541) + %t2 = call i32 @fn_str_eq(ptr %t1, ptr @.str1528) %t3 = icmp ne i32 %t2, 0 br i1 %t3, label %then0, label %ifend2 then0: @@ -20974,7 +20897,7 @@ then0: br label %ret ifend2: %t4 = load ptr, ptr %t0 - %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str1542) + %t5 = call i32 @fn_str_eq(ptr %t4, ptr @.str1529) %t6 = icmp ne i32 %t5, 0 br i1 %t6, label %then3, label %ifend5 then3: @@ -20982,7 +20905,7 @@ then3: br label %ret ifend5: %t7 = load ptr, ptr %t0 - %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str1543) + %t8 = call i32 @fn_str_eq(ptr %t7, ptr @.str1530) %t9 = icmp ne i32 %t8, 0 br i1 %t9, label %then6, label %ifend8 then6: @@ -20990,7 +20913,7 @@ then6: br label %ret ifend8: %t10 = load ptr, ptr %t0 - %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str1544) + %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str1531) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then9, label %ifend11 then9: @@ -20998,7 +20921,7 @@ then9: br label %ret ifend11: %t13 = load ptr, ptr %t0 - %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str1545) + %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str1532) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then12, label %ifend14 then12: @@ -21006,7 +20929,7 @@ then12: br label %ret ifend14: %t16 = load ptr, ptr %t0 - %t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str1546) + %t17 = call i32 @fn_str_eq(ptr %t16, ptr @.str1533) %t18 = icmp ne i32 %t17, 0 br i1 %t18, label %then15, label %ifend17 then15: @@ -21014,7 +20937,7 @@ then15: br label %ret ifend17: %t19 = load ptr, ptr %t0 - %t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str1547) + %t20 = call i32 @fn_str_eq(ptr %t19, ptr @.str1534) %t21 = icmp ne i32 %t20, 0 br i1 %t21, label %then18, label %ifend20 then18: @@ -21022,7 +20945,7 @@ then18: br label %ret ifend20: %t22 = load ptr, ptr %t0 - %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str1548) + %t23 = call i32 @fn_str_eq(ptr %t22, ptr @.str1535) %t24 = icmp ne i32 %t23, 0 br i1 %t24, label %then21, label %ifend23 then21: @@ -21030,7 +20953,7 @@ then21: br label %ret ifend23: %t25 = load ptr, ptr %t0 - %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str1549) + %t26 = call i32 @fn_str_eq(ptr %t25, ptr @.str1536) %t27 = icmp ne i32 %t26, 0 br i1 %t27, label %then24, label %ifend26 then24: @@ -21038,7 +20961,7 @@ then24: br label %ret ifend26: %t28 = load ptr, ptr %t0 - %t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str1550) + %t29 = call i32 @fn_str_eq(ptr %t28, ptr @.str1537) %t30 = icmp ne i32 %t29, 0 br i1 %t30, label %then27, label %ifend29 then27: @@ -21046,7 +20969,7 @@ then27: br label %ret ifend29: %t31 = load ptr, ptr %t0 - %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str1551) + %t32 = call i32 @fn_str_eq(ptr %t31, ptr @.str1538) %t33 = icmp ne i32 %t32, 0 br i1 %t33, label %then30, label %ifend32 then30: @@ -21054,7 +20977,7 @@ then30: br label %ret ifend32: %t34 = load ptr, ptr %t0 - %t35 = call i32 @fn_str_eq(ptr %t34, ptr @.str1552) + %t35 = call i32 @fn_str_eq(ptr %t34, ptr @.str1539) %t36 = icmp ne i32 %t35, 0 br i1 %t36, label %then33, label %ifend35 then33: @@ -21062,7 +20985,7 @@ then33: br label %ret ifend35: %t37 = load ptr, ptr %t0 - %t38 = call i32 @fn_str_eq(ptr %t37, ptr @.str1553) + %t38 = call i32 @fn_str_eq(ptr %t37, ptr @.str1540) %t39 = icmp ne i32 %t38, 0 br i1 %t39, label %then36, label %ifend38 then36: @@ -21070,7 +20993,7 @@ then36: br label %ret ifend38: %t40 = load ptr, ptr %t0 - %t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str1554) + %t41 = call i32 @fn_str_eq(ptr %t40, ptr @.str1541) %t42 = icmp ne i32 %t41, 0 br i1 %t42, label %then39, label %ifend41 then39: @@ -21119,13 +21042,13 @@ entry: store ptr %t3, ptr %t4 %t5 = load ptr, ptr %t1 store ptr %t5, ptr @g_code - call void @fn_emit(ptr @.str1555) + call void @fn_emit(ptr @.str1542) %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 @.str1556) + call void @fn_emit(ptr @.str1543) store i32 0, ptr %t10 br label %wcond0 wcond0: @@ -21168,7 +21091,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 @.str1557) + call void @fn_ll_ui_set(i32 %t43, i32 17, ptr @.str1544) br label %ifend5 ifend5: store i32 0, ptr %t44 @@ -21207,7 +21130,7 @@ wbody7: %t73 = load ptr, ptr %t72 store ptr %t73, ptr %t74 %t75 = load ptr, ptr %t70 - %t76 = call i32 @fn_str_eq(ptr %t75, ptr @.str1558) + %t76 = call i32 @fn_str_eq(ptr %t75, ptr @.str1545) %t77 = icmp ne i32 %t76, 0 br i1 %t77, label %then9, label %ifend11 then9: @@ -21217,34 +21140,34 @@ then9: br label %wcond6 ifend11: %t80 = load ptr, ptr %t70 - %t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str1559) + %t81 = call i32 @fn_str_eq(ptr %t80, ptr @.str1546) %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 @.str1560) + call void @fn_emit(ptr @.str1547) %t86 = load i32, ptr %t10 %t87 = call ptr @fn_itoa(i32 %t86) call void @fn_emit(ptr %t87) - call void @fn_emit(ptr @.str1561) + call void @fn_emit(ptr @.str1548) %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 @.str1562) + call void @fn_emit(ptr @.str1549) br label %ifend14 else13: %t92 = load ptr, ptr %t70 - %t93 = call i32 @fn_str_eq(ptr %t92, ptr @.str1563) + %t93 = call i32 @fn_str_eq(ptr %t92, ptr @.str1550) %t94 = icmp ne i32 %t93, 0 %t95 = zext i1 %t94 to i32 store i32 %t95, ptr %t91 br i1 %t94, label %scend16, label %sc15 sc15: %t96 = load ptr, ptr %t70 - %t97 = call i32 @fn_str_eq(ptr %t96, ptr @.str1564) + %t97 = call i32 @fn_str_eq(ptr %t96, ptr @.str1551) %t98 = icmp ne i32 %t97, 0 %t99 = zext i1 %t98 to i32 store i32 %t99, ptr %t91 @@ -21260,12 +21183,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_str_concat(ptr @.str1565, ptr %t107) - %t109 = call ptr @fn_str_concat(ptr %t108, ptr @.str1566) + %t108 = call ptr @fn_str_concat(ptr @.str1552, ptr %t107) + %t109 = call ptr @fn_str_concat(ptr %t108, ptr @.str1553) %t110 = call ptr @fn_emit_bind(ptr %t109) store ptr %t110, ptr %t111 %t112 = load ptr, ptr %t70 - %t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str1567) + %t113 = call i32 @fn_str_eq(ptr %t112, ptr @.str1554) %t114 = icmp ne i32 %t113, 0 br i1 %t114, label %then20, label %else21 then20: @@ -21282,7 +21205,7 @@ ifend22: br label %ifend19 else18: %t119 = load ptr, ptr %t70 - %t120 = call i32 @fn_str_eq(ptr %t119, ptr @.str1568) + %t120 = call i32 @fn_str_eq(ptr %t119, ptr @.str1555) %t121 = icmp ne i32 %t120, 0 br i1 %t121, label %then23, label %else24 then23: @@ -21298,7 +21221,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_str_eq(ptr %t131, ptr @.str1569) + %t132 = call i32 @fn_str_eq(ptr %t131, ptr @.str1556) %t133 = icmp ne i32 %t132, 0 br i1 %t133, label %then29, label %ifend31 then29: @@ -21308,7 +21231,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_str_eq(ptr %t136, ptr @.str1570) + %t137 = call i32 @fn_str_eq(ptr %t136, ptr @.str1557) %t138 = icmp ne i32 %t137, 0 br i1 %t138, label %then32, label %ifend34 then32: @@ -21372,7 +21295,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 @.str1571) + call void @fn_ll_ui_set(i32 %t177, i32 6, ptr @.str1558) br label %ifend42 ifend42: br label %ifend37 @@ -21395,14 +21318,14 @@ wend8: wend2: %t182 = load ptr, ptr %t4 store ptr %t182, ptr @g_code - call void @fn_emit(ptr @.str1572) + call void @fn_emit(ptr @.str1559) %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 @.str1573) + call void @fn_emit(ptr @.str1560) br label %ret ret: ret void @@ -21433,7 +21356,7 @@ wbody1: %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then3, label %ifend5 then3: - call void @fn_emit(ptr @.str1574) + call void @fn_emit(ptr @.str1561) br label %ifend5 ifend5: %t15 = load ptr, ptr %t0 @@ -21448,7 +21371,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 @.str1575) + call void @fn_emit(ptr @.str1562) %t26 = load ptr, ptr %t0 %t27 = getelementptr inbounds %Cmp_Node, ptr %t26, i32 0, i32 7 %t28 = load ptr, ptr %t27 @@ -21502,19 +21425,19 @@ entry: %t11 = call ptr @fn_llty(ptr %t10) store ptr %t11, ptr %t12 %t13 = load ptr, ptr %t12 - %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str1576) + %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str1563) %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 @.str1577) + call void @fn_buf_puts(ptr %t18, ptr @.str1564) %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 @.str1578) + call void @fn_buf_puts(ptr %t21, ptr @.str1565) br label %ifend2 ifend2: store i32 0, ptr %t22 @@ -21546,21 +21469,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 @.str1579) + call void @fn_emit(ptr @.str1566) %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 @.str1580) + call void @fn_emit(ptr @.str1567) %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 @.str1581) + call void @fn_emit(ptr @.str1568) %t54 = load ptr, ptr %t46 call void @fn_emit(ptr %t54) - call void @fn_emit(ptr @.str1582) + call void @fn_emit(ptr @.str1569) %t55 = load ptr, ptr %t40 %t56 = getelementptr inbounds %Cmp_Node, ptr %t55, i32 0, i32 1 %t57 = load ptr, ptr %t56 @@ -21584,53 +21507,53 @@ wend5: %t70 = icmp ne i32 %t69, 0 br i1 %t70, label %then6, label %ifend8 then6: - call void @fn_emit(ptr @.str1583) + call void @fn_emit(ptr @.str1570) br label %ifend8 ifend8: - call void @fn_emit(ptr @.str1584) + call void @fn_emit(ptr @.str1571) %t71 = load ptr, ptr %t12 - %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str1585) + %t72 = call i32 @fn_str_eq(ptr %t71, ptr @.str1572) %t73 = icmp ne i32 %t72, 0 br i1 %t73, label %then9, label %else10 then9: - call void @fn_emit(ptr @.str1586) + call void @fn_emit(ptr @.str1573) br label %ifend11 else10: %t74 = load ptr, ptr %t12 - %t75 = call ptr @fn_str_concat(ptr @.str1587, ptr %t74) - %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str1588) + %t75 = call ptr @fn_str_concat(ptr @.str1574, ptr %t74) + %t76 = call ptr @fn_str_concat(ptr %t75, ptr @.str1575) %t77 = call ptr @fn_emit_bind(ptr %t76) store ptr %t77, ptr %t78 - call void @fn_emit(ptr @.str1589) + call void @fn_emit(ptr @.str1576) %t79 = load ptr, ptr %t12 call void @fn_emit(ptr %t79) - call void @fn_emit(ptr @.str1590) + call void @fn_emit(ptr @.str1577) %t80 = load ptr, ptr %t78 call void @fn_emit(ptr %t80) - call void @fn_emit(ptr @.str1591) + call void @fn_emit(ptr @.str1578) br label %ifend11 ifend11: %t81 = load ptr, ptr %t8 store ptr %t81, ptr @g_code - call void @fn_emit(ptr @.str1592) + call void @fn_emit(ptr @.str1579) %t82 = load ptr, ptr %t12 call void @fn_emit(ptr %t82) - call void @fn_emit(ptr @.str1593) + call void @fn_emit(ptr @.str1580) %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 @.str1594) + call void @fn_emit(ptr @.str1581) %t86 = load ptr, ptr %t0 call void @fn_emit_params_sig(ptr %t86) - call void @fn_emit(ptr @.str1595) + call void @fn_emit(ptr @.str1582) %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 @.str1596) + call void @fn_emit(ptr @.str1583) br label %ret ret: ret void @@ -21648,7 +21571,7 @@ entry: store i32 0, ptr @g_g_term call void @fn_loc_reset() store i32 0, ptr @g_nloop - store ptr @.str1597, ptr @g_ret_ty + store ptr @.str1584, ptr @g_ret_ty %t1 = call ptr @fn_buf_new() store ptr %t1, ptr %t2 %t3 = call ptr @fn_buf_new() @@ -21658,10 +21581,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 @.str1598) - call void @fn_emit(ptr @.str1599) - call void @fn_emit(ptr @.str1600) - call void @fn_emit(ptr @.str1601) + call void @fn_buf_puts(ptr %t7, ptr @.str1585) + call void @fn_emit(ptr @.str1586) + call void @fn_emit(ptr @.str1587) + call void @fn_emit(ptr @.str1588) %t8 = load ptr, ptr %t0 %t9 = getelementptr inbounds %Cmp_Node, ptr %t8, i32 0, i32 4 %t10 = load ptr, ptr %t9 @@ -21672,26 +21595,26 @@ entry: %t14 = icmp ne i32 %t13, 0 br i1 %t14, label %then0, label %ifend2 then0: - call void @fn_emit(ptr @.str1602) + call void @fn_emit(ptr @.str1589) br label %ifend2 ifend2: - call void @fn_emit(ptr @.str1603) - %t15 = call ptr @fn_emit_bind(ptr @.str1604) + call void @fn_emit(ptr @.str1590) + %t15 = call ptr @fn_emit_bind(ptr @.str1591) store ptr %t15, ptr %t16 - call void @fn_emit(ptr @.str1605) + call void @fn_emit(ptr @.str1592) %t17 = load ptr, ptr %t16 call void @fn_emit(ptr %t17) - call void @fn_emit(ptr @.str1606) + call void @fn_emit(ptr @.str1593) %t18 = load ptr, ptr %t5 store ptr %t18, ptr @g_code - call void @fn_emit(ptr @.str1607) + call void @fn_emit(ptr @.str1594) %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 @.str1608) + call void @fn_emit(ptr @.str1595) br label %ret ret: ret void @@ -21966,7 +21889,7 @@ then0: br label %ret ifend2: %t29 = load ptr, ptr %t0 - %t30 = call ptr @fopen(ptr %t29, ptr @.str1609) + %t30 = call ptr @fopen(ptr %t29, ptr @.str1596) store ptr %t30, ptr %t31 %t32 = load ptr, ptr %t31 %t33 = icmp eq ptr %t32, null @@ -22076,7 +21999,7 @@ then0: %t11 = sub i32 %t10, 6 %t12 = load i32, ptr %t4 %t13 = call ptr @fn_str_slice(ptr %t9, i32 %t11, i32 %t12) - %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str1610) + %t14 = call i32 @fn_str_eq(ptr %t13, ptr @.str1597) %t15 = icmp ne i32 %t14, 0 br i1 %t15, label %then3, label %ifend5 then3: @@ -22162,7 +22085,7 @@ then3: br label %ret ifend5: %t20 = load ptr, ptr %t0 - %t21 = call ptr @fn_str_concat(ptr %t20, ptr @.str1611) + %t21 = call ptr @fn_str_concat(ptr %t20, ptr @.str1598) store ptr %t21, ptr %retval br label %ret ret: @@ -22228,7 +22151,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_str_eq(ptr %t10, ptr @.str1612) + %t11 = call i32 @fn_str_eq(ptr %t10, ptr @.str1599) %t12 = icmp ne i32 %t11, 0 br i1 %t12, label %then0, label %ifend2 then0: @@ -22251,7 +22174,7 @@ wbody4: %t22 = load ptr, ptr %t21 store ptr %t22, ptr %t23 %t24 = load ptr, ptr %t23 - %t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str1613) + %t25 = call i32 @fn_str_eq(ptr %t24, ptr @.str1600) %t26 = icmp ne i32 %t25, 0 br i1 %t26, label %then6, label %else7 then6: @@ -22259,7 +22182,7 @@ then6: br label %ifend8 else7: %t27 = load ptr, ptr %t23 - %t28 = call i32 @fn_str_eq(ptr %t27, ptr @.str1614) + %t28 = call i32 @fn_str_eq(ptr %t27, ptr @.str1601) %t29 = icmp ne i32 %t28, 0 br i1 %t29, label %then9, label %else10 then9: @@ -22267,7 +22190,7 @@ then9: br label %ifend11 else10: %t30 = load ptr, ptr %t23 - %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str1615) + %t31 = call i32 @fn_str_eq(ptr %t30, ptr @.str1602) %t32 = icmp ne i32 %t31, 0 br i1 %t32, label %then12, label %else13 then12: @@ -22275,7 +22198,7 @@ then12: br label %ifend14 else13: %t33 = load ptr, ptr %t23 - %t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str1616) + %t34 = call i32 @fn_str_eq(ptr %t33, ptr @.str1603) %t35 = icmp ne i32 %t34, 0 br i1 %t35, label %then15, label %else16 then15: @@ -22283,7 +22206,7 @@ then15: br label %ifend17 else16: %t36 = load ptr, ptr %t23 - %t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str1617) + %t37 = call i32 @fn_str_eq(ptr %t36, ptr @.str1604) %t38 = icmp ne i32 %t37, 0 br i1 %t38, label %then18, label %else19 then18: @@ -22291,7 +22214,7 @@ then18: br label %ifend20 else19: %t39 = load ptr, ptr %t23 - %t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str1618) + %t40 = call i32 @fn_str_eq(ptr %t39, ptr @.str1605) %t41 = icmp ne i32 %t40, 0 br i1 %t41, label %then21, label %else22 then21: @@ -22299,7 +22222,7 @@ then21: br label %ifend23 else22: %t42 = load ptr, ptr %t23 - %t43 = call i32 @fn_str_eq(ptr %t42, ptr @.str1619) + %t43 = call i32 @fn_str_eq(ptr %t42, ptr @.str1606) %t44 = icmp ne i32 %t43, 0 br i1 %t44, label %then24, label %else25 then24: @@ -22332,8 +22255,8 @@ else25: br i1 %t62, label %then30, label %else31 then30: %t63 = load ptr, ptr %t23 - %t64 = call ptr @fn_str_concat(ptr @.str1620, ptr %t63) - %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str1621) + %t64 = call ptr @fn_str_concat(ptr @.str1607, ptr %t63) + %t65 = call ptr @fn_str_concat(ptr %t64, ptr @.str1608) store ptr %t65, ptr %t66 %t67 = load ptr, ptr @__stderrp %t68 = load ptr, ptr %t66 @@ -22374,7 +22297,7 @@ wend5: %t81 = icmp ne i32 %t80, 0 br i1 %t81, label %then33, label %ifend35 then33: - call void @fn_die(ptr @.str1622) + call void @fn_die(ptr @.str1609) br label %ifend35 ifend35: %t82 = load ptr, ptr %t0 @@ -22386,7 +22309,7 @@ ifend35: %t88 = icmp ne i32 %t87, 0 br i1 %t88, label %then36, label %ifend38 then36: - call void @fn_die(ptr @.str1623) + call void @fn_die(ptr @.str1610) br label %ifend38 ifend38: %t89 = load ptr, ptr %t0 @@ -22494,7 +22417,7 @@ then60: %t141 = load ptr, ptr %t0 %t142 = call ptr @fn_base_name(ptr %t141) %t143 = call ptr @fn_strip_ludic(ptr %t142) - %t144 = call ptr @fn_str_concat(ptr @.str1624, ptr %t143) + %t144 = call ptr @fn_str_concat(ptr @.str1611, ptr %t143) store ptr %t144, ptr %t1 br label %ifend62 ifend62: @@ -22510,12 +22433,12 @@ ifend62: br i1 %t153, label %then63, label %ifend65 then63: %t154 = load ptr, ptr %t147 - %t155 = call ptr @fn_str_concat(ptr @.str1625, ptr %t154) + %t155 = call ptr @fn_str_concat(ptr @.str1612, ptr %t154) %t156 = call i32 @system(ptr %t155) br label %ifend65 ifend65: %t157 = load ptr, ptr %t1 - %t158 = call ptr @fn_str_concat(ptr %t157, ptr @.str1626) + %t158 = call ptr @fn_str_concat(ptr %t157, ptr @.str1613) store ptr %t158, ptr %t159 %t160 = load ptr, ptr %t159 %t161 = call i32 @fn_ir_flush(ptr %t160) @@ -22524,20 +22447,20 @@ ifend65: %t164 = icmp ne i32 %t163, 0 br i1 %t164, label %then66, label %ifend68 then66: - call void @fn_die(ptr @.str1627) + call void @fn_die(ptr @.str1614) br label %ifend68 ifend68: - %t165 = call ptr @fn_getenv_or(ptr @.str1628, ptr @.str1629) + %t165 = call ptr @fn_getenv_or(ptr @.str1615, ptr @.str1616) 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 @.str1630, ptr %t170) + %t171 = call ptr @fn_getenv_or(ptr @.str1617, ptr %t170) %t172 = call ptr @fn_ensure_slash(ptr %t171) store ptr %t172, ptr %t173 %t174 = load ptr, ptr %t166 - %t175 = call ptr @fn_str_concat(ptr %t174, ptr @.str1631) + %t175 = call ptr @fn_str_concat(ptr %t174, ptr @.str1618) %t176 = load ptr, ptr %t159 %t177 = call ptr @fn_str_concat(ptr %t175, ptr %t176) store ptr %t177, ptr %t178 @@ -22546,18 +22469,18 @@ ifend68: br i1 %t180, label %then69, label %ifend71 then69: %t181 = load ptr, ptr %t173 - %t182 = call ptr @fn_path_join(ptr %t181, ptr @.str1632) + %t182 = call ptr @fn_path_join(ptr %t181, ptr @.str1619) store ptr %t182, ptr %t183 %t184 = load ptr, ptr %t178 - %t185 = call ptr @fn_str_concat(ptr %t184, ptr @.str1633) + %t185 = call ptr @fn_str_concat(ptr %t184, ptr @.str1620) %t186 = load ptr, ptr %t183 %t187 = call ptr @fn_str_concat(ptr %t185, ptr %t186) - %t188 = call ptr @fn_str_concat(ptr %t187, ptr @.str1634) + %t188 = call ptr @fn_str_concat(ptr %t187, ptr @.str1621) store ptr %t188, ptr %t178 br label %ifend71 ifend71: %t189 = load ptr, ptr %t178 - %t190 = call ptr @fn_str_concat(ptr %t189, ptr @.str1635) + %t190 = call ptr @fn_str_concat(ptr %t189, ptr @.str1622) %t191 = load ptr, ptr %t1 %t192 = call ptr @fn_str_concat(ptr %t190, ptr %t191) store ptr %t192, ptr %t178 @@ -22571,7 +22494,7 @@ ifend71: br i1 %t199, label %then72, label %ifend74 then72: %t200 = load ptr, ptr %t159 - %t201 = call ptr @fn_str_concat(ptr @.str1636, ptr %t200) + %t201 = call ptr @fn_str_concat(ptr @.str1623, ptr %t200) %t202 = call i32 @system(ptr %t201) br label %ifend74 ifend74: @@ -22581,7 +22504,7 @@ ifend74: %t206 = icmp ne i32 %t205, 0 br i1 %t206, label %then75, label %ifend77 then75: - call void @fn_die(ptr @.str1637) + call void @fn_die(ptr @.str1624) br label %ifend77 ifend77: %t207 = load i32, ptr %t6 diff --git a/selfhost/tests/match_bits.ludic b/selfhost/tests/match_bits.ludic index 57618541..32bf3afe 100644 --- a/selfhost/tests/match_bits.ludic +++ b/selfhost/tests/match_bits.ludic @@ -10,7 +10,7 @@ program T { print((1 << 4)) # 16 print(((4 | 1) & 6)) # 4 let p = mem_alloc(16) - poke32(p, 1, 9999) - print(peek32(p, 1)) # 9999 + p[1] = 9999 + print(p[1]) # 9999 } } 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 ef224664..767f39b5 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 @@ -52,7 +52,7 @@ object LudicVocabulary { "enable", "disable", "match", "machine", "state", "become", "where", "and", "or", "not", "break", "continue", "new" ) - val PRIMITIVES = setOf("int", "fixed", "bool", "entity", "str", "ptr", "void") + val PRIMITIVES = setOf("int", "fixed", "bool", "entity", "str", "ptr", "byte", "words", "void") val PHASES = setOf("Start", "Input", "FixedUpdate", "Update", "LateUpdate", "Render") val WIDGETS = setOf("panel", "col", "row", "label", "button", "image", "spacer") @@ -66,9 +66,8 @@ object LudicVocabulary { "ui_focused", "ui_visible", "key", "reg", "set_reg", "self", "save", "load", "status", "print", "str", "quit", // compiler intrinsics: the floor the Ludic-written runtime stands on - "mem_alloc", "mem_realloc", "mem_free", "mem_copy", "mem_set", "peek32", - "os_argc", "os_arg", "file_stderr", "file_stdout", - "poke32", "peekp", "pokep", "peekf", "pokef", "ptr_add", + "mem_alloc", "mem_realloc", "mem_free", "mem_copy", "mem_set", "os_argc", "os_arg", "file_stderr", "file_stdout", + "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", "str_len", "os_exit", "os_time", diff --git a/tools/editors/shared/ludic.tmLanguage.json b/tools/editors/shared/ludic.tmLanguage.json index 27059c4b..08dfe699 100644 --- a/tools/editors/shared/ludic.tmLanguage.json +++ b/tools/editors/shared/ludic.tmLanguage.json @@ -177,7 +177,7 @@ { "name": "keyword.other.clause.ludic", "match": "\\b(phase|query|on)\\b" }, { "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": "support.type.primitive.ludic", "match": "\\b(int|fixed|bool|entity|str|ptr|byte|words|void)\\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" } ] @@ -209,7 +209,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|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|str_len|os_exit|os_time|os_argc|os_arg|file_stderr|file_stdout|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|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|str_len|os_exit|os_time|os_argc|os_arg|file_stderr|file_stdout|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 27059c4b..08dfe699 100644 --- a/tools/editors/vscode/syntaxes/ludic.tmLanguage.json +++ b/tools/editors/vscode/syntaxes/ludic.tmLanguage.json @@ -177,7 +177,7 @@ { "name": "keyword.other.clause.ludic", "match": "\\b(phase|query|on)\\b" }, { "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": "support.type.primitive.ludic", "match": "\\b(int|fixed|bool|entity|str|ptr|byte|words|void)\\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" } ] @@ -209,7 +209,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|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|str_len|os_exit|os_time|os_argc|os_arg|file_stderr|file_stdout|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|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|str_len|os_exit|os_time|os_argc|os_arg|file_stderr|file_stdout|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 eb7bd1ac..2cfb3fad 100644 --- a/tools/ludic-tools/ludic_syntax.h +++ b/tools/ludic-tools/ludic_syntax.h @@ -71,7 +71,7 @@ static const char* LUDIC_KW_STMT[] = { "and","or","not","break","continue","new", 0 }; static const char* LUDIC_TYPES[] = { - "int","fixed","bool","entity","str","ptr","void", 0 + "int","fixed","bool","entity","str","ptr","byte","words","void", 0 }; static const char* LUDIC_PHASES[] = { "Start","Input","FixedUpdate","Update","LateUpdate","Render", 0 @@ -154,8 +154,6 @@ static const LBuiltin LUDIC_INTRINSICS[] = { {"mem_free","mem_free(p: ptr)","Release an allocation."}, {"mem_copy","mem_copy(dst: ptr, src: ptr, n: int)","memcpy."}, {"mem_set","mem_set(p: ptr, byte: int, n: int)","memset."}, - {"peek32","peek32(p: ptr, off: int) -> int","Read a 32-bit word."}, - {"poke32","poke32(p: ptr, off: int, v: int)","Write a 32-bit word."}, {"peekp","peekp(p: ptr, off: int) -> ptr","Read a pointer-sized word."}, {"pokep","pokep(p: ptr, off: int, v: ptr)","Write a pointer-sized word."}, {"peekf","peekf(p: ptr, off: int) -> fixed","Read a fixed-point word."},