From dd532ab7b273a2449004473123b51ba75ee5176c Mon Sep 17 00:00:00 2001 From: agra Date: Sun, 21 Jun 2026 06:51:29 +0300 Subject: [PATCH] fibers B1.3b: mmap guard-page fiber stacks (x86_64 switch sibling deferred) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fiber stacks are now mmap'd with a PROT_NONE guard page at the low end: mmap a [guard | usable] region and mprotect the low 16KB page PROT_NONE, so a stack overflow faults at the guard boundary instead of silently corrupting a neighbor (design 8.1.1 — fixed stacks without a guard corrupt silently on overflow). Locked by examples/1809-concurrency-fiber-guard-stack.sx (aarch64-macos-pinned): guard armed: 1 (mprotect -> 0) + sum: 20100 (a fiber runs real recursion on the guarded stack and yields). The guard FIRING is validated manually (a fiber recursing past its 128KB stack faults with Bus error at region+GUARD, exit 134 via the sx crash handler) — not corpus-pinned, since a deliberate-overflow crash is host-fragile and a 'child faulted' fork test would not prove the boundary catch specifically. The x86_64 swap_context sibling is DEFERRED: sx build --target x86_64-macos mislinks on this arm64 host (object x86_64, link step arm64) and x86_64-linux can't run here, so it could only ship IR-only / unrun. For the highest- corruption-risk asm, shipping un-run / un-negative-controlled code violates the design 10.7 'correctness not existence' rule. SysV target notes (rbx/rbp/r12-r15 /rsp, no callee-saved XMM, rsp-carried return address) recorded for a future x86_64 host. Suite green 735/0. --- current/CHECKPOINT-FIBERS.md | 79 +- .../1809-concurrency-fiber-guard-stack.sx | 104 + .../1809-concurrency-fiber-guard-stack.build | 1 + .../1809-concurrency-fiber-guard-stack.exit | 1 + .../1809-concurrency-fiber-guard-stack.ir | 16632 ++++++++++++++++ .../1809-concurrency-fiber-guard-stack.stderr | 1 + .../1809-concurrency-fiber-guard-stack.stdout | 2 + 7 files changed, 16794 insertions(+), 26 deletions(-) create mode 100644 examples/1809-concurrency-fiber-guard-stack.sx create mode 100644 examples/expected/1809-concurrency-fiber-guard-stack.build create mode 100644 examples/expected/1809-concurrency-fiber-guard-stack.exit create mode 100644 examples/expected/1809-concurrency-fiber-guard-stack.ir create mode 100644 examples/expected/1809-concurrency-fiber-guard-stack.stderr create mode 100644 examples/expected/1809-concurrency-fiber-guard-stack.stdout diff --git a/current/CHECKPOINT-FIBERS.md b/current/CHECKPOINT-FIBERS.md index beacec20..485b5ca5 100644 --- a/current/CHECKPOINT-FIBERS.md +++ b/current/CHECKPOINT-FIBERS.md @@ -4,7 +4,25 @@ Companion to [PLAN-FIBERS.md](PLAN-FIBERS.md). Update after every step (one step per the cadence rule). New corpus category: `18xx` concurrency. ## Last completed step -**B1.3a-2 — the context-switch STRESS GATE (design §10.7) — DONE + adversarially reviewed.** +**B1.3b (mmap guard-page stacks) — DONE. x86_64 switch sibling DEFERRED (not runnable on this +host).** Fiber stacks are now `mmap`'d with a `PROT_NONE` GUARD PAGE at the low end (§8.1.1: a +fixed stack without a guard silently corrupts neighbors on overflow). `mmap` the `[guard | +usable]` region, `mprotect` the low 16KB page `PROT_NONE`; SP descends into the guard and faults +loudly at the boundary instead of corrupting a neighbor. Locked by +`examples/1809-concurrency-fiber-guard-stack.sx` (aarch64-macos-pinned): `guard armed: 1` +(`mprotect`→0) + `sum: 20100` (a fiber runs real recursion on the guarded stack + yields). +- **Guard FIRING validated** (manually, not corpus-pinned — a deliberate overflow crash is + host-fragile): a fiber recursing past its 128KB stack faults with `Bus error` at the guard page + (`region+GUARD`); the sx crash handler turns it into exit 134. Documented in the example header. +- **x86_64 `swap_context` sibling DEFERRED:** `sx build --target x86_64-macos` mislinks on this + arm64 host (object is x86_64 but the link step targets arm64), and `--target x86_64-linux` can't + run here either — so the x86_64 switch could only ship IR-only, UNRUN. For the single + highest-corruption-risk asm, shipping un-run/un-negative-controlled asm violates the §10.7 + "correctness not existence" rule. Deferred until an x86_64 host (or working cross-run) is + available. The aarch64 switch + its §10.7 gate are complete and reviewed; portability is the + only gap. SysV target notes recorded in Next step. + +### Earlier — B1.3a-2 — the context-switch STRESS GATE (design §10.7) — DONE + adversarially reviewed The explicit every-callee-saved-register scribble that B1.3a-1 owed. `swap_context` now saves the COMPLETE AAPCS64 callee-saved set — integer x19-x28 + fp/lr + sp AND FP **d8-d15** (per §6.1.2 only the low 64 bits of v8-v15 are callee-saved, so `d8-d15` is exactly sufficient; x18 is Apple's @@ -221,33 +239,29 @@ fibers/Io/scheduler code yet. Grounded floor facts: boundary; a sharper sx diagnostic for it is a candidate polish, not a blocker. ## Next step -**B1.3b — the x86_64 switch sibling + `mmap` guard-page stacks.** The aarch64 switch + the §10.7 -gate (B1.3a) are done + reviewed. Sequence: -1. **B1.3b-1 (x86_64 `swap_context`):** the per-arch sibling — System V callee-saved is - rbx/rbp/r12/r13/r14/r15 + rsp (6 GP + sp; NO callee-saved XMM on the SysV C ABI, unlike Win64), - so a different slot count + a different `scribble_verify` reg set. Arch-gate it like the asm - corpus (`x86_64-linux` run on a matching CI host, ir-only on this aarch64 mac — `.ir` required). - Carry the same 2-fiber mutual-scribble gate + the negative-control discipline. (1802 is the - x86_64 naked-asm template.) -2. **B1.3b-2 (`mmap` guard-page stacks):** replace the `alloc_bytes` stack with `mmap` + - `mprotect` the low page `PROT_NONE` (mandatory — a fixed stack without a guard silently - corrupts neighbors on overflow, §8.1.1). Add an overflow-hits-guard test (deep recursion past - the stack → SIGSEGV/SIGBUS at the guard, NOT silent corruption). `mmap`/`mprotect` via - `extern "c"`. -3. Then B1.3 (fiber runtime substrate) is done → **B1.4** (`Io` impls: blocking ✅ → - deterministic-sim KEYSTONE → event-loop) and **B1.5** (M:1 scheduler) build the real scheduler - on top, replacing the hand-bootstrapped ping-pong with `spawn`/`yield`/`resume`. The §10.7 gate - (1808) must keep passing as the switch grows. +Two open threads — pick by host availability: + +**(A) x86_64 `swap_context` sibling — needs an x86_64 host (or a working cross-run).** The per-arch +switch. SysV-AMD64 callee-saved = rbx, rbp, r12, r13, r14, r15 + rsp (6 GP + sp; **no** callee-saved +XMM on SysV, unlike Win64) — so a 7-slot ctx and a different `scribble_verify` reg set. No link +register: the return address rides each fiber's stack, so the switch is `mov [from],regs… ; +mov rsp,[to+48] ; ret` (the final `ret` pops `to`'s saved return addr). Bootstrap: push +`&_fib_tramp` onto the new stack and set saved rsp to it (16-align: at the trampoline's `call`, +rsp must be ≡0 mod 16). Args rdi/rsi/rdx; result rax. Carry the SAME 2-fiber mutual-scribble gate ++ negative-control discipline + adversarial review. **Must be RUN + negative-controlled on a +matching host** — do NOT ship it ir-only/unrun (§10.7). (1802 is the x86_64 naked-asm template.) + +**(B) B1.4 — `Io` impls (blocking ✅ → deterministic-sim KEYSTONE → event-loop).** The aarch64 +substrate (switch + §10.7 gate + guarded stacks) is enough to build the scheduler on. B1.4 builds +the deterministic-sim `Io` (calibrated against blocking `Io` before trusting it — §8.1.3), then +**B1.5** (M:1 scheduler) replaces the hand-bootstrapped ping-pong with real `spawn`/`yield`/ +`resume` over the switch. The §10.7 gate (1808) + the guarded-stack path (1809) must keep passing +as the switch is wrapped into the scheduler. **Deferred (do NOT block on these):** issue **0150** (`void` struct field SIGTRAP) — only -`Future(void)`/`timeout`, which are B1.4. The **`::` callable-parameter feature** (named-fn -async workers `async(read_a, conn)`) — WIP at `.sx-tmp/wip-callable-params/patch.diff` (parser -done, inference incomplete); a dedicated effort; lambda workers are the B1.2 idiom meanwhile. - -**Deferred (do NOT block on these):** issue **0150** (`void` struct field SIGTRAP) — only -`Future(void)`/`timeout`, which are B1.4. The **`::` callable-parameter feature** (named-fn -async workers `async(read_a, conn)`) — WIP at `.sx-tmp/wip-callable-params/patch.diff` (parser -done, inference incomplete); a dedicated effort; lambda workers are the B1.2 idiom meanwhile. +`Future(void)`/`timeout` (B1.4). The **`::` callable-parameter feature** (named-fn async workers +`async(read_a, conn)`) — WIP at `.sx-tmp/wip-callable-params/patch.diff` (parser done, inference +incomplete); a dedicated effort; lambda workers are the idiom meanwhile. `Context` layout settled: `{ allocator; data; io; }` (allocator index 0 fixed by `call.zig:1229`, io last). Io protocol + materializers + push-inherit are LANDED + reviewed. @@ -425,3 +439,16 @@ done, inference incomplete); a dedicated effort; lambda workers are the B1.2 idi (spec-correct for a call-boundary swap; in the example header): FPCR/FPSR/NZCV + TPIDR/TLS not swapped, fp=0 blocks unwind — relevant at N×M:1 / signals, not here. Suite green 734/0. Next: B1.3b (x86_64 sibling + mmap guard-page stacks). +- **B1.3b — mmap guard-page stacks (x86_64 sibling deferred).** Fiber stacks now `mmap` a + `[guard | usable]` region and `mprotect` the low 16KB page `PROT_NONE`, so a stack overflow + faults at the guard boundary instead of silently corrupting a neighbor (§8.1.1). Locked by + `examples/1809-concurrency-fiber-guard-stack.sx` (aarch64-macos-pinned): `guard armed: 1` + (`mprotect`→0) + `sum: 20100` (a fiber runs real recursion on the guarded stack + yields). + Guard FIRING validated manually (overflow → `Bus error` at `region+GUARD`, exit 134 via the sx + crash handler) — not corpus-pinned because a deliberate-overflow crash is host-fragile (and a + mere "child faulted" fork test wouldn't prove the BOUNDARY catch). The x86_64 `swap_context` + sibling was DEFERRED: `--target x86_64-macos` mislinks on this arm64 host and `x86_64-linux` + can't run here, so it could only ship un-run/un-negative-controlled — which §10.7 forbids for the + highest-risk asm. SysV target notes (rbx/rbp/r12-r15/rsp, no callee-saved XMM, rsp-carried return + addr) recorded in Next step. Suite green **735/0**. Next: x86_64 sibling (needs an x86_64 host) + OR B1.4 (`Io` impls / scheduler) on the proven aarch64 substrate. diff --git a/examples/1809-concurrency-fiber-guard-stack.sx b/examples/1809-concurrency-fiber-guard-stack.sx new file mode 100644 index 00000000..ea819c80 --- /dev/null +++ b/examples/1809-concurrency-fiber-guard-stack.sx @@ -0,0 +1,104 @@ +// Stream B1 (fibers) B1.3b — fiber stacks are `mmap`'d with a PROT_NONE GUARD +// PAGE at their low end (§8.1.1: a fixed stack without a guard silently +// corrupts neighbors on overflow — the guard turns overflow into an immediate, +// loud fault instead). The stack grows DOWN, so the guard sits at the lowest +// address; when a fiber's SP descends past the usable region it hits the +// unwritable guard and faults at the boundary. +// +// This is the positive integration: a fiber bootstrapped on a guarded `mmap` +// stack runs real recursion + yields correctly, and the guard syscall is +// asserted to have succeeded (`mprotect` → 0). The guard FIRING on overflow is +// validated separately (a fiber recursing past its 128KB stack faults with +// "Bus error" at the guard page, address = region+GUARD) — a deterministic +// corpus assertion for it is omitted because a deliberate stack-overflow crash +// is host/runtime-fragile (the sx crash handler turns the fault into SIGABRT, +// and the fault address varies run-to-run). +// +// aarch64-macos-pinned: the `mmap` flag constants (MAP_ANON = 0x1000) and the +// 16 KB page size are Apple-specific; the asm switch is per-arch. Runs +// end-to-end here, ir-only on a mismatch. +#import "modules/std.sx"; + +mmap :: (addr: *void, len: i64, prot: i32, flags: i32, fd: i32, off: i64) -> *void extern libc "mmap"; +mprotect :: (addr: *void, len: i64, prot: i32) -> i32 extern libc "mprotect"; + +PROT_NONE :: 0; +PROT_RW :: 3; // PROT_READ | PROT_WRITE +MAP_AP :: 0x1002; // macOS MAP_PRIVATE (0x2) | MAP_ANON (0x1000) +GUARD :: 16384; // one 16 KB page (aarch64-macOS) +STACK :: 131072; // 128 KB usable + +FiberCtx :: struct { regs: [13]u64; } +Fiber :: struct { ctx: FiberCtx; finish: *FiberCtx; out: i64; guard_ok: i64; } + +swap_context :: (from: *FiberCtx, to: *FiberCtx) abi(.naked) { + asm volatile { + #string ASM + stp x19, x20, [x0, #0] + stp x21, x22, [x0, #16] + stp x23, x24, [x0, #32] + stp x25, x26, [x0, #48] + stp x27, x28, [x0, #64] + stp x29, x30, [x0, #80] + mov x9, sp + str x9, [x0, #96] + ldp x19, x20, [x1, #0] + ldp x21, x22, [x1, #16] + ldp x23, x24, [x1, #32] + ldp x25, x26, [x1, #48] + ldp x27, x28, [x1, #64] + ldp x29, x30, [x1, #80] + ldr x9, [x1, #96] + mov sp, x9 + ret +ASM + }; +} + +asm { + #string T +.global _fib_tramp +_fib_tramp: + mov x0, x19 + bl _fib_body + brk #0 +T, +}; +fib_tramp :: () extern; + +// Real recursion → genuine stack usage on the guarded stack (well within 128KB). +sum_to :: (n: i64) -> i64 { + if n == 0 { return 0; } + return n + sum_to(n - 1); +} + +fib_body :: (self: *Fiber) export "fib_body" { + self.out = sum_to(200); // 200*201/2 = 20100 + swap_context(@self.ctx, self.finish); +} + +// mmap a [guard | usable-stack] region and mprotect the low guard page +// PROT_NONE. Returns the 16-aligned stack top; reports guard-syscall success. +guarded_stack :: (f: *Fiber, size: i64) -> u64 { + region : *void = mmap(null, GUARD + size, PROT_RW, MAP_AP, -1, 0); + if (xx region) == (xx (0 - 1)) { f.guard_ok = 0; return 0; } + f.guard_ok = 0; + if mprotect(region, GUARD, PROT_NONE) == 0 { f.guard_ok = 1; } + usable : u64 = (xx region) + GUARD; + top : u64 = usable + size; + return top - (top % 16); +} + +main :: () -> i64 { + main_ctx : FiberCtx = ---; + f : Fiber = ---; f.finish = @main_ctx; f.out = -1; f.guard_ok = 0; + top := guarded_stack(@f, STACK); + f.ctx.regs[0] = xx @f; + f.ctx.regs[10] = 0; + f.ctx.regs[11] = xx fib_tramp; + f.ctx.regs[12] = top; + swap_context(@main_ctx, @f.ctx); + print("guard armed: {}\n", f.guard_ok); // 1 — mprotect(PROT_NONE) succeeded + print("sum: {}\n", f.out); // 20100 — fiber ran on the guarded stack + return 0; +} diff --git a/examples/expected/1809-concurrency-fiber-guard-stack.build b/examples/expected/1809-concurrency-fiber-guard-stack.build new file mode 100644 index 00000000..42e24dd2 --- /dev/null +++ b/examples/expected/1809-concurrency-fiber-guard-stack.build @@ -0,0 +1 @@ +{ "target": "macos" } diff --git a/examples/expected/1809-concurrency-fiber-guard-stack.exit b/examples/expected/1809-concurrency-fiber-guard-stack.exit new file mode 100644 index 00000000..573541ac --- /dev/null +++ b/examples/expected/1809-concurrency-fiber-guard-stack.exit @@ -0,0 +1 @@ +0 diff --git a/examples/expected/1809-concurrency-fiber-guard-stack.ir b/examples/expected/1809-concurrency-fiber-guard-stack.ir new file mode 100644 index 00000000..84db92a8 --- /dev/null +++ b/examples/expected/1809-concurrency-fiber-guard-stack.ir @@ -0,0 +1,16632 @@ + +module asm ".global _fib_tramp" +module asm "_fib_tramp:" +module asm " mov x0, x19" +module asm " bl _fib_body" +module asm " brk #0" + +@__sx_default_context = internal constant { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc_bytes, ptr @__thunk_CAllocator_Allocator_dealloc_bytes }, ptr null, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } { ptr null, ptr @__thunk_CBlockingIo_Io_spawn_raw, ptr @__thunk_CBlockingIo_Io_suspend_raw, ptr @__thunk_CBlockingIo_Io_ready, ptr @__thunk_CBlockingIo_Io_poll, ptr @__thunk_CBlockingIo_Io_now_ms, ptr @__thunk_CBlockingIo_Io_arm_timer } } +@str = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.109 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.110 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.111 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.112 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.113 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.114 = private unnamed_addr constant [2 x i8] c"/\00", align 1 +@str.115 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.116 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [395 x i1] [i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 true, i1 true, i1 true, i1 true, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 true, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.117 = private constant [9 x i8] c"Canceled\00" +@tag.str.118 = private constant [7 x i8] c"Failed\00" +@tag.str.119 = private constant [11 x i8] c"WouldBlock\00" +@tag.str.120 = private constant [7 x i8] c"Closed\00" +@tag.str.121 = private constant [6 x i8] c"Fault\00" +@tag.str.122 = private constant [9 x i8] c"Overflow\00" +@tag.str.123 = private constant [3 x i8] c"Io\00" +@tag.str.124 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.125 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.126 = private constant [10 x i8] c"BadEscape\00" +@tag.str.127 = private constant [10 x i8] c"BadNumber\00" +@tag.str.128 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.129 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.130 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.131 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.132 = private constant [13 x i8] c"MissingValue\00" +@tag.str.133 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.134 = private constant [13 x i8] c"TooManyFlags\00" +@tag.str.135 = private constant [5 x i8] c"Init\00" +@tag.str.136 = private constant [9 x i8] c"Register\00" +@tag.str.137 = private constant [5 x i8] c"Wait\00" +@tag.str.138 = private constant [5 x i8] c"Bind\00" +@tag.str.139 = private constant [5 x i8] c"Loop\00" +@tag.str.140 = private constant [6 x i8] c"Spawn\00" +@tag_names = private constant [25 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.117, i64 8 }, { ptr, i64 } { ptr @tag.str.118, i64 6 }, { ptr, i64 } { ptr @tag.str.119, i64 10 }, { ptr, i64 } { ptr @tag.str.120, i64 6 }, { ptr, i64 } { ptr @tag.str.121, i64 5 }, { ptr, i64 } { ptr @tag.str.122, i64 8 }, { ptr, i64 } { ptr @tag.str.123, i64 2 }, { ptr, i64 } { ptr @tag.str.124, i64 15 }, { ptr, i64 } { ptr @tag.str.125, i64 13 }, { ptr, i64 } { ptr @tag.str.126, i64 9 }, { ptr, i64 } { ptr @tag.str.127, i64 9 }, { ptr, i64 } { ptr @tag.str.128, i64 15 }, { ptr, i64 } { ptr @tag.str.129, i64 14 }, { ptr, i64 } { ptr @tag.str.130, i64 14 }, { ptr, i64 } { ptr @tag.str.131, i64 11 }, { ptr, i64 } { ptr @tag.str.132, i64 12 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 12 }, { ptr, i64 } { ptr @tag.str.135, i64 4 }, { ptr, i64 } { ptr @tag.str.136, i64 8 }, { ptr, i64 } { ptr @tag.str.137, i64 4 }, { ptr, i64 } { ptr @tag.str.138, i64 4 }, { ptr, i64 } { ptr @tag.str.139, i64 4 }, { ptr, i64 } { ptr @tag.str.140, i64 5 }] +@tn.str = private constant [13 x i8] c"\00" +@tn.str.141 = private constant [5 x i8] c"bool\00" +@tn.str.142 = private constant [3 x i8] c"i8\00" +@tn.str.143 = private constant [4 x i8] c"i16\00" +@tn.str.144 = private constant [4 x i8] c"i32\00" +@tn.str.145 = private constant [4 x i8] c"i64\00" +@tn.str.146 = private constant [3 x i8] c"u8\00" +@tn.str.147 = private constant [4 x i8] c"u16\00" +@tn.str.148 = private constant [4 x i8] c"u32\00" +@tn.str.149 = private constant [4 x i8] c"u64\00" +@tn.str.150 = private constant [4 x i8] c"f32\00" +@tn.str.151 = private constant [4 x i8] c"f64\00" +@tn.str.152 = private constant [7 x i8] c"string\00" +@tn.str.153 = private constant [4 x i8] c"Any\00" +@tn.str.154 = private constant [9 x i8] c"noreturn\00" +@tn.str.155 = private constant [6 x i8] c"isize\00" +@tn.str.156 = private constant [6 x i8] c"usize\00" +@tn.str.157 = private constant [5 x i8] c"void\00" +@tn.str.158 = private constant [8 x i8] c"cstring\00" +@tn.str.159 = private constant [5 x i8] c"Type\00" +@tn.str.160 = private constant [2 x i8] c"?\00" +@tn.str.161 = private constant [2 x i8] c"?\00" +@tn.str.162 = private constant [2 x i8] c"?\00" +@tn.str.163 = private constant [2 x i8] c"?\00" +@tn.str.164 = private constant [2 x i8] c"?\00" +@tn.str.165 = private constant [2 x i8] c"?\00" +@tn.str.166 = private constant [2 x i8] c"?\00" +@tn.str.167 = private constant [2 x i8] c"?\00" +@tn.str.168 = private constant [2 x i8] c"?\00" +@tn.str.169 = private constant [2 x i8] c"?\00" +@tn.str.170 = private constant [2 x i8] c"?\00" +@tn.str.171 = private constant [2 x i8] c"?\00" +@tn.str.172 = private constant [2 x i8] c"?\00" +@tn.str.173 = private constant [2 x i8] c"?\00" +@tn.str.174 = private constant [2 x i8] c"?\00" +@tn.str.175 = private constant [2 x i8] c"?\00" +@tn.str.176 = private constant [2 x i8] c"?\00" +@tn.str.177 = private constant [2 x i8] c"?\00" +@tn.str.178 = private constant [2 x i8] c"?\00" +@tn.str.179 = private constant [2 x i8] c"?\00" +@tn.str.180 = private constant [2 x i8] c"?\00" +@tn.str.181 = private constant [2 x i8] c"?\00" +@tn.str.182 = private constant [2 x i8] c"?\00" +@tn.str.183 = private constant [2 x i8] c"?\00" +@tn.str.184 = private constant [2 x i8] c"?\00" +@tn.str.185 = private constant [2 x i8] c"?\00" +@tn.str.186 = private constant [2 x i8] c"?\00" +@tn.str.187 = private constant [2 x i8] c"?\00" +@tn.str.188 = private constant [2 x i8] c"?\00" +@tn.str.189 = private constant [2 x i8] c"?\00" +@tn.str.190 = private constant [2 x i8] c"?\00" +@tn.str.191 = private constant [2 x i8] c"?\00" +@tn.str.192 = private constant [2 x i8] c"?\00" +@tn.str.193 = private constant [2 x i8] c"?\00" +@tn.str.194 = private constant [2 x i8] c"?\00" +@tn.str.195 = private constant [2 x i8] c"?\00" +@tn.str.196 = private constant [2 x i8] c"?\00" +@tn.str.197 = private constant [2 x i8] c"?\00" +@tn.str.198 = private constant [2 x i8] c"?\00" +@tn.str.199 = private constant [2 x i8] c"?\00" +@tn.str.200 = private constant [2 x i8] c"?\00" +@tn.str.201 = private constant [2 x i8] c"?\00" +@tn.str.202 = private constant [2 x i8] c"?\00" +@tn.str.203 = private constant [2 x i8] c"?\00" +@tn.str.204 = private constant [2 x i8] c"?\00" +@tn.str.205 = private constant [2 x i8] c"?\00" +@tn.str.206 = private constant [2 x i8] c"?\00" +@tn.str.207 = private constant [2 x i8] c"?\00" +@tn.str.208 = private constant [2 x i8] c"?\00" +@tn.str.209 = private constant [2 x i8] c"?\00" +@tn.str.210 = private constant [2 x i8] c"?\00" +@tn.str.211 = private constant [2 x i8] c"?\00" +@tn.str.212 = private constant [2 x i8] c"?\00" +@tn.str.213 = private constant [2 x i8] c"?\00" +@tn.str.214 = private constant [2 x i8] c"?\00" +@tn.str.215 = private constant [2 x i8] c"?\00" +@tn.str.216 = private constant [2 x i8] c"?\00" +@tn.str.217 = private constant [2 x i8] c"?\00" +@tn.str.218 = private constant [2 x i8] c"?\00" +@tn.str.219 = private constant [2 x i8] c"?\00" +@tn.str.220 = private constant [2 x i8] c"?\00" +@tn.str.221 = private constant [2 x i8] c"?\00" +@tn.str.222 = private constant [2 x i8] c"?\00" +@tn.str.223 = private constant [2 x i8] c"?\00" +@tn.str.224 = private constant [2 x i8] c"?\00" +@tn.str.225 = private constant [2 x i8] c"?\00" +@tn.str.226 = private constant [2 x i8] c"?\00" +@tn.str.227 = private constant [2 x i8] c"?\00" +@tn.str.228 = private constant [2 x i8] c"?\00" +@tn.str.229 = private constant [2 x i8] c"?\00" +@tn.str.230 = private constant [2 x i8] c"?\00" +@tn.str.231 = private constant [2 x i8] c"?\00" +@tn.str.232 = private constant [2 x i8] c"?\00" +@tn.str.233 = private constant [2 x i8] c"?\00" +@tn.str.234 = private constant [2 x i8] c"?\00" +@tn.str.235 = private constant [2 x i8] c"?\00" +@tn.str.236 = private constant [2 x i8] c"?\00" +@tn.str.237 = private constant [2 x i8] c"?\00" +@tn.str.238 = private constant [2 x i8] c"?\00" +@tn.str.239 = private constant [2 x i8] c"?\00" +@tn.str.240 = private constant [6 x i8] c"[*]u8\00" +@tn.str.241 = private constant [6 x i8] c"*void\00" +@tn.str.242 = private constant [16 x i8] c"Source_Location\00" +@tn.str.243 = private constant [10 x i8] c"Allocator\00" +@tn.str.244 = private constant [10 x i8] c"PinTarget\00" +@tn.str.245 = private constant [10 x i8] c"SpawnOpts\00" +@tn.str.246 = private constant [10 x i8] c"ParkToken\00" +@tn.str.247 = private constant [3 x i8] c"Io\00" +@tn.str.248 = private constant [2 x i8] c"!\00" +@tn.str.249 = private constant [8 x i8] c"Context\00" +@tn.str.250 = private constant [7 x i8] c"[4]i64\00" +@tn.str.251 = private constant [9 x i8] c"[]string\00" +@tn.str.252 = private constant [9 x i8] c"Ordering\00" +@tn.str.253 = private constant [9 x i8] c"Timespec\00" +@tn.str.254 = private constant [10 x i8] c"*Timespec\00" +@tn.str.255 = private constant [6 x i8] c"IoErr\00" +@tn.str.256 = private constant [12 x i8] c"CBlockingIo\00" +@tn.str.257 = private constant [13 x i8] c"*CBlockingIo\00" +@tn.str.258 = private constant [12 x i8] c"FutureState\00" +@tn.str.259 = private constant [11 x i8] c"CAllocator\00" +@tn.str.260 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.261 = private constant [4 x i8] c"GPA\00" +@tn.str.262 = private constant [5 x i8] c"*GPA\00" +@tn.str.263 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.264 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.265 = private constant [6 x i8] c"Arena\00" +@tn.str.266 = private constant [7 x i8] c"*Arena\00" +@tn.str.267 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.268 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.269 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.270 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.271 = private constant [9 x i8] c"OpenMode\00" +@tn.str.272 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.273 = private constant [5 x i8] c"File\00" +@tn.str.274 = private constant [6 x i8] c"*File\00" +@tn.str.275 = private constant [6 x i8] c"?File\00" +@tn.str.276 = private constant [8 x i8] c"?string\00" +@tn.str.277 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.278 = private constant [9 x i8] c"?cstring\00" +@tn.str.279 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.280 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.281 = private constant [5 x i8] c"*i32\00" +@tn.str.282 = private constant [9 x i8] c"SockAddr\00" +@tn.str.283 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.284 = private constant [5 x i8] c"*u32\00" +@tn.str.285 = private constant [8 x i8] c"SockErr\00" +@tn.str.286 = private constant [15 x i8] c"(i32, SockErr)\00" +@tn.str.287 = private constant [15 x i8] c"(i64, SockErr)\00" +@tn.str.288 = private constant [10 x i8] c"JsonError\00" +@tn.str.289 = private constant [6 x i8] c"Array\00" +@tn.str.290 = private constant [7 x i8] c"Object\00" +@tn.str.291 = private constant [6 x i8] c"Value\00" +@tn.str.292 = private constant [7 x i8] c"Member\00" +@tn.str.293 = private constant [9 x i8] c"[*]Value\00" +@tn.str.294 = private constant [7 x i8] c"*Array\00" +@tn.str.295 = private constant [10 x i8] c"[*]Member\00" +@tn.str.296 = private constant [8 x i8] c"*Object\00" +@tn.str.297 = private constant [5 x i8] c"[]u8\00" +@tn.str.298 = private constant [5 x i8] c"Sink\00" +@tn.str.299 = private constant [6 x i8] c"*Sink\00" +@tn.str.300 = private constant [17 x i8] c"(i64, JsonError)\00" +@tn.str.301 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.302 = private constant [22 x i8] c"(i64, JsonParseError)\00" +@tn.str.303 = private constant [7 x i8] c"Parser\00" +@tn.str.304 = private constant [8 x i8] c"*Parser\00" +@tn.str.305 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.306 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.307 = private constant [10 x i8] c"[*]string\00" +@tn.str.308 = private constant [13 x i8] c"List__string\00" +@tn.str.309 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.310 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.311 = private constant [13 x i8] c"Architecture\00" +@tn.str.312 = private constant [23 x i8] c"(BuildOptions) -> bool\00" +@tn.str.313 = private constant [5 x i8] c"*i64\00" +@tn.str.314 = private constant [9 x i8] c"CliError\00" +@tn.str.315 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.316 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.317 = private constant [8 x i8] c"Command\00" +@tn.str.318 = private constant [10 x i8] c"FlagValue\00" +@tn.str.319 = private constant [5 x i8] c"Diag\00" +@tn.str.320 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.321 = private constant [7 x i8] c"Parsed\00" +@tn.str.322 = private constant [8 x i8] c"*Parsed\00" +@tn.str.323 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.324 = private constant [10 x i8] c"[]Command\00" +@tn.str.325 = private constant [6 x i8] c"*Diag\00" +@tn.str.326 = private constant [7 x i8] c"[8]i64\00" +@tn.str.327 = private constant [7 x i8] c"[64]u8\00" +@tn.str.328 = private constant [7 x i8] c"Sha256\00" +@tn.str.329 = private constant [8 x i8] c"*Sha256\00" +@tn.str.330 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.331 = private constant [8 x i8] c"[64]i64\00" +@tn.str.332 = private constant [7 x i8] c"Kevent\00" +@tn.str.333 = private constant [11 x i8] c"KqTimespec\00" +@tn.str.334 = private constant [8 x i8] c"*Kevent\00" +@tn.str.335 = private constant [12 x i8] c"*KqTimespec\00" +@tn.str.336 = private constant [9 x i8] c"EventErr\00" +@tn.str.337 = private constant [6 x i8] c"Event\00" +@tn.str.338 = private constant [5 x i8] c"Loop\00" +@tn.str.339 = private constant [17 x i8] c"(Loop, EventErr)\00" +@tn.str.340 = private constant [6 x i8] c"*Loop\00" +@tn.str.341 = private constant [16 x i8] c"(i64, EventErr)\00" +@tn.str.342 = private constant [8 x i8] c"[]Event\00" +@tn.str.343 = private constant [8 x i8] c"HttpErr\00" +@tn.str.344 = private constant [7 x i8] c"Config\00" +@tn.str.345 = private constant [8 x i8] c"Request\00" +@tn.str.346 = private constant [9 x i8] c"Response\00" +@tn.str.347 = private constant [9 x i8] c"*Request\00" +@tn.str.348 = private constant [5 x i8] c"Conn\00" +@tn.str.349 = private constant [9 x i8] c"OutBytes\00" +@tn.str.350 = private constant [11 x i8] c"Completion\00" +@tn.str.351 = private constant [5 x i8] c"Pool\00" +@tn.str.352 = private constant [6 x i8] c"*Pool\00" +@tn.str.353 = private constant [6 x i8] c"Mutex\00" +@tn.str.354 = private constant [14 x i8] c"[*]Completion\00" +@tn.str.355 = private constant [10 x i8] c"PoolState\00" +@tn.str.356 = private constant [10 x i8] c"*Response\00" +@tn.str.357 = private constant [29 x i8] c"(*Request, *Response, usize)\00" +@tn.str.358 = private constant [11 x i8] c"*PoolState\00" +@tn.str.359 = private constant [11 x i8] c"HandlerJob\00" +@tn.str.360 = private constant [8 x i8] c"[*]Conn\00" +@tn.str.361 = private constant [7 x i8] c"Server\00" +@tn.str.362 = private constant [18 x i8] c"(Server, HttpErr)\00" +@tn.str.363 = private constant [8 x i8] c"*Server\00" +@tn.str.364 = private constant [7 x i8] c"*usize\00" +@tn.str.365 = private constant [17 x i8] c"(*void) -> *void\00" +@tn.str.366 = private constant [7 x i8] c"**void\00" +@tn.str.367 = private constant [9 x i8] c"MutexBuf\00" +@tn.str.368 = private constant [10 x i8] c"*MutexBuf\00" +@tn.str.369 = private constant [8 x i8] c"CondBuf\00" +@tn.str.370 = private constant [9 x i8] c"*CondBuf\00" +@tn.str.371 = private constant [10 x i8] c"ThreadErr\00" +@tn.str.372 = private constant [7 x i8] c"*Mutex\00" +@tn.str.373 = private constant [5 x i8] c"Cond\00" +@tn.str.374 = private constant [6 x i8] c"*Cond\00" +@tn.str.375 = private constant [7 x i8] c"Thread\00" +@tn.str.376 = private constant [20 x i8] c"(Thread, ThreadErr)\00" +@tn.str.377 = private constant [8 x i8] c"*Thread\00" +@tn.str.378 = private constant [8 x i8] c"(usize)\00" +@tn.str.379 = private constant [9 x i8] c"PoolTask\00" +@tn.str.380 = private constant [12 x i8] c"[*]PoolTask\00" +@tn.str.381 = private constant [9 x i8] c"[*]usize\00" +@tn.str.382 = private constant [19 x i8] c"(*Pool, ThreadErr)\00" +@tn.str.383 = private constant [8 x i8] c"[13]u64\00" +@tn.str.384 = private constant [9 x i8] c"FiberCtx\00" +@tn.str.385 = private constant [10 x i8] c"*FiberCtx\00" +@tn.str.386 = private constant [6 x i8] c"Fiber\00" +@tn.str.387 = private constant [7 x i8] c"*Fiber\00" +@tn.str.388 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.389 = private constant [14 x i8] c"**CBlockingIo\00" +@tn.str.390 = private constant [11 x i8] c"*SpawnOpts\00" +@tn.str.391 = private constant [11 x i8] c"*ParkToken\00" +@tn.str.392 = private constant [8 x i8] c"**Fiber\00" +@tn.str.393 = private constant [11 x i8] c"**FiberCtx\00" +@tn.str.394 = private constant [5 x i8] c"*u64\00" +@tn.str.395 = private constant [9 x i8] c"*[13]u64\00" +@tn.str.396 = private constant [8 x i8] c"*string\00" +@tn.str.397 = private constant [6 x i8] c"[]Any\00" +@tn.str.398 = private constant [5 x i8] c"*Any\00" +@tn.str.399 = private constant [7 x i8] c"[1]Any\00" +@tn.str.400 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.401 = private constant [7 x i8] c"*[]Any\00" +@tn.str.402 = private constant [4 x i8] c"*u8\00" +@tn.str.403 = private constant [6 x i8] c"*bool\00" +@tn.str.404 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.405 = private constant [14 x i8] c"*List__string\00" +@tn.str.406 = private constant [15 x i8] c"**List__string\00" +@tn.str.407 = private constant [11 x i8] c"*Allocator\00" +@tn.str.408 = private constant [11 x i8] c"*[*]string\00" +@tn.str.409 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.410 = private constant [10 x i8] c"*[]string\00" +@tn.str.411 = private constant [10 x i8] c"[2]string\00" +@tn.str.412 = private constant [11 x i8] c"*[2]string\00" +@tn.str.413 = private constant [10 x i8] c"*?cstring\00" +@tn.str.414 = private constant [9 x i8] c"*cstring\00" +@tn.str.415 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.416 = private constant [7 x i8] c"*isize\00" +@tn.str.417 = private constant [7 x i8] c"[4]Any\00" +@tn.str.418 = private constant [8 x i8] c"*[4]Any\00" +@tn.str.419 = private constant [7 x i8] c"[5]Any\00" +@tn.str.420 = private constant [8 x i8] c"*[5]Any\00" +@tn.str.421 = private constant [7 x i8] c"[3]Any\00" +@tn.str.422 = private constant [8 x i8] c"*[3]Any\00" +@tn.str.423 = private constant [6 x i8] c"*Type\00" +@tn.str.424 = private constant [8 x i8] c"*[4]i64\00" +@tn.str.425 = private constant [5 x i8] c"*f64\00" +@tn.str.426 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.427 = private constant [4 x i8] c"*Io\00" +@tn.str.428 = private constant [9 x i8] c"*Context\00" +@tn.str.429 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.430 = private constant [8 x i8] c"*Member\00" +@tn.str.431 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.432 = private constant [9 x i8] c"*Command\00" +@tn.str.433 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.434 = private constant [7 x i8] c"*Event\00" +@tn.str.435 = private constant [8 x i8] c"*Config\00" +@tn.str.436 = private constant [6 x i8] c"*Conn\00" +@tn.str.437 = private constant [10 x i8] c"*OutBytes\00" +@tn.str.438 = private constant [12 x i8] c"*Completion\00" +@tn.str.439 = private constant [12 x i8] c"*HandlerJob\00" +@tn.str.440 = private constant [10 x i8] c"*PoolTask\00" +@tn.str.441 = private constant [11 x i8] c"*PinTarget\00" +@tn.str.442 = private constant [10 x i8] c"*Ordering\00" +@tn.str.443 = private constant [13 x i8] c"*FutureState\00" +@tn.str.444 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.445 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.446 = private constant [7 x i8] c"*Value\00" +@tn.str.447 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.448 = private constant [14 x i8] c"*Architecture\00" +@tn.str.449 = private constant [6 x i8] c"[]i64\00" +@tn.str.450 = private constant [7 x i8] c"[*]i64\00" +@tn.str.451 = private constant [7 x i8] c"*[]i64\00" +@tn.str.452 = private constant [12 x i8] c"[]FlagValue\00" +@tn.str.453 = private constant [13 x i8] c"[*]FlagValue\00" +@tn.str.454 = private constant [13 x i8] c"*[]FlagValue\00" +@tn.str.455 = private constant [6 x i8] c"*[]u8\00" +@tn.str.456 = private constant [6 x i8] c"[]u64\00" +@tn.str.457 = private constant [7 x i8] c"[*]u64\00" +@tn.str.458 = private constant [7 x i8] c"*[]u64\00" +@tn.str.459 = private constant [7 x i8] c"[*]Any\00" +@tn.str.460 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.461 = private constant [11 x i8] c"*[]Command\00" +@tn.str.462 = private constant [9 x i8] c"*[]Event\00" +@tn.str.463 = private constant [11 x i8] c"**Timespec\00" +@tn.str.464 = private constant [6 x i8] c"**GPA\00" +@tn.str.465 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.466 = private constant [8 x i8] c"**Arena\00" +@tn.str.467 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.468 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.469 = private constant [7 x i8] c"**File\00" +@tn.str.470 = private constant [6 x i8] c"**i32\00" +@tn.str.471 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.472 = private constant [6 x i8] c"**u32\00" +@tn.str.473 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.474 = private constant [8 x i8] c"**Array\00" +@tn.str.475 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.476 = private constant [9 x i8] c"**Object\00" +@tn.str.477 = private constant [7 x i8] c"**Sink\00" +@tn.str.478 = private constant [9 x i8] c"**Parser\00" +@tn.str.479 = private constant [6 x i8] c"**i64\00" +@tn.str.480 = private constant [9 x i8] c"**Parsed\00" +@tn.str.481 = private constant [7 x i8] c"**Diag\00" +@tn.str.482 = private constant [9 x i8] c"**Sha256\00" +@tn.str.483 = private constant [9 x i8] c"**Kevent\00" +@tn.str.484 = private constant [13 x i8] c"**KqTimespec\00" +@tn.str.485 = private constant [7 x i8] c"**Loop\00" +@tn.str.486 = private constant [10 x i8] c"**Request\00" +@tn.str.487 = private constant [7 x i8] c"**Pool\00" +@tn.str.488 = private constant [15 x i8] c"*[*]Completion\00" +@tn.str.489 = private constant [11 x i8] c"**Response\00" +@tn.str.490 = private constant [12 x i8] c"**PoolState\00" +@tn.str.491 = private constant [9 x i8] c"*[*]Conn\00" +@tn.str.492 = private constant [9 x i8] c"**Server\00" +@tn.str.493 = private constant [8 x i8] c"**usize\00" +@tn.str.494 = private constant [8 x i8] c"***void\00" +@tn.str.495 = private constant [11 x i8] c"**MutexBuf\00" +@tn.str.496 = private constant [10 x i8] c"**CondBuf\00" +@tn.str.497 = private constant [8 x i8] c"**Mutex\00" +@tn.str.498 = private constant [7 x i8] c"**Cond\00" +@tn.str.499 = private constant [9 x i8] c"**Thread\00" +@tn.str.500 = private constant [13 x i8] c"*[*]PoolTask\00" +@tn.str.501 = private constant [10 x i8] c"*[*]usize\00" +@tn.str.502 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.503 = private constant [15 x i8] c"***CBlockingIo\00" +@tn.str.504 = private constant [12 x i8] c"**SpawnOpts\00" +@tn.str.505 = private constant [12 x i8] c"**ParkToken\00" +@tn.str.506 = private constant [9 x i8] c"***Fiber\00" +@tn.str.507 = private constant [12 x i8] c"***FiberCtx\00" +@tn.str.508 = private constant [6 x i8] c"**u64\00" +@tn.str.509 = private constant [10 x i8] c"**[13]u64\00" +@tn.str.510 = private constant [9 x i8] c"**string\00" +@tn.str.511 = private constant [6 x i8] c"**Any\00" +@tn.str.512 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.513 = private constant [8 x i8] c"**[]Any\00" +@tn.str.514 = private constant [5 x i8] c"**u8\00" +@tn.str.515 = private constant [7 x i8] c"**bool\00" +@tn.str.516 = private constant [15 x i8] c"**BuildOptions\00" +@tn.str.517 = private constant [16 x i8] c"***List__string\00" +@tn.str.518 = private constant [12 x i8] c"**Allocator\00" +@tn.str.519 = private constant [12 x i8] c"**[*]string\00" +@tn.str.520 = private constant [16 x i8] c"**ProcessResult\00" +@tn.str.521 = private constant [11 x i8] c"**[]string\00" +@tn.str.522 = private constant [12 x i8] c"**[2]string\00" +@tn.str.523 = private constant [11 x i8] c"**?cstring\00" +@tn.str.524 = private constant [10 x i8] c"**cstring\00" +@tn.str.525 = private constant [8 x i8] c"**[*]u8\00" +@tn.str.526 = private constant [8 x i8] c"**isize\00" +@tn.str.527 = private constant [9 x i8] c"**[4]Any\00" +@tn.str.528 = private constant [9 x i8] c"**[5]Any\00" +@tn.str.529 = private constant [9 x i8] c"**[3]Any\00" +@tn.str.530 = private constant [7 x i8] c"**Type\00" +@tn.str.531 = private constant [7 x i8] c"*?File\00" +@tn.str.532 = private constant [9 x i8] c"*?string\00" +@tn.str.533 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.534 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [395 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.141, i64 4 }, { ptr, i64 } { ptr @tn.str.142, i64 2 }, { ptr, i64 } { ptr @tn.str.143, i64 3 }, { ptr, i64 } { ptr @tn.str.144, i64 3 }, { ptr, i64 } { ptr @tn.str.145, i64 3 }, { ptr, i64 } { ptr @tn.str.146, i64 2 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 3 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 6 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 8 }, { ptr, i64 } { ptr @tn.str.155, i64 5 }, { ptr, i64 } { ptr @tn.str.156, i64 5 }, { ptr, i64 } { ptr @tn.str.157, i64 4 }, { ptr, i64 } { ptr @tn.str.158, i64 7 }, { ptr, i64 } { ptr @tn.str.159, i64 4 }, { ptr, i64 } { ptr @tn.str.160, i64 1 }, { ptr, i64 } { ptr @tn.str.161, i64 1 }, { ptr, i64 } { ptr @tn.str.162, i64 1 }, { ptr, i64 } { ptr @tn.str.163, i64 1 }, { ptr, i64 } { ptr @tn.str.164, i64 1 }, { ptr, i64 } { ptr @tn.str.165, i64 1 }, { ptr, i64 } { ptr @tn.str.166, i64 1 }, { ptr, i64 } { ptr @tn.str.167, i64 1 }, { ptr, i64 } { ptr @tn.str.168, i64 1 }, { ptr, i64 } { ptr @tn.str.169, i64 1 }, { ptr, i64 } { ptr @tn.str.170, i64 1 }, { ptr, i64 } { ptr @tn.str.171, i64 1 }, { ptr, i64 } { ptr @tn.str.172, i64 1 }, { ptr, i64 } { ptr @tn.str.173, i64 1 }, { ptr, i64 } { ptr @tn.str.174, i64 1 }, { ptr, i64 } { ptr @tn.str.175, i64 1 }, { ptr, i64 } { ptr @tn.str.176, i64 1 }, { ptr, i64 } { ptr @tn.str.177, i64 1 }, { ptr, i64 } { ptr @tn.str.178, i64 1 }, { ptr, i64 } { ptr @tn.str.179, i64 1 }, { ptr, i64 } { ptr @tn.str.180, i64 1 }, { ptr, i64 } { ptr @tn.str.181, i64 1 }, { ptr, i64 } { ptr @tn.str.182, i64 1 }, { ptr, i64 } { ptr @tn.str.183, i64 1 }, { ptr, i64 } { ptr @tn.str.184, i64 1 }, { ptr, i64 } { ptr @tn.str.185, i64 1 }, { ptr, i64 } { ptr @tn.str.186, i64 1 }, { ptr, i64 } { ptr @tn.str.187, i64 1 }, { ptr, i64 } { ptr @tn.str.188, i64 1 }, { ptr, i64 } { ptr @tn.str.189, i64 1 }, { ptr, i64 } { ptr @tn.str.190, i64 1 }, { ptr, i64 } { ptr @tn.str.191, i64 1 }, { ptr, i64 } { ptr @tn.str.192, i64 1 }, { ptr, i64 } { ptr @tn.str.193, i64 1 }, { ptr, i64 } { ptr @tn.str.194, i64 1 }, { ptr, i64 } { ptr @tn.str.195, i64 1 }, { ptr, i64 } { ptr @tn.str.196, i64 1 }, { ptr, i64 } { ptr @tn.str.197, i64 1 }, { ptr, i64 } { ptr @tn.str.198, i64 1 }, { ptr, i64 } { ptr @tn.str.199, i64 1 }, { ptr, i64 } { ptr @tn.str.200, i64 1 }, { ptr, i64 } { ptr @tn.str.201, i64 1 }, { ptr, i64 } { ptr @tn.str.202, i64 1 }, { ptr, i64 } { ptr @tn.str.203, i64 1 }, { ptr, i64 } { ptr @tn.str.204, i64 1 }, { ptr, i64 } { ptr @tn.str.205, i64 1 }, { ptr, i64 } { ptr @tn.str.206, i64 1 }, { ptr, i64 } { ptr @tn.str.207, i64 1 }, { ptr, i64 } { ptr @tn.str.208, i64 1 }, { ptr, i64 } { ptr @tn.str.209, i64 1 }, { ptr, i64 } { ptr @tn.str.210, i64 1 }, { ptr, i64 } { ptr @tn.str.211, i64 1 }, { ptr, i64 } { ptr @tn.str.212, i64 1 }, { ptr, i64 } { ptr @tn.str.213, i64 1 }, { ptr, i64 } { ptr @tn.str.214, i64 1 }, { ptr, i64 } { ptr @tn.str.215, i64 1 }, { ptr, i64 } { ptr @tn.str.216, i64 1 }, { ptr, i64 } { ptr @tn.str.217, i64 1 }, { ptr, i64 } { ptr @tn.str.218, i64 1 }, { ptr, i64 } { ptr @tn.str.219, i64 1 }, { ptr, i64 } { ptr @tn.str.220, i64 1 }, { ptr, i64 } { ptr @tn.str.221, i64 1 }, { ptr, i64 } { ptr @tn.str.222, i64 1 }, { ptr, i64 } { ptr @tn.str.223, i64 1 }, { ptr, i64 } { ptr @tn.str.224, i64 1 }, { ptr, i64 } { ptr @tn.str.225, i64 1 }, { ptr, i64 } { ptr @tn.str.226, i64 1 }, { ptr, i64 } { ptr @tn.str.227, i64 1 }, { ptr, i64 } { ptr @tn.str.228, i64 1 }, { ptr, i64 } { ptr @tn.str.229, i64 1 }, { ptr, i64 } { ptr @tn.str.230, i64 1 }, { ptr, i64 } { ptr @tn.str.231, i64 1 }, { ptr, i64 } { ptr @tn.str.232, i64 1 }, { ptr, i64 } { ptr @tn.str.233, i64 1 }, { ptr, i64 } { ptr @tn.str.234, i64 1 }, { ptr, i64 } { ptr @tn.str.235, i64 1 }, { ptr, i64 } { ptr @tn.str.236, i64 1 }, { ptr, i64 } { ptr @tn.str.237, i64 1 }, { ptr, i64 } { ptr @tn.str.238, i64 1 }, { ptr, i64 } { ptr @tn.str.239, i64 1 }, { ptr, i64 } { ptr @tn.str.240, i64 5 }, { ptr, i64 } { ptr @tn.str.241, i64 5 }, { ptr, i64 } { ptr @tn.str.242, i64 15 }, { ptr, i64 } { ptr @tn.str.243, i64 9 }, { ptr, i64 } { ptr @tn.str.244, i64 9 }, { ptr, i64 } { ptr @tn.str.245, i64 9 }, { ptr, i64 } { ptr @tn.str.246, i64 9 }, { ptr, i64 } { ptr @tn.str.247, i64 2 }, { ptr, i64 } { ptr @tn.str.248, i64 1 }, { ptr, i64 } { ptr @tn.str.249, i64 7 }, { ptr, i64 } { ptr @tn.str.250, i64 6 }, { ptr, i64 } { ptr @tn.str.251, i64 8 }, { ptr, i64 } { ptr @tn.str.252, i64 8 }, { ptr, i64 } { ptr @tn.str.253, i64 8 }, { ptr, i64 } { ptr @tn.str.254, i64 9 }, { ptr, i64 } { ptr @tn.str.255, i64 5 }, { ptr, i64 } { ptr @tn.str.256, i64 11 }, { ptr, i64 } { ptr @tn.str.257, i64 12 }, { ptr, i64 } { ptr @tn.str.258, i64 11 }, { ptr, i64 } { ptr @tn.str.259, i64 10 }, { ptr, i64 } { ptr @tn.str.260, i64 11 }, { ptr, i64 } { ptr @tn.str.261, i64 3 }, { ptr, i64 } { ptr @tn.str.262, i64 4 }, { ptr, i64 } { ptr @tn.str.263, i64 10 }, { ptr, i64 } { ptr @tn.str.264, i64 11 }, { ptr, i64 } { ptr @tn.str.265, i64 5 }, { ptr, i64 } { ptr @tn.str.266, i64 6 }, { ptr, i64 } { ptr @tn.str.267, i64 8 }, { ptr, i64 } { ptr @tn.str.268, i64 9 }, { ptr, i64 } { ptr @tn.str.269, i64 17 }, { ptr, i64 } { ptr @tn.str.270, i64 18 }, { ptr, i64 } { ptr @tn.str.271, i64 8 }, { ptr, i64 } { ptr @tn.str.272, i64 8 }, { ptr, i64 } { ptr @tn.str.273, i64 4 }, { ptr, i64 } { ptr @tn.str.274, i64 5 }, { ptr, i64 } { ptr @tn.str.275, i64 5 }, { ptr, i64 } { ptr @tn.str.276, i64 7 }, { ptr, i64 } { ptr @tn.str.277, i64 10 }, { ptr, i64 } { ptr @tn.str.278, i64 8 }, { ptr, i64 } { ptr @tn.str.279, i64 13 }, { ptr, i64 } { ptr @tn.str.280, i64 14 }, { ptr, i64 } { ptr @tn.str.281, i64 4 }, { ptr, i64 } { ptr @tn.str.282, i64 8 }, { ptr, i64 } { ptr @tn.str.283, i64 9 }, { ptr, i64 } { ptr @tn.str.284, i64 4 }, { ptr, i64 } { ptr @tn.str.285, i64 7 }, { ptr, i64 } { ptr @tn.str.286, i64 14 }, { ptr, i64 } { ptr @tn.str.287, i64 14 }, { ptr, i64 } { ptr @tn.str.288, i64 9 }, { ptr, i64 } { ptr @tn.str.289, i64 5 }, { ptr, i64 } { ptr @tn.str.290, i64 6 }, { ptr, i64 } { ptr @tn.str.291, i64 5 }, { ptr, i64 } { ptr @tn.str.292, i64 6 }, { ptr, i64 } { ptr @tn.str.293, i64 8 }, { ptr, i64 } { ptr @tn.str.294, i64 6 }, { ptr, i64 } { ptr @tn.str.295, i64 9 }, { ptr, i64 } { ptr @tn.str.296, i64 7 }, { ptr, i64 } { ptr @tn.str.297, i64 4 }, { ptr, i64 } { ptr @tn.str.298, i64 4 }, { ptr, i64 } { ptr @tn.str.299, i64 5 }, { ptr, i64 } { ptr @tn.str.300, i64 16 }, { ptr, i64 } { ptr @tn.str.301, i64 14 }, { ptr, i64 } { ptr @tn.str.302, i64 21 }, { ptr, i64 } { ptr @tn.str.303, i64 6 }, { ptr, i64 } { ptr @tn.str.304, i64 7 }, { ptr, i64 } { ptr @tn.str.305, i64 24 }, { ptr, i64 } { ptr @tn.str.306, i64 23 }, { ptr, i64 } { ptr @tn.str.307, i64 9 }, { ptr, i64 } { ptr @tn.str.308, i64 12 }, { ptr, i64 } { ptr @tn.str.309, i64 12 }, { ptr, i64 } { ptr @tn.str.310, i64 15 }, { ptr, i64 } { ptr @tn.str.311, i64 12 }, { ptr, i64 } { ptr @tn.str.312, i64 22 }, { ptr, i64 } { ptr @tn.str.313, i64 4 }, { ptr, i64 } { ptr @tn.str.314, i64 8 }, { ptr, i64 } { ptr @tn.str.315, i64 8 }, { ptr, i64 } { ptr @tn.str.316, i64 10 }, { ptr, i64 } { ptr @tn.str.317, i64 7 }, { ptr, i64 } { ptr @tn.str.318, i64 9 }, { ptr, i64 } { ptr @tn.str.319, i64 4 }, { ptr, i64 } { ptr @tn.str.320, i64 13 }, { ptr, i64 } { ptr @tn.str.321, i64 6 }, { ptr, i64 } { ptr @tn.str.322, i64 7 }, { ptr, i64 } { ptr @tn.str.323, i64 18 }, { ptr, i64 } { ptr @tn.str.324, i64 9 }, { ptr, i64 } { ptr @tn.str.325, i64 5 }, { ptr, i64 } { ptr @tn.str.326, i64 6 }, { ptr, i64 } { ptr @tn.str.327, i64 6 }, { ptr, i64 } { ptr @tn.str.328, i64 6 }, { ptr, i64 } { ptr @tn.str.329, i64 7 }, { ptr, i64 } { ptr @tn.str.330, i64 7 }, { ptr, i64 } { ptr @tn.str.331, i64 7 }, { ptr, i64 } { ptr @tn.str.332, i64 6 }, { ptr, i64 } { ptr @tn.str.333, i64 10 }, { ptr, i64 } { ptr @tn.str.334, i64 7 }, { ptr, i64 } { ptr @tn.str.335, i64 11 }, { ptr, i64 } { ptr @tn.str.336, i64 8 }, { ptr, i64 } { ptr @tn.str.337, i64 5 }, { ptr, i64 } { ptr @tn.str.338, i64 4 }, { ptr, i64 } { ptr @tn.str.339, i64 16 }, { ptr, i64 } { ptr @tn.str.340, i64 5 }, { ptr, i64 } { ptr @tn.str.341, i64 15 }, { ptr, i64 } { ptr @tn.str.342, i64 7 }, { ptr, i64 } { ptr @tn.str.343, i64 7 }, { ptr, i64 } { ptr @tn.str.344, i64 6 }, { ptr, i64 } { ptr @tn.str.345, i64 7 }, { ptr, i64 } { ptr @tn.str.346, i64 8 }, { ptr, i64 } { ptr @tn.str.347, i64 8 }, { ptr, i64 } { ptr @tn.str.348, i64 4 }, { ptr, i64 } { ptr @tn.str.349, i64 8 }, { ptr, i64 } { ptr @tn.str.350, i64 10 }, { ptr, i64 } { ptr @tn.str.351, i64 4 }, { ptr, i64 } { ptr @tn.str.352, i64 5 }, { ptr, i64 } { ptr @tn.str.353, i64 5 }, { ptr, i64 } { ptr @tn.str.354, i64 13 }, { ptr, i64 } { ptr @tn.str.355, i64 9 }, { ptr, i64 } { ptr @tn.str.356, i64 9 }, { ptr, i64 } { ptr @tn.str.357, i64 28 }, { ptr, i64 } { ptr @tn.str.358, i64 10 }, { ptr, i64 } { ptr @tn.str.359, i64 10 }, { ptr, i64 } { ptr @tn.str.360, i64 7 }, { ptr, i64 } { ptr @tn.str.361, i64 6 }, { ptr, i64 } { ptr @tn.str.362, i64 17 }, { ptr, i64 } { ptr @tn.str.363, i64 7 }, { ptr, i64 } { ptr @tn.str.364, i64 6 }, { ptr, i64 } { ptr @tn.str.365, i64 16 }, { ptr, i64 } { ptr @tn.str.366, i64 6 }, { ptr, i64 } { ptr @tn.str.367, i64 8 }, { ptr, i64 } { ptr @tn.str.368, i64 9 }, { ptr, i64 } { ptr @tn.str.369, i64 7 }, { ptr, i64 } { ptr @tn.str.370, i64 8 }, { ptr, i64 } { ptr @tn.str.371, i64 9 }, { ptr, i64 } { ptr @tn.str.372, i64 6 }, { ptr, i64 } { ptr @tn.str.373, i64 4 }, { ptr, i64 } { ptr @tn.str.374, i64 5 }, { ptr, i64 } { ptr @tn.str.375, i64 6 }, { ptr, i64 } { ptr @tn.str.376, i64 19 }, { ptr, i64 } { ptr @tn.str.377, i64 7 }, { ptr, i64 } { ptr @tn.str.378, i64 7 }, { ptr, i64 } { ptr @tn.str.379, i64 8 }, { ptr, i64 } { ptr @tn.str.380, i64 11 }, { ptr, i64 } { ptr @tn.str.381, i64 8 }, { ptr, i64 } { ptr @tn.str.382, i64 18 }, { ptr, i64 } { ptr @tn.str.383, i64 7 }, { ptr, i64 } { ptr @tn.str.384, i64 8 }, { ptr, i64 } { ptr @tn.str.385, i64 9 }, { ptr, i64 } { ptr @tn.str.386, i64 5 }, { ptr, i64 } { ptr @tn.str.387, i64 6 }, { ptr, i64 } { ptr @tn.str.388, i64 12 }, { ptr, i64 } { ptr @tn.str.389, i64 13 }, { ptr, i64 } { ptr @tn.str.390, i64 10 }, { ptr, i64 } { ptr @tn.str.391, i64 10 }, { ptr, i64 } { ptr @tn.str.392, i64 7 }, { ptr, i64 } { ptr @tn.str.393, i64 10 }, { ptr, i64 } { ptr @tn.str.394, i64 4 }, { ptr, i64 } { ptr @tn.str.395, i64 8 }, { ptr, i64 } { ptr @tn.str.396, i64 7 }, { ptr, i64 } { ptr @tn.str.397, i64 5 }, { ptr, i64 } { ptr @tn.str.398, i64 4 }, { ptr, i64 } { ptr @tn.str.399, i64 6 }, { ptr, i64 } { ptr @tn.str.400, i64 7 }, { ptr, i64 } { ptr @tn.str.401, i64 6 }, { ptr, i64 } { ptr @tn.str.402, i64 3 }, { ptr, i64 } { ptr @tn.str.403, i64 5 }, { ptr, i64 } { ptr @tn.str.404, i64 13 }, { ptr, i64 } { ptr @tn.str.405, i64 13 }, { ptr, i64 } { ptr @tn.str.406, i64 14 }, { ptr, i64 } { ptr @tn.str.407, i64 10 }, { ptr, i64 } { ptr @tn.str.408, i64 10 }, { ptr, i64 } { ptr @tn.str.409, i64 14 }, { ptr, i64 } { ptr @tn.str.410, i64 9 }, { ptr, i64 } { ptr @tn.str.411, i64 9 }, { ptr, i64 } { ptr @tn.str.412, i64 10 }, { ptr, i64 } { ptr @tn.str.413, i64 9 }, { ptr, i64 } { ptr @tn.str.414, i64 8 }, { ptr, i64 } { ptr @tn.str.415, i64 6 }, { ptr, i64 } { ptr @tn.str.416, i64 6 }, { ptr, i64 } { ptr @tn.str.417, i64 6 }, { ptr, i64 } { ptr @tn.str.418, i64 7 }, { ptr, i64 } { ptr @tn.str.419, i64 6 }, { ptr, i64 } { ptr @tn.str.420, i64 7 }, { ptr, i64 } { ptr @tn.str.421, i64 6 }, { ptr, i64 } { ptr @tn.str.422, i64 7 }, { ptr, i64 } { ptr @tn.str.423, i64 5 }, { ptr, i64 } { ptr @tn.str.424, i64 7 }, { ptr, i64 } { ptr @tn.str.425, i64 4 }, { ptr, i64 } { ptr @tn.str.426, i64 16 }, { ptr, i64 } { ptr @tn.str.427, i64 3 }, { ptr, i64 } { ptr @tn.str.428, i64 8 }, { ptr, i64 } { ptr @tn.str.429, i64 11 }, { ptr, i64 } { ptr @tn.str.430, i64 7 }, { ptr, i64 } { ptr @tn.str.431, i64 9 }, { ptr, i64 } { ptr @tn.str.432, i64 8 }, { ptr, i64 } { ptr @tn.str.433, i64 10 }, { ptr, i64 } { ptr @tn.str.434, i64 6 }, { ptr, i64 } { ptr @tn.str.435, i64 7 }, { ptr, i64 } { ptr @tn.str.436, i64 5 }, { ptr, i64 } { ptr @tn.str.437, i64 9 }, { ptr, i64 } { ptr @tn.str.438, i64 11 }, { ptr, i64 } { ptr @tn.str.439, i64 11 }, { ptr, i64 } { ptr @tn.str.440, i64 9 }, { ptr, i64 } { ptr @tn.str.441, i64 10 }, { ptr, i64 } { ptr @tn.str.442, i64 9 }, { ptr, i64 } { ptr @tn.str.443, i64 12 }, { ptr, i64 } { ptr @tn.str.444, i64 9 }, { ptr, i64 } { ptr @tn.str.445, i64 9 }, { ptr, i64 } { ptr @tn.str.446, i64 6 }, { ptr, i64 } { ptr @tn.str.447, i64 16 }, { ptr, i64 } { ptr @tn.str.448, i64 13 }, { ptr, i64 } { ptr @tn.str.449, i64 5 }, { ptr, i64 } { ptr @tn.str.450, i64 6 }, { ptr, i64 } { ptr @tn.str.451, i64 6 }, { ptr, i64 } { ptr @tn.str.452, i64 11 }, { ptr, i64 } { ptr @tn.str.453, i64 12 }, { ptr, i64 } { ptr @tn.str.454, i64 12 }, { ptr, i64 } { ptr @tn.str.455, i64 5 }, { ptr, i64 } { ptr @tn.str.456, i64 5 }, { ptr, i64 } { ptr @tn.str.457, i64 6 }, { ptr, i64 } { ptr @tn.str.458, i64 6 }, { ptr, i64 } { ptr @tn.str.459, i64 6 }, { ptr, i64 } { ptr @tn.str.460, i64 11 }, { ptr, i64 } { ptr @tn.str.461, i64 10 }, { ptr, i64 } { ptr @tn.str.462, i64 8 }, { ptr, i64 } { ptr @tn.str.463, i64 10 }, { ptr, i64 } { ptr @tn.str.464, i64 5 }, { ptr, i64 } { ptr @tn.str.465, i64 12 }, { ptr, i64 } { ptr @tn.str.466, i64 7 }, { ptr, i64 } { ptr @tn.str.467, i64 10 }, { ptr, i64 } { ptr @tn.str.468, i64 19 }, { ptr, i64 } { ptr @tn.str.469, i64 6 }, { ptr, i64 } { ptr @tn.str.470, i64 5 }, { ptr, i64 } { ptr @tn.str.471, i64 10 }, { ptr, i64 } { ptr @tn.str.472, i64 5 }, { ptr, i64 } { ptr @tn.str.473, i64 9 }, { ptr, i64 } { ptr @tn.str.474, i64 7 }, { ptr, i64 } { ptr @tn.str.475, i64 10 }, { ptr, i64 } { ptr @tn.str.476, i64 8 }, { ptr, i64 } { ptr @tn.str.477, i64 6 }, { ptr, i64 } { ptr @tn.str.478, i64 8 }, { ptr, i64 } { ptr @tn.str.479, i64 5 }, { ptr, i64 } { ptr @tn.str.480, i64 8 }, { ptr, i64 } { ptr @tn.str.481, i64 6 }, { ptr, i64 } { ptr @tn.str.482, i64 8 }, { ptr, i64 } { ptr @tn.str.483, i64 8 }, { ptr, i64 } { ptr @tn.str.484, i64 12 }, { ptr, i64 } { ptr @tn.str.485, i64 6 }, { ptr, i64 } { ptr @tn.str.486, i64 9 }, { ptr, i64 } { ptr @tn.str.487, i64 6 }, { ptr, i64 } { ptr @tn.str.488, i64 14 }, { ptr, i64 } { ptr @tn.str.489, i64 10 }, { ptr, i64 } { ptr @tn.str.490, i64 11 }, { ptr, i64 } { ptr @tn.str.491, i64 8 }, { ptr, i64 } { ptr @tn.str.492, i64 8 }, { ptr, i64 } { ptr @tn.str.493, i64 7 }, { ptr, i64 } { ptr @tn.str.494, i64 7 }, { ptr, i64 } { ptr @tn.str.495, i64 10 }, { ptr, i64 } { ptr @tn.str.496, i64 9 }, { ptr, i64 } { ptr @tn.str.497, i64 7 }, { ptr, i64 } { ptr @tn.str.498, i64 6 }, { ptr, i64 } { ptr @tn.str.499, i64 8 }, { ptr, i64 } { ptr @tn.str.500, i64 12 }, { ptr, i64 } { ptr @tn.str.501, i64 9 }, { ptr, i64 } { ptr @tn.str.502, i64 13 }, { ptr, i64 } { ptr @tn.str.503, i64 14 }, { ptr, i64 } { ptr @tn.str.504, i64 11 }, { ptr, i64 } { ptr @tn.str.505, i64 11 }, { ptr, i64 } { ptr @tn.str.506, i64 8 }, { ptr, i64 } { ptr @tn.str.507, i64 11 }, { ptr, i64 } { ptr @tn.str.508, i64 5 }, { ptr, i64 } { ptr @tn.str.509, i64 9 }, { ptr, i64 } { ptr @tn.str.510, i64 8 }, { ptr, i64 } { ptr @tn.str.511, i64 5 }, { ptr, i64 } { ptr @tn.str.512, i64 8 }, { ptr, i64 } { ptr @tn.str.513, i64 7 }, { ptr, i64 } { ptr @tn.str.514, i64 4 }, { ptr, i64 } { ptr @tn.str.515, i64 6 }, { ptr, i64 } { ptr @tn.str.516, i64 14 }, { ptr, i64 } { ptr @tn.str.517, i64 15 }, { ptr, i64 } { ptr @tn.str.518, i64 11 }, { ptr, i64 } { ptr @tn.str.519, i64 11 }, { ptr, i64 } { ptr @tn.str.520, i64 15 }, { ptr, i64 } { ptr @tn.str.521, i64 10 }, { ptr, i64 } { ptr @tn.str.522, i64 11 }, { ptr, i64 } { ptr @tn.str.523, i64 10 }, { ptr, i64 } { ptr @tn.str.524, i64 9 }, { ptr, i64 } { ptr @tn.str.525, i64 7 }, { ptr, i64 } { ptr @tn.str.526, i64 7 }, { ptr, i64 } { ptr @tn.str.527, i64 8 }, { ptr, i64 } { ptr @tn.str.528, i64 8 }, { ptr, i64 } { ptr @tn.str.529, i64 8 }, { ptr, i64 } { ptr @tn.str.530, i64 6 }, { ptr, i64 } { ptr @tn.str.531, i64 6 }, { ptr, i64 } { ptr @tn.str.532, i64 8 }, { ptr, i64 } { ptr @tn.str.533, i64 15 }, { ptr, i64 } { ptr @tn.str.534, i64 8 }] +@str.535 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.536 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.537 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.538 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.539 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.540 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.541 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.542 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.543 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.544 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.545 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.546 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.547 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.548 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.549 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.550 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.551 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.552 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.553 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.554 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.555 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.556 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.557 = private unnamed_addr constant [2 x i8] c"r\00", align 1 +@str.558 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.559 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.560 = private unnamed_addr constant [12 x i8] c"command -v \00", align 1 +@str.561 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.562 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.563 = private unnamed_addr constant [6 x i8] c"&\00", align 1 +@str.564 = private unnamed_addr constant [5 x i8] c"<\00", align 1 +@str.565 = private unnamed_addr constant [5 x i8] c">\00", align 1 +@str.566 = private unnamed_addr constant [7 x i8] c""\00", align 1 +@str.567 = private unnamed_addr constant [7 x i8] c"'\00", align 1 +@str.568 = private unnamed_addr constant [26 x i8] c"/embedded.mobileprovision\00", align 1 +@str.569 = private unnamed_addr constant [50 x i8] c"error: bundle: cannot read provisioning profile: \00", align 1 +@str.570 = private unnamed_addr constant [2 x i8] c"\0A\00", align 1 +@str.571 = private unnamed_addr constant [57 x i8] c"error: bundle: failed to write embedded.mobileprovision\0A\00", align 1 +@str.572 = private unnamed_addr constant [2 x i8] c"/\00", align 1 +@str.573 = private unnamed_addr constant [42 x i8] c"error: bundle: cannot create asset dest '\00", align 1 +@str.574 = private unnamed_addr constant [3 x i8] c"'\0A\00", align 1 +@str.575 = private unnamed_addr constant [8 x i8] c"cp -R \22\00", align 1 +@str.576 = private unnamed_addr constant [6 x i8] c"/.\22 \22\00", align 1 +@str.577 = private unnamed_addr constant [7 x i8] c"\22 2>&1\00", align 1 +@str.578 = private unnamed_addr constant [27 x i8] c"error: cp -R spawn failed\0A\00", align 1 +@str.579 = private unnamed_addr constant [22 x i8] c"error: cp -R failed:\0A\00", align 1 +@str.580 = private unnamed_addr constant [8 x i8] c".sx-tmp\00", align 1 +@str.581 = private unnamed_addr constant [22 x i8] c".sx-tmp/profile.plist\00", align 1 +@str.582 = private unnamed_addr constant [27 x i8] c".sx-tmp/entitlements.plist\00", align 1 +@str.583 = private unnamed_addr constant [21 x i8] c"security cms -D -i \22\00", align 1 +@str.584 = private unnamed_addr constant [7 x i8] c"\22 -o \22\00", align 1 +@str.585 = private unnamed_addr constant [7 x i8] c"\22 2>&1\00", align 1 +@str.586 = private unnamed_addr constant [34 x i8] c"error: security cms spawn failed\0A\00", align 1 +@str.587 = private unnamed_addr constant [39 x i8] c"plutil -extract Entitlements xml1 -o \22\00", align 1 +@str.588 = private unnamed_addr constant [4 x i8] c"\22 \22\00", align 1 +@str.589 = private unnamed_addr constant [7 x i8] c"\22 2>&1\00", align 1 +@str.590 = private unnamed_addr constant [47 x i8] c"error: failed to decode provisioning profile:\0A\00", align 1 +@str.591 = private unnamed_addr constant [36 x i8] c"error: plutil extract spawn failed\0A\00", align 1 +@str.592 = private unnamed_addr constant [57 x i8] c"plutil -extract ApplicationIdentifierPrefix.0 raw -o - \22\00", align 1 +@str.593 = private unnamed_addr constant [2 x i8] c"\22\00", align 1 +@str.594 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.595 = private unnamed_addr constant [40 x i8] c"error: failed to extract entitlements:\0A\00", align 1 +@str.596 = private unnamed_addr constant [56 x i8] c"error: plutil ApplicationIdentifierPrefix spawn failed\0A\00", align 1 +@str.597 = private unnamed_addr constant [53 x i8] c"error: profile missing ApplicationIdentifierPrefix:\0A\00", align 1 +@str.598 = private unnamed_addr constant [67 x i8] c"error: provisioning profile has empty ApplicationIdentifierPrefix\0A\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@str.600 = private unnamed_addr constant [49 x i8] c"plutil -replace application-identifier -string \22\00", align 1 +@str.601 = private unnamed_addr constant [4 x i8] c"\22 \22\00", align 1 +@str.602 = private unnamed_addr constant [7 x i8] c"\22 2>&1\00", align 1 +@str.603 = private unnamed_addr constant [36 x i8] c"error: plutil replace spawn failed\0A\00", align 1 +@str.604 = private unnamed_addr constant [50 x i8] c"error: failed to resolve application-identifier:\0A\00", align 1 +@str.605 = private unnamed_addr constant [26 x i8] c"codesign --force --sign \22\00", align 1 +@str.606 = private unnamed_addr constant [19 x i8] c"\22 --timestamp=none\00", align 1 +@str.607 = private unnamed_addr constant [18 x i8] c" --entitlements \22\00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"\22\00", align 1 +@str.609 = private unnamed_addr constant [3 x i8] c" \22\00", align 1 +@str.610 = private unnamed_addr constant [7 x i8] c"\22 2>&1\00", align 1 +@str.611 = private unnamed_addr constant [30 x i8] c"error: codesign spawn failed\0A\00", align 1 +@str.612 = private unnamed_addr constant [25 x i8] c"error: codesign failed:\0A\00", align 1 +@str.613 = private unnamed_addr constant [4 x i8] c"pwd\00", align 1 +@str.614 = private unnamed_addr constant [5 x i8] c"cd \22\00", align 1 +@str.615 = private unnamed_addr constant [6 x i8] c"\22 && \00", align 1 +@str.616 = private unnamed_addr constant [6 x i8] c" 2>&1\00", align 1 +@str.617 = private unnamed_addr constant [27 x i8] c"error: shell spawn failed\0A\00", align 1 +@str.618 = private unnamed_addr constant [8 x i8] c"error: \00", align 1 +@str.619 = private unnamed_addr constant [10 x i8] c" failed:\0A\00", align 1 +@str.620 = private unnamed_addr constant [13 x i8] c"ANDROID_HOME\00", align 1 +@str.621 = private unnamed_addr constant [17 x i8] c"ANDROID_SDK_ROOT\00", align 1 +@str.622 = private unnamed_addr constant [5 x i8] c"HOME\00", align 1 +@str.623 = private unnamed_addr constant [20 x i8] c"Library/Android/sdk\00", align 1 +@str.624 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.625 = private unnamed_addr constant [8 x i8] c"ls -1 \22\00", align 1 +@str.626 = private unnamed_addr constant [34 x i8] c"\22 2>/dev/null | sort -V | tail -1\00", align 1 +@str.627 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.628 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.629 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.630 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.631 = private unnamed_addr constant [10 x i8] c"JAVA_HOME\00", align 1 +@str.632 = private unnamed_addr constant [10 x i8] c"bin/javac\00", align 1 +@str.633 = private unnamed_addr constant [6 x i8] c"javac\00", align 1 +@str.634 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.635 = private unnamed_addr constant [19 x i8] c".sx-tmp/apk-assets\00", align 1 +@str.636 = private unnamed_addr constant [27 x i8] c"rm -rf .sx-tmp/apk-assets/\00", align 1 +@str.637 = private unnamed_addr constant [20 x i8] c".sx-tmp/apk-assets/\00", align 1 +@str.638 = private unnamed_addr constant [19 x i8] c".sx-tmp/apk-assets\00", align 1 +@str.639 = private unnamed_addr constant [43 x i8] c"error: apk: cannot create asset stage dir\0A\00", align 1 +@str.640 = private unnamed_addr constant [8 x i8] c"cp -R \22\00", align 1 +@str.641 = private unnamed_addr constant [23 x i8] c"\22 \22.sx-tmp/apk-assets/\00", align 1 +@str.642 = private unnamed_addr constant [7 x i8] c"\22 2>&1\00", align 1 +@str.643 = private unnamed_addr constant [37 x i8] c"error: cp -R asset dir spawn failed\0A\00", align 1 +@str.644 = private unnamed_addr constant [32 x i8] c"error: cp -R asset dir failed:\0A\00", align 1 +@str.645 = private unnamed_addr constant [12 x i8] c"zip -q -r \22\00", align 1 +@str.646 = private unnamed_addr constant [4 x i8] c"\22 \22\00", align 1 +@str.647 = private unnamed_addr constant [2 x i8] c"\22\00", align 1 +@str.648 = private unnamed_addr constant [19 x i8] c".sx-tmp/apk-assets\00", align 1 +@str.649 = private unnamed_addr constant [8 x i8] c"$(pwd)/\00", align 1 +@str.650 = private unnamed_addr constant [32 x i8] c"keytool -genkeypair -keystore \22\00", align 1 +@str.651 = private unnamed_addr constant [149 x i8] c"\22 -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname \22CN=Android Debug,O=Android,C=US\22 2>&1\00", align 1 +@str.652 = private unnamed_addr constant [29 x i8] c"error: keytool spawn failed\0A\00", align 1 +@str.653 = private unnamed_addr constant [24 x i8] c"error: keytool failed:\0A\00", align 1 +@str.654 = private unnamed_addr constant [17 x i8] c"guard armed: {}\0A\00", align 1 +@str.655 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.656 = private unnamed_addr constant [17 x i8] c"guard armed: {}\0A\00", align 1 +@str.657 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 +@str.658 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.659 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 +@str.660 = private unnamed_addr constant [849 x i8] c"\0A\0A \0A \0A \0A \0A \0A \0A \0A \0A \0A\0A\00", align 1 +@str.661 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.662 = private unnamed_addr constant [849 x i8] c"\0A\0A \0A \0A \0A \0A \0A \0A \0A \0A \0A\0A\00", align 1 +@str.663 = private unnamed_addr constant [869 x i8] c"\0A\0A \0A \0A \0A \0A \0A \0A \0A \0A \0A \0A\0A\00", align 1 +@str.664 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.665 = private unnamed_addr constant [869 x i8] c"\0A\0A \0A \0A \0A \0A \0A \0A \0A \0A \0A \0A\0A\00", align 1 +@str.666 = private unnamed_addr constant [1401 x i8] c"\0A\0A\0A\0A CFBundleIdentifier\0A {}\0A CFBundleName\0A {}\0A CFBundleExecutable\0A {}\0A CFBundlePackageType\0A APPL\0A CFBundleVersion\0A 1\0A CFBundleShortVersionString\0A 0.1\0A MinimumOSVersion\0A {}\0A UIDeviceFamily\0A \0A 1\0A \0A LSRequiresIPhoneOS\0A \0A UILaunchScreen\0A \0A UIApplicationSceneManifest\0A \0A UIApplicationSupportsMultipleScenes\0A \0A UISceneConfigurations\0A \0A UIWindowSceneSessionRoleApplication\0A \0A \0A UISceneConfigurationName\0A Default Configuration\0A UISceneDelegateClassName\0A SxSceneDelegate\0A \0A \0A \0A \0A DTPlatformName\0A {}\0A\0A\0A\00", align 1 +@str.667 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.668 = private unnamed_addr constant [1401 x i8] c"\0A\0A\0A\0A CFBundleIdentifier\0A {}\0A CFBundleName\0A {}\0A CFBundleExecutable\0A {}\0A CFBundlePackageType\0A APPL\0A CFBundleVersion\0A 1\0A CFBundleShortVersionString\0A 0.1\0A MinimumOSVersion\0A {}\0A UIDeviceFamily\0A \0A 1\0A \0A LSRequiresIPhoneOS\0A \0A UILaunchScreen\0A \0A UIApplicationSceneManifest\0A \0A UIApplicationSupportsMultipleScenes\0A \0A UISceneConfigurations\0A \0A UIWindowSceneSessionRoleApplication\0A \0A \0A UISceneConfigurationName\0A Default Configuration\0A UISceneDelegateClassName\0A SxSceneDelegate\0A \0A \0A \0A \0A DTPlatformName\0A {}\0A\0A\0A\00", align 1 +@str.669 = private unnamed_addr constant [539 x i8] c"\0A\0A\0A\0A CFBundleIdentifier\0A {}\0A CFBundleName\0A {}\0A CFBundleExecutable\0A {}\0A CFBundlePackageType\0A APPL\0A CFBundleVersion\0A 1\0A CFBundleShortVersionString\0A 0.1\0A\0A\0A\00", align 1 +@str.670 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.671 = private unnamed_addr constant [539 x i8] c"\0A\0A\0A\0A CFBundleIdentifier\0A {}\0A CFBundleName\0A {}\0A CFBundleExecutable\0A {}\0A CFBundlePackageType\0A APPL\0A CFBundleVersion\0A 1\0A CFBundleShortVersionString\0A 0.1\0A\0A\0A\00", align 1 +@str.672 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.673 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.674 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.675 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str = private constant [5 x i8] c"file\00" +@fld.str.676 = private constant [5 x i8] c"line\00" +@fld.str.677 = private constant [4 x i8] c"col\00" +@fld.str.678 = private constant [5 x i8] c"func\00" +@field_names = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str, i64 4 }, { ptr, i64 } { ptr @fld.str.676, i64 4 }, { ptr, i64 } { ptr @fld.str.677, i64 3 }, { ptr, i64 } { ptr @fld.str.678, i64 4 }] +@str.679 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.680 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.681 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.682 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.683 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.684 = private constant [4 x i8] c"ctx\00" +@fld.str.685 = private constant [12 x i8] c"alloc_bytes\00" +@fld.str.686 = private constant [14 x i8] c"dealloc_bytes\00" +@field_names.687 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.684, i64 3 }, { ptr, i64 } { ptr @fld.str.685, i64 11 }, { ptr, i64 } { ptr @fld.str.686, i64 13 }] +@str.688 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.689 = private unnamed_addr constant [10 x i8] c"SpawnOpts\00", align 1 +@str.690 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.691 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.692 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.693 = private constant [4 x i8] c"pin\00" +@field_names.694 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.693, i64 3 }] +@str.695 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.696 = private unnamed_addr constant [10 x i8] c"ParkToken\00", align 1 +@str.697 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.698 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.699 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.700 = private constant [7 x i8] c"handle\00" +@field_names.701 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.700, i64 6 }] +@str.702 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.703 = private unnamed_addr constant [3 x i8] c"Io\00", align 1 +@str.704 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.705 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.706 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.707 = private constant [4 x i8] c"ctx\00" +@fld.str.708 = private constant [10 x i8] c"spawn_raw\00" +@fld.str.709 = private constant [12 x i8] c"suspend_raw\00" +@fld.str.710 = private constant [6 x i8] c"ready\00" +@fld.str.711 = private constant [5 x i8] c"poll\00" +@fld.str.712 = private constant [7 x i8] c"now_ms\00" +@fld.str.713 = private constant [10 x i8] c"arm_timer\00" +@field_names.714 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.707, i64 3 }, { ptr, i64 } { ptr @fld.str.708, i64 9 }, { ptr, i64 } { ptr @fld.str.709, i64 11 }, { ptr, i64 } { ptr @fld.str.710, i64 5 }, { ptr, i64 } { ptr @fld.str.711, i64 4 }, { ptr, i64 } { ptr @fld.str.712, i64 6 }, { ptr, i64 } { ptr @fld.str.713, i64 9 }] +@str.715 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.716 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.717 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.718 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.719 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.720 = private constant [10 x i8] c"allocator\00" +@fld.str.721 = private constant [5 x i8] c"data\00" +@fld.str.722 = private constant [3 x i8] c"io\00" +@field_names.723 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.720, i64 9 }, { ptr, i64 } { ptr @fld.str.721, i64 4 }, { ptr, i64 } { ptr @fld.str.722, i64 2 }] +@str.724 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.725 = private unnamed_addr constant [9 x i8] c"Timespec\00", align 1 +@str.726 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.727 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.728 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.729 = private constant [4 x i8] c"sec\00" +@fld.str.730 = private constant [5 x i8] c"nsec\00" +@field_names.731 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.729, i64 3 }, { ptr, i64 } { ptr @fld.str.730, i64 4 }] +@str.732 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.733 = private unnamed_addr constant [12 x i8] c"CBlockingIo\00", align 1 +@str.734 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.735 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.736 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.737 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.738 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.739 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.740 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.741 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.742 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.743 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.744 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.745 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.746 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.747 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.748 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.749 = private constant [12 x i8] c"alloc_count\00" +@field_names.750 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.749, i64 11 }] +@str.751 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.752 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.753 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.754 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.755 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.756 = private constant [5 x i8] c"next\00" +@fld.str.757 = private constant [4 x i8] c"cap\00" +@field_names.758 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.756, i64 4 }, { ptr, i64 } { ptr @fld.str.757, i64 3 }] +@str.759 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.760 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.761 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.762 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.763 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.764 = private constant [6 x i8] c"first\00" +@fld.str.765 = private constant [10 x i8] c"end_index\00" +@fld.str.766 = private constant [7 x i8] c"parent\00" +@field_names.767 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.764, i64 5 }, { ptr, i64 } { ptr @fld.str.765, i64 9 }, { ptr, i64 } { ptr @fld.str.766, i64 6 }] +@str.768 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.769 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.770 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.771 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.772 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.773 = private constant [4 x i8] c"buf\00" +@fld.str.774 = private constant [4 x i8] c"len\00" +@fld.str.775 = private constant [4 x i8] c"pos\00" +@field_names.776 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.773, i64 3 }, { ptr, i64 } { ptr @fld.str.774, i64 3 }, { ptr, i64 } { ptr @fld.str.775, i64 3 }] +@str.777 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.778 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.779 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.780 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.781 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.782 = private constant [7 x i8] c"parent\00" +@fld.str.783 = private constant [12 x i8] c"alloc_count\00" +@fld.str.784 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.785 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.786 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.782, i64 6 }, { ptr, i64 } { ptr @fld.str.783, i64 11 }, { ptr, i64 } { ptr @fld.str.784, i64 13 }, { ptr, i64 } { ptr @fld.str.785, i64 17 }] +@str.787 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.788 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.789 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.790 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.791 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.792 = private constant [3 x i8] c"fd\00" +@field_names.793 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.792, i64 2 }] +@str.794 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.795 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.796 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.797 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.798 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.799 = private constant [5 x i8] c"file\00" +@fld.str.800 = private constant [5 x i8] c"line\00" +@fld.str.801 = private constant [4 x i8] c"col\00" +@fld.str.802 = private constant [5 x i8] c"func\00" +@fld.str.803 = private constant [10 x i8] c"line_text\00" +@field_names.804 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.799, i64 4 }, { ptr, i64 } { ptr @fld.str.800, i64 4 }, { ptr, i64 } { ptr @fld.str.801, i64 3 }, { ptr, i64 } { ptr @fld.str.802, i64 4 }, { ptr, i64 } { ptr @fld.str.803, i64 9 }] +@str.805 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.806 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.807 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.808 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.809 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.810 = private constant [10 x i8] c"exit_code\00" +@fld.str.811 = private constant [7 x i8] c"stdout\00" +@field_names.812 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.810, i64 9 }, { ptr, i64 } { ptr @fld.str.811, i64 6 }] +@str.813 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.814 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.815 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.816 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.817 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.818 = private constant [8 x i8] c"sin_len\00" +@fld.str.819 = private constant [11 x i8] c"sin_family\00" +@fld.str.820 = private constant [9 x i8] c"sin_port\00" +@fld.str.821 = private constant [9 x i8] c"sin_addr\00" +@fld.str.822 = private constant [9 x i8] c"sin_zero\00" +@field_names.823 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.818, i64 7 }, { ptr, i64 } { ptr @fld.str.819, i64 10 }, { ptr, i64 } { ptr @fld.str.820, i64 8 }, { ptr, i64 } { ptr @fld.str.821, i64 8 }, { ptr, i64 } { ptr @fld.str.822, i64 8 }] +@str.824 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.825 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.826 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.827 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.828 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.829 = private constant [6 x i8] c"items\00" +@fld.str.830 = private constant [4 x i8] c"len\00" +@fld.str.831 = private constant [4 x i8] c"cap\00" +@field_names.832 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.829, i64 5 }, { ptr, i64 } { ptr @fld.str.830, i64 3 }, { ptr, i64 } { ptr @fld.str.831, i64 3 }] +@str.833 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.834 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.835 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.836 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.837 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.838 = private constant [6 x i8] c"items\00" +@fld.str.839 = private constant [4 x i8] c"len\00" +@fld.str.840 = private constant [4 x i8] c"cap\00" +@field_names.841 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.838, i64 5 }, { ptr, i64 } { ptr @fld.str.839, i64 3 }, { ptr, i64 } { ptr @fld.str.840, i64 3 }] +@str.842 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.843 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.844 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.845 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.846 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.847 = private constant [4 x i8] c"key\00" +@fld.str.848 = private constant [4 x i8] c"val\00" +@field_names.849 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.847, i64 3 }, { ptr, i64 } { ptr @fld.str.848, i64 3 }] +@str.850 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.851 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.852 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.853 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.854 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.855 = private constant [4 x i8] c"dst\00" +@fld.str.856 = private constant [4 x i8] c"pos\00" +@fld.str.857 = private constant [5 x i8] c"file\00" +@field_names.858 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.855, i64 3 }, { ptr, i64 } { ptr @fld.str.856, i64 3 }, { ptr, i64 } { ptr @fld.str.857, i64 4 }] +@str.859 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.860 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.861 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.862 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.863 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.864 = private constant [4 x i8] c"src\00" +@fld.str.865 = private constant [4 x i8] c"pos\00" +@fld.str.866 = private constant [6 x i8] c"alloc\00" +@field_names.867 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.864, i64 3 }, { ptr, i64 } { ptr @fld.str.865, i64 3 }, { ptr, i64 } { ptr @fld.str.866, i64 5 }] +@str.868 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.869 = private unnamed_addr constant [13 x i8] c"List__string\00", align 1 +@str.870 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.871 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.872 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.873 = private constant [6 x i8] c"items\00" +@fld.str.874 = private constant [4 x i8] c"len\00" +@fld.str.875 = private constant [4 x i8] c"cap\00" +@field_names.876 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.873, i64 5 }, { ptr, i64 } { ptr @fld.str.874, i64 3 }, { ptr, i64 } { ptr @fld.str.875, i64 3 }] +@str.877 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.878 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.879 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.880 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.881 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.882 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.883 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.884 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.885 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.886 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.887 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.888 = private constant [5 x i8] c"name\00" +@fld.str.889 = private constant [12 x i8] c"takes_value\00" +@fld.str.890 = private constant [9 x i8] c"required\00" +@field_names.891 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.888, i64 4 }, { ptr, i64 } { ptr @fld.str.889, i64 11 }, { ptr, i64 } { ptr @fld.str.890, i64 8 }] +@str.892 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.893 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.894 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.895 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.896 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.897 = private constant [6 x i8] c"group\00" +@fld.str.898 = private constant [8 x i8] c"command\00" +@fld.str.899 = private constant [6 x i8] c"flags\00" +@field_names.900 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.897, i64 5 }, { ptr, i64 } { ptr @fld.str.898, i64 7 }, { ptr, i64 } { ptr @fld.str.899, i64 5 }] +@str.901 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.902 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.903 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.904 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.905 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.906 = private constant [4 x i8] c"set\00" +@fld.str.907 = private constant [6 x i8] c"value\00" +@field_names.908 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.906, i64 3 }, { ptr, i64 } { ptr @fld.str.907, i64 5 }] +@str.909 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.910 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.911 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.912 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.913 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.914 = private constant [6 x i8] c"index\00" +@fld.str.915 = private constant [6 x i8] c"token\00" +@field_names.916 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.914, i64 5 }, { ptr, i64 } { ptr @fld.str.915, i64 5 }] +@str.917 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.918 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.919 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.920 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.921 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.922 = private constant [6 x i8] c"group\00" +@fld.str.923 = private constant [8 x i8] c"command\00" +@fld.str.924 = private constant [10 x i8] c"cmd_index\00" +@fld.str.925 = private constant [5 x i8] c"json\00" +@fld.str.926 = private constant [5 x i8] c"rest\00" +@fld.str.927 = private constant [5 x i8] c"spec\00" +@fld.str.928 = private constant [7 x i8] c"values\00" +@field_names.929 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.922, i64 5 }, { ptr, i64 } { ptr @fld.str.923, i64 7 }, { ptr, i64 } { ptr @fld.str.924, i64 9 }, { ptr, i64 } { ptr @fld.str.925, i64 4 }, { ptr, i64 } { ptr @fld.str.926, i64 4 }, { ptr, i64 } { ptr @fld.str.927, i64 4 }, { ptr, i64 } { ptr @fld.str.928, i64 6 }] +@str.930 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.931 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.932 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.933 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.934 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.935 = private constant [2 x i8] c"h\00" +@fld.str.936 = private constant [4 x i8] c"buf\00" +@fld.str.937 = private constant [8 x i8] c"buf_len\00" +@fld.str.938 = private constant [10 x i8] c"total_len\00" +@field_names.939 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.935, i64 1 }, { ptr, i64 } { ptr @fld.str.936, i64 3 }, { ptr, i64 } { ptr @fld.str.937, i64 7 }, { ptr, i64 } { ptr @fld.str.938, i64 9 }] +@str.940 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.941 = private unnamed_addr constant [7 x i8] c"Kevent\00", align 1 +@str.942 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.943 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.944 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.945 = private constant [6 x i8] c"ident\00" +@fld.str.946 = private constant [7 x i8] c"filter\00" +@fld.str.947 = private constant [6 x i8] c"flags\00" +@fld.str.948 = private constant [7 x i8] c"fflags\00" +@fld.str.949 = private constant [5 x i8] c"data\00" +@fld.str.950 = private constant [6 x i8] c"udata\00" +@field_names.951 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.945, i64 5 }, { ptr, i64 } { ptr @fld.str.946, i64 6 }, { ptr, i64 } { ptr @fld.str.947, i64 5 }, { ptr, i64 } { ptr @fld.str.948, i64 6 }, { ptr, i64 } { ptr @fld.str.949, i64 4 }, { ptr, i64 } { ptr @fld.str.950, i64 5 }] +@str.952 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.953 = private unnamed_addr constant [11 x i8] c"KqTimespec\00", align 1 +@str.954 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.955 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.956 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.957 = private constant [4 x i8] c"sec\00" +@fld.str.958 = private constant [5 x i8] c"nsec\00" +@field_names.959 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.957, i64 3 }, { ptr, i64 } { ptr @fld.str.958, i64 4 }] +@str.960 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.961 = private unnamed_addr constant [6 x i8] c"Event\00", align 1 +@str.962 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.963 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.964 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.965 = private constant [3 x i8] c"fd\00" +@fld.str.966 = private constant [6 x i8] c"udata\00" +@fld.str.967 = private constant [9 x i8] c"readable\00" +@fld.str.968 = private constant [9 x i8] c"writable\00" +@fld.str.969 = private constant [4 x i8] c"eof\00" +@fld.str.970 = private constant [4 x i8] c"err\00" +@fld.str.971 = private constant [5 x i8] c"user\00" +@fld.str.972 = private constant [7 x i8] c"nbytes\00" +@field_names.973 = private constant [8 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.965, i64 2 }, { ptr, i64 } { ptr @fld.str.966, i64 5 }, { ptr, i64 } { ptr @fld.str.967, i64 8 }, { ptr, i64 } { ptr @fld.str.968, i64 8 }, { ptr, i64 } { ptr @fld.str.969, i64 3 }, { ptr, i64 } { ptr @fld.str.970, i64 3 }, { ptr, i64 } { ptr @fld.str.971, i64 4 }, { ptr, i64 } { ptr @fld.str.972, i64 6 }] +@str.974 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.975 = private unnamed_addr constant [5 x i8] c"Loop\00", align 1 +@str.976 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.977 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.978 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.979 = private constant [3 x i8] c"kq\00" +@field_names.980 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.979, i64 2 }] +@str.981 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.982 = private unnamed_addr constant [7 x i8] c"Config\00", align 1 +@str.983 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.984 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.985 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.986 = private constant [5 x i8] c"port\00" +@fld.str.987 = private constant [8 x i8] c"backlog\00" +@fld.str.988 = private constant [9 x i8] c"max_conn\00" +@fld.str.989 = private constant [13 x i8] c"read_buf_cap\00" +@fld.str.990 = private constant [19 x i8] c"timeout_request_ms\00" +@fld.str.991 = private constant [21 x i8] c"timeout_keepalive_ms\00" +@fld.str.992 = private constant [14 x i8] c"request_count\00" +@fld.str.993 = private constant [18 x i8] c"thread_pool_count\00" +@fld.str.994 = private constant [20 x i8] c"thread_pool_backlog\00" +@field_names.995 = private constant [9 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.986, i64 4 }, { ptr, i64 } { ptr @fld.str.987, i64 7 }, { ptr, i64 } { ptr @fld.str.988, i64 8 }, { ptr, i64 } { ptr @fld.str.989, i64 12 }, { ptr, i64 } { ptr @fld.str.990, i64 18 }, { ptr, i64 } { ptr @fld.str.991, i64 20 }, { ptr, i64 } { ptr @fld.str.992, i64 13 }, { ptr, i64 } { ptr @fld.str.993, i64 17 }, { ptr, i64 } { ptr @fld.str.994, i64 19 }] +@str.996 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.997 = private unnamed_addr constant [8 x i8] c"Request\00", align 1 +@str.998 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.999 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1000 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1001 = private constant [7 x i8] c"method\00" +@fld.str.1002 = private constant [5 x i8] c"path\00" +@fld.str.1003 = private constant [8 x i8] c"version\00" +@fld.str.1004 = private constant [12 x i8] c"headers_raw\00" +@fld.str.1005 = private constant [5 x i8] c"body\00" +@fld.str.1006 = private constant [11 x i8] c"keep_alive\00" +@field_names.1007 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1001, i64 6 }, { ptr, i64 } { ptr @fld.str.1002, i64 4 }, { ptr, i64 } { ptr @fld.str.1003, i64 7 }, { ptr, i64 } { ptr @fld.str.1004, i64 11 }, { ptr, i64 } { ptr @fld.str.1005, i64 4 }, { ptr, i64 } { ptr @fld.str.1006, i64 10 }] +@str.1008 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1009 = private unnamed_addr constant [9 x i8] c"Response\00", align 1 +@str.1010 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1011 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1012 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1013 = private constant [7 x i8] c"status\00" +@fld.str.1014 = private constant [13 x i8] c"content_type\00" +@fld.str.1015 = private constant [14 x i8] c"extra_headers\00" +@fld.str.1016 = private constant [5 x i8] c"body\00" +@field_names.1017 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1013, i64 6 }, { ptr, i64 } { ptr @fld.str.1014, i64 12 }, { ptr, i64 } { ptr @fld.str.1015, i64 13 }, { ptr, i64 } { ptr @fld.str.1016, i64 4 }] +@str.1018 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1019 = private unnamed_addr constant [5 x i8] c"Conn\00", align 1 +@str.1020 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1021 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1022 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1023 = private constant [3 x i8] c"fd\00" +@fld.str.1024 = private constant [6 x i8] c"state\00" +@fld.str.1025 = private constant [9 x i8] c"read_buf\00" +@fld.str.1026 = private constant [9 x i8] c"read_cap\00" +@fld.str.1027 = private constant [9 x i8] c"read_len\00" +@fld.str.1028 = private constant [8 x i8] c"out_buf\00" +@fld.str.1029 = private constant [8 x i8] c"out_len\00" +@fld.str.1030 = private constant [9 x i8] c"out_sent\00" +@fld.str.1031 = private constant [9 x i8] c"deadline\00" +@fld.str.1032 = private constant [7 x i8] c"served\00" +@fld.str.1033 = private constant [12 x i8] c"close_after\00" +@fld.str.1034 = private constant [12 x i8] c"write_armed\00" +@fld.str.1035 = private constant [4 x i8] c"gen\00" +@field_names.1036 = private constant [13 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1023, i64 2 }, { ptr, i64 } { ptr @fld.str.1024, i64 5 }, { ptr, i64 } { ptr @fld.str.1025, i64 8 }, { ptr, i64 } { ptr @fld.str.1026, i64 8 }, { ptr, i64 } { ptr @fld.str.1027, i64 8 }, { ptr, i64 } { ptr @fld.str.1028, i64 7 }, { ptr, i64 } { ptr @fld.str.1029, i64 7 }, { ptr, i64 } { ptr @fld.str.1030, i64 8 }, { ptr, i64 } { ptr @fld.str.1031, i64 8 }, { ptr, i64 } { ptr @fld.str.1032, i64 6 }, { ptr, i64 } { ptr @fld.str.1033, i64 11 }, { ptr, i64 } { ptr @fld.str.1034, i64 11 }, { ptr, i64 } { ptr @fld.str.1035, i64 3 }] +@str.1037 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1038 = private unnamed_addr constant [9 x i8] c"OutBytes\00", align 1 +@str.1039 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1040 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1041 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1042 = private constant [4 x i8] c"buf\00" +@fld.str.1043 = private constant [4 x i8] c"len\00" +@field_names.1044 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1042, i64 3 }, { ptr, i64 } { ptr @fld.str.1043, i64 3 }] +@str.1045 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1046 = private unnamed_addr constant [11 x i8] c"Completion\00", align 1 +@str.1047 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1048 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1049 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1050 = private constant [5 x i8] c"slot\00" +@fld.str.1051 = private constant [4 x i8] c"gen\00" +@fld.str.1052 = private constant [4 x i8] c"out\00" +@fld.str.1053 = private constant [12 x i8] c"close_after\00" +@fld.str.1054 = private constant [9 x i8] c"consumed\00" +@field_names.1055 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1050, i64 4 }, { ptr, i64 } { ptr @fld.str.1051, i64 3 }, { ptr, i64 } { ptr @fld.str.1052, i64 3 }, { ptr, i64 } { ptr @fld.str.1053, i64 11 }, { ptr, i64 } { ptr @fld.str.1054, i64 8 }] +@str.1056 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1057 = private unnamed_addr constant [5 x i8] c"Pool\00", align 1 +@str.1058 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1059 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1060 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1061 = private constant [3 x i8] c"mu\00" +@fld.str.1062 = private constant [9 x i8] c"nonempty\00" +@fld.str.1063 = private constant [6 x i8] c"tasks\00" +@fld.str.1064 = private constant [4 x i8] c"cap\00" +@fld.str.1065 = private constant [5 x i8] c"head\00" +@fld.str.1066 = private constant [4 x i8] c"len\00" +@fld.str.1067 = private constant [5 x i8] c"stop\00" +@fld.str.1068 = private constant [8 x i8] c"threads\00" +@fld.str.1069 = private constant [6 x i8] c"count\00" +@field_names.1070 = private constant [9 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1061, i64 2 }, { ptr, i64 } { ptr @fld.str.1062, i64 8 }, { ptr, i64 } { ptr @fld.str.1063, i64 5 }, { ptr, i64 } { ptr @fld.str.1064, i64 3 }, { ptr, i64 } { ptr @fld.str.1065, i64 4 }, { ptr, i64 } { ptr @fld.str.1066, i64 3 }, { ptr, i64 } { ptr @fld.str.1067, i64 4 }, { ptr, i64 } { ptr @fld.str.1068, i64 7 }, { ptr, i64 } { ptr @fld.str.1069, i64 5 }] +@str.1071 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1072 = private unnamed_addr constant [6 x i8] c"Mutex\00", align 1 +@str.1073 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1074 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1075 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1076 = private constant [4 x i8] c"buf\00" +@field_names.1077 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1076, i64 3 }] +@str.1078 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1079 = private unnamed_addr constant [10 x i8] c"PoolState\00", align 1 +@str.1080 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1081 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1082 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1083 = private constant [5 x i8] c"pool\00" +@fld.str.1084 = private constant [3 x i8] c"mu\00" +@fld.str.1085 = private constant [5 x i8] c"done\00" +@fld.str.1086 = private constant [9 x i8] c"done_cap\00" +@fld.str.1087 = private constant [9 x i8] c"done_len\00" +@fld.str.1088 = private constant [10 x i8] c"loop_copy\00" +@field_names.1089 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1083, i64 4 }, { ptr, i64 } { ptr @fld.str.1084, i64 2 }, { ptr, i64 } { ptr @fld.str.1085, i64 4 }, { ptr, i64 } { ptr @fld.str.1086, i64 8 }, { ptr, i64 } { ptr @fld.str.1087, i64 8 }, { ptr, i64 } { ptr @fld.str.1088, i64 9 }] +@str.1090 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1091 = private unnamed_addr constant [11 x i8] c"HandlerJob\00", align 1 +@str.1092 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1093 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1094 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1095 = private constant [8 x i8] c"handler\00" +@fld.str.1096 = private constant [8 x i8] c"app_ctx\00" +@fld.str.1097 = private constant [3 x i8] c"ps\00" +@fld.str.1098 = private constant [6 x i8] c"alloc\00" +@fld.str.1099 = private constant [4 x i8] c"req\00" +@fld.str.1100 = private constant [5 x i8] c"slot\00" +@fld.str.1101 = private constant [4 x i8] c"gen\00" +@fld.str.1102 = private constant [5 x i8] c"keep\00" +@fld.str.1103 = private constant [9 x i8] c"consumed\00" +@field_names.1104 = private constant [9 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1095, i64 7 }, { ptr, i64 } { ptr @fld.str.1096, i64 7 }, { ptr, i64 } { ptr @fld.str.1097, i64 2 }, { ptr, i64 } { ptr @fld.str.1098, i64 5 }, { ptr, i64 } { ptr @fld.str.1099, i64 3 }, { ptr, i64 } { ptr @fld.str.1100, i64 4 }, { ptr, i64 } { ptr @fld.str.1101, i64 3 }, { ptr, i64 } { ptr @fld.str.1102, i64 4 }, { ptr, i64 } { ptr @fld.str.1103, i64 8 }] +@str.1105 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1106 = private unnamed_addr constant [7 x i8] c"Server\00", align 1 +@str.1107 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1108 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1109 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1110 = private constant [4 x i8] c"cfg\00" +@fld.str.1111 = private constant [5 x i8] c"loop\00" +@fld.str.1112 = private constant [4 x i8] c"lfd\00" +@fld.str.1113 = private constant [6 x i8] c"conns\00" +@fld.str.1114 = private constant [10 x i8] c"own_alloc\00" +@fld.str.1115 = private constant [8 x i8] c"handler\00" +@fld.str.1116 = private constant [4 x i8] c"ctx\00" +@fld.str.1117 = private constant [3 x i8] c"ps\00" +@field_names.1118 = private constant [8 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1110, i64 3 }, { ptr, i64 } { ptr @fld.str.1111, i64 4 }, { ptr, i64 } { ptr @fld.str.1112, i64 3 }, { ptr, i64 } { ptr @fld.str.1113, i64 5 }, { ptr, i64 } { ptr @fld.str.1114, i64 9 }, { ptr, i64 } { ptr @fld.str.1115, i64 7 }, { ptr, i64 } { ptr @fld.str.1116, i64 3 }, { ptr, i64 } { ptr @fld.str.1117, i64 2 }] +@str.1119 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1120 = private unnamed_addr constant [9 x i8] c"MutexBuf\00", align 1 +@str.1121 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1122 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1123 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1124 = private constant [4 x i8] c"sig\00" +@fld.str.1125 = private constant [3 x i8] c"o0\00" +@fld.str.1126 = private constant [3 x i8] c"o1\00" +@fld.str.1127 = private constant [3 x i8] c"o2\00" +@fld.str.1128 = private constant [3 x i8] c"o3\00" +@fld.str.1129 = private constant [3 x i8] c"o4\00" +@fld.str.1130 = private constant [3 x i8] c"o5\00" +@fld.str.1131 = private constant [3 x i8] c"o6\00" +@field_names.1132 = private constant [8 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1124, i64 3 }, { ptr, i64 } { ptr @fld.str.1125, i64 2 }, { ptr, i64 } { ptr @fld.str.1126, i64 2 }, { ptr, i64 } { ptr @fld.str.1127, i64 2 }, { ptr, i64 } { ptr @fld.str.1128, i64 2 }, { ptr, i64 } { ptr @fld.str.1129, i64 2 }, { ptr, i64 } { ptr @fld.str.1130, i64 2 }, { ptr, i64 } { ptr @fld.str.1131, i64 2 }] +@str.1133 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1134 = private unnamed_addr constant [8 x i8] c"CondBuf\00", align 1 +@str.1135 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1136 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1137 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1138 = private constant [4 x i8] c"sig\00" +@fld.str.1139 = private constant [3 x i8] c"o0\00" +@fld.str.1140 = private constant [3 x i8] c"o1\00" +@fld.str.1141 = private constant [3 x i8] c"o2\00" +@fld.str.1142 = private constant [3 x i8] c"o3\00" +@fld.str.1143 = private constant [3 x i8] c"o4\00" +@field_names.1144 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1138, i64 3 }, { ptr, i64 } { ptr @fld.str.1139, i64 2 }, { ptr, i64 } { ptr @fld.str.1140, i64 2 }, { ptr, i64 } { ptr @fld.str.1141, i64 2 }, { ptr, i64 } { ptr @fld.str.1142, i64 2 }, { ptr, i64 } { ptr @fld.str.1143, i64 2 }] +@str.1145 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1146 = private unnamed_addr constant [5 x i8] c"Cond\00", align 1 +@str.1147 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1148 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1149 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1150 = private constant [4 x i8] c"buf\00" +@field_names.1151 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1150, i64 3 }] +@str.1152 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1153 = private unnamed_addr constant [7 x i8] c"Thread\00", align 1 +@str.1154 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1155 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1156 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1157 = private constant [7 x i8] c"handle\00" +@field_names.1158 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1157, i64 6 }] +@str.1159 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1160 = private unnamed_addr constant [9 x i8] c"PoolTask\00", align 1 +@str.1161 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1162 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1163 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1164 = private constant [2 x i8] c"f\00" +@fld.str.1165 = private constant [4 x i8] c"arg\00" +@field_names.1166 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1164, i64 1 }, { ptr, i64 } { ptr @fld.str.1165, i64 3 }] +@str.1167 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1168 = private unnamed_addr constant [9 x i8] c"FiberCtx\00", align 1 +@str.1169 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1170 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1171 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1172 = private constant [5 x i8] c"regs\00" +@field_names.1173 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1172, i64 4 }] +@str.1174 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1175 = private unnamed_addr constant [6 x i8] c"Fiber\00", align 1 +@str.1176 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1177 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1178 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1179 = private constant [4 x i8] c"ctx\00" +@fld.str.1180 = private constant [7 x i8] c"finish\00" +@fld.str.1181 = private constant [4 x i8] c"out\00" +@fld.str.1182 = private constant [9 x i8] c"guard_ok\00" +@field_names.1183 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1179, i64 3 }, { ptr, i64 } { ptr @fld.str.1180, i64 6 }, { ptr, i64 } { ptr @fld.str.1181, i64 3 }, { ptr, i64 } { ptr @fld.str.1182, i64 8 }] +@str.1184 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1185 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1186 = private constant [4 x i8] c"any\00" +@fld.str.1187 = private constant [5 x i8] c"main\00" +@fld.str.1188 = private constant [10 x i8] c"on_thread\00" +@field_names.1189 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1186, i64 3 }, { ptr, i64 } { ptr @fld.str.1187, i64 4 }, { ptr, i64 } { ptr @fld.str.1188, i64 9 }] +@str.1190 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1191 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1192 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1193 = private constant [8 x i8] c"relaxed\00" +@fld.str.1194 = private constant [8 x i8] c"acquire\00" +@fld.str.1195 = private constant [8 x i8] c"release\00" +@fld.str.1196 = private constant [8 x i8] c"acq_rel\00" +@fld.str.1197 = private constant [8 x i8] c"seq_cst\00" +@field_names.1198 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1193, i64 7 }, { ptr, i64 } { ptr @fld.str.1194, i64 7 }, { ptr, i64 } { ptr @fld.str.1195, i64 7 }, { ptr, i64 } { ptr @fld.str.1196, i64 7 }, { ptr, i64 } { ptr @fld.str.1197, i64 7 }] +@str.1199 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1200 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1201 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1202 = private constant [8 x i8] c"pending\00" +@fld.str.1203 = private constant [6 x i8] c"ready\00" +@fld.str.1204 = private constant [7 x i8] c"failed\00" +@fld.str.1205 = private constant [9 x i8] c"canceled\00" +@field_names.1206 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1202, i64 7 }, { ptr, i64 } { ptr @fld.str.1203, i64 5 }, { ptr, i64 } { ptr @fld.str.1204, i64 6 }, { ptr, i64 } { ptr @fld.str.1205, i64 8 }] +@str.1207 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1208 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1209 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1210 = private constant [5 x i8] c"read\00" +@fld.str.1211 = private constant [6 x i8] c"write\00" +@fld.str.1212 = private constant [7 x i8] c"append\00" +@fld.str.1213 = private constant [11 x i8] c"read_write\00" +@field_names.1214 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1210, i64 4 }, { ptr, i64 } { ptr @fld.str.1211, i64 5 }, { ptr, i64 } { ptr @fld.str.1212, i64 6 }, { ptr, i64 } { ptr @fld.str.1213, i64 10 }] +@str.1215 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1216 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1217 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1218 = private constant [4 x i8] c"set\00" +@fld.str.1219 = private constant [8 x i8] c"current\00" +@fld.str.1220 = private constant [4 x i8] c"end\00" +@field_names.1221 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1218, i64 3 }, { ptr, i64 } { ptr @fld.str.1219, i64 7 }, { ptr, i64 } { ptr @fld.str.1220, i64 3 }] +@str.1222 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1223 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1224 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1225 = private constant [6 x i8] c"null_\00" +@fld.str.1226 = private constant [6 x i8] c"bool_\00" +@fld.str.1227 = private constant [5 x i8] c"int_\00" +@fld.str.1228 = private constant [4 x i8] c"str\00" +@fld.str.1229 = private constant [6 x i8] c"array\00" +@fld.str.1230 = private constant [7 x i8] c"object\00" +@field_names.1231 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1225, i64 5 }, { ptr, i64 } { ptr @fld.str.1226, i64 5 }, { ptr, i64 } { ptr @fld.str.1227, i64 4 }, { ptr, i64 } { ptr @fld.str.1228, i64 3 }, { ptr, i64 } { ptr @fld.str.1229, i64 5 }, { ptr, i64 } { ptr @fld.str.1230, i64 6 }] +@str.1232 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1233 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1234 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1235 = private constant [6 x i8] c"macos\00" +@fld.str.1236 = private constant [6 x i8] c"linux\00" +@fld.str.1237 = private constant [8 x i8] c"windows\00" +@fld.str.1238 = private constant [5 x i8] c"wasm\00" +@fld.str.1239 = private constant [4 x i8] c"ios\00" +@fld.str.1240 = private constant [8 x i8] c"android\00" +@fld.str.1241 = private constant [8 x i8] c"unknown\00" +@field_names.1242 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1235, i64 5 }, { ptr, i64 } { ptr @fld.str.1236, i64 5 }, { ptr, i64 } { ptr @fld.str.1237, i64 7 }, { ptr, i64 } { ptr @fld.str.1238, i64 4 }, { ptr, i64 } { ptr @fld.str.1239, i64 3 }, { ptr, i64 } { ptr @fld.str.1240, i64 7 }, { ptr, i64 } { ptr @fld.str.1241, i64 7 }] +@str.1243 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1244 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1245 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1246 = private constant [8 x i8] c"aarch64\00" +@fld.str.1247 = private constant [7 x i8] c"x86_64\00" +@fld.str.1248 = private constant [7 x i8] c"wasm32\00" +@fld.str.1249 = private constant [7 x i8] c"wasm64\00" +@fld.str.1250 = private constant [8 x i8] c"unknown\00" +@field_names.1251 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1246, i64 7 }, { ptr, i64 } { ptr @fld.str.1247, i64 6 }, { ptr, i64 } { ptr @fld.str.1248, i64 6 }, { ptr, i64 } { ptr @fld.str.1249, i64 6 }, { ptr, i64 } { ptr @fld.str.1250, i64 7 }] +@str.1252 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1253 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1254 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1255 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1256 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1257 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1258 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1259 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1260 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1261 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1262 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1263 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1264 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1265 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1266 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1267 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1268 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1269 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1270 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1271 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1272 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1273 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1274 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1275 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1276 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1277 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1278 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1279 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1280 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1281 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1282 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.1283 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1284 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1285 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.1286 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1287 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1288 = private unnamed_addr constant [10 x i8] c"*Timespec\00", align 1 +@str.1289 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1290 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1291 = private unnamed_addr constant [13 x i8] c"*CBlockingIo\00", align 1 +@str.1292 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1293 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1294 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.1295 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1296 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1297 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.1298 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1299 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1300 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.1301 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1302 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1303 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.1304 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1305 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1306 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.1307 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1308 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1309 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.1310 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1311 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1312 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.1313 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1314 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1315 = private unnamed_addr constant [5 x i8] c"*i32\00", align 1 +@str.1316 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1317 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1318 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.1319 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1320 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1321 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.1322 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1323 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1324 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.1325 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1326 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1327 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.1328 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1329 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1330 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.1331 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1332 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1333 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.1334 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1335 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1336 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.1337 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1338 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1339 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.1340 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1341 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1342 = private unnamed_addr constant [10 x i8] c"[*]string\00", align 1 +@str.1343 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1344 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1345 = private unnamed_addr constant [5 x i8] c"*i64\00", align 1 +@str.1346 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1347 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1348 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.1349 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1350 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1351 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.1352 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1353 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1354 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.1355 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1356 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1357 = private unnamed_addr constant [8 x i8] c"*Kevent\00", align 1 +@str.1358 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1359 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1360 = private unnamed_addr constant [12 x i8] c"*KqTimespec\00", align 1 +@str.1361 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1362 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1363 = private unnamed_addr constant [6 x i8] c"*Loop\00", align 1 +@str.1364 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1365 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1366 = private unnamed_addr constant [9 x i8] c"*Request\00", align 1 +@str.1367 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1368 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1369 = private unnamed_addr constant [6 x i8] c"*Pool\00", align 1 +@str.1370 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1371 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1372 = private unnamed_addr constant [14 x i8] c"[*]Completion\00", align 1 +@str.1373 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1374 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1375 = private unnamed_addr constant [10 x i8] c"*Response\00", align 1 +@str.1376 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1377 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1378 = private unnamed_addr constant [11 x i8] c"*PoolState\00", align 1 +@str.1379 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1380 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1381 = private unnamed_addr constant [8 x i8] c"[*]Conn\00", align 1 +@str.1382 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1383 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1384 = private unnamed_addr constant [8 x i8] c"*Server\00", align 1 +@str.1385 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1386 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1387 = private unnamed_addr constant [7 x i8] c"*usize\00", align 1 +@str.1388 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1389 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1390 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.1391 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1392 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1393 = private unnamed_addr constant [10 x i8] c"*MutexBuf\00", align 1 +@str.1394 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1395 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1396 = private unnamed_addr constant [9 x i8] c"*CondBuf\00", align 1 +@str.1397 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1398 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1399 = private unnamed_addr constant [7 x i8] c"*Mutex\00", align 1 +@str.1400 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1401 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1402 = private unnamed_addr constant [6 x i8] c"*Cond\00", align 1 +@str.1403 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1404 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1405 = private unnamed_addr constant [8 x i8] c"*Thread\00", align 1 +@str.1406 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1407 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1408 = private unnamed_addr constant [12 x i8] c"[*]PoolTask\00", align 1 +@str.1409 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1410 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1411 = private unnamed_addr constant [9 x i8] c"[*]usize\00", align 1 +@str.1412 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1413 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1414 = private unnamed_addr constant [10 x i8] c"*FiberCtx\00", align 1 +@str.1415 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1416 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1417 = private unnamed_addr constant [7 x i8] c"*Fiber\00", align 1 +@str.1418 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1419 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1420 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.1421 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1422 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1423 = private unnamed_addr constant [14 x i8] c"**CBlockingIo\00", align 1 +@str.1424 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1425 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1426 = private unnamed_addr constant [11 x i8] c"*SpawnOpts\00", align 1 +@str.1427 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1428 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1429 = private unnamed_addr constant [11 x i8] c"*ParkToken\00", align 1 +@str.1430 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1431 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1432 = private unnamed_addr constant [8 x i8] c"**Fiber\00", align 1 +@str.1433 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1434 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1435 = private unnamed_addr constant [11 x i8] c"**FiberCtx\00", align 1 +@str.1436 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1437 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1438 = private unnamed_addr constant [5 x i8] c"*u64\00", align 1 +@str.1439 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1440 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1441 = private unnamed_addr constant [9 x i8] c"*[13]u64\00", align 1 +@str.1442 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1443 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1444 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.1445 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1446 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1447 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.1448 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1449 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1450 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.1451 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1452 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1453 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.1454 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1455 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1456 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.1457 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1458 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1459 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.1460 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1461 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1462 = private unnamed_addr constant [14 x i8] c"*BuildOptions\00", align 1 +@str.1463 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1464 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1465 = private unnamed_addr constant [14 x i8] c"*List__string\00", align 1 +@str.1466 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1467 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1468 = private unnamed_addr constant [15 x i8] c"**List__string\00", align 1 +@str.1469 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1470 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1471 = private unnamed_addr constant [11 x i8] c"*Allocator\00", align 1 +@str.1472 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1473 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1474 = private unnamed_addr constant [11 x i8] c"*[*]string\00", align 1 +@str.1475 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1476 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1477 = private unnamed_addr constant [15 x i8] c"*ProcessResult\00", align 1 +@str.1478 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1479 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1480 = private unnamed_addr constant [10 x i8] c"*[]string\00", align 1 +@str.1481 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1482 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1483 = private unnamed_addr constant [11 x i8] c"*[2]string\00", align 1 +@str.1484 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1485 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1486 = private unnamed_addr constant [10 x i8] c"*?cstring\00", align 1 +@str.1487 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1488 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1489 = private unnamed_addr constant [9 x i8] c"*cstring\00", align 1 +@str.1490 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1491 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1492 = private unnamed_addr constant [7 x i8] c"*[*]u8\00", align 1 +@str.1493 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1494 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1495 = private unnamed_addr constant [7 x i8] c"*isize\00", align 1 +@str.1496 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1497 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1498 = private unnamed_addr constant [8 x i8] c"*[4]Any\00", align 1 +@str.1499 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1500 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1501 = private unnamed_addr constant [8 x i8] c"*[5]Any\00", align 1 +@str.1502 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1503 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1504 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 +@str.1505 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1506 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1507 = private unnamed_addr constant [6 x i8] c"*Type\00", align 1 +@str.1508 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1509 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1510 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1511 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1512 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1513 = private unnamed_addr constant [5 x i8] c"null\00", align 1 + +declare i64 @write(i32, ptr, i64) + +; Function Attrs: nounwind +define internal void @out(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %dptr = extractvalue { ptr, i64 } %load, 0 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %call = call i64 @write(i32 1, ptr %dptr, i64 %len) + ret void +} + +declare ptr @malloc(i64) + +declare void @free(ptr) + +declare ptr @memcpy(ptr, ptr, i64) + +declare ptr @memset(ptr, i32, i64) + +; Function Attrs: nounwind +declare void @out.1(ptr, ptr) #0 + +; Function Attrs: nounwind +define internal { ptr, i64 } @alloc_string(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %add = add i64 %load, 1 + %loadN = load { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } }, ptr %0, align 8 + %sg = extractvalue { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } } %loadN, 0 + %sgN = extractvalue { ptr, ptr, ptr } %sg, 0 + %sgN = extractvalue { ptr, ptr, ptr } %sg, 1 + %icall = call ptr %sgN(ptr %0, ptr %sgN, i64 %add) + %allocaN = alloca ptr, align 8 + store ptr %icall, ptr %allocaN, align 8 + %loadN = load ptr, ptr %allocaN, align 8 + %loadN = load i64, ptr %alloca, align 8 + %addN = add i64 %loadN, 1 + %2 = call ptr @memset(ptr %loadN, i32 0, i64 %addN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } undef, ptr %allocaN, align 8 + %loadN = load ptr, ptr %allocaN, align 8 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + %pti = ptrtoint ptr %loadN to i64 + store i64 %pti, ptr %gep, align 8 + %loadN = load i64, ptr %alloca, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 %loadN, ptr %gepN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @int_to_string(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + %allocaN = alloca i1, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %icmp = icmp eq i64 %load, 0 + br i1 %icmp, label %if.then.20, label %if.merge.21 + +if.then.20: ; preds = %entry + ret { ptr, i64 } { ptr @str, i64 1 } + +if.merge.21: ; preds = %entry + %loadN = load i64, ptr %alloca, align 8 + %icmpN = icmp slt i64 %loadN, 0 + store i1 %icmpN, ptr %allocaN, align 1 + %call = call { ptr, i64 } @alloc_string(ptr %0, i64 20) + store { ptr, i64 } %call, ptr %allocaN, align 8 + store i64 19, ptr %allocaN, align 8 + %loadN = load i64, ptr %alloca, align 8 + store i64 %loadN, ptr %allocaN, align 8 + br label %while.hdr.22 + +while.hdr.22: ; preds = %if.merge.26, %if.merge.21 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp ne i64 %loadN, 0 + br i1 %icmpN, label %while.body.23, label %while.exit.24 + +while.body.23: ; preds = %while.hdr.22 + %loadN = load i64, ptr %allocaN, align 8 + %srem = srem i64 %loadN, 10 + store i64 %srem, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp slt i64 %loadN, 0 + br i1 %icmpN, label %if.then.25, label %if.merge.26 + +while.exit.24: ; preds = %while.hdr.22 + %loadN = load i1, ptr %allocaN, align 1 + br i1 %loadN, label %if.then.27, label %if.merge.28 + +if.then.25: ; preds = %while.body.23 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 0, %loadN + store i64 %sub, ptr %allocaN, align 8 + br label %if.merge.26 + +if.merge.26: ; preds = %if.then.25, %while.body.23 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 48 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr = getelementptr i8, ptr %igp.data, i64 %loadN + %trunc = trunc i64 %add to i8 + store i8 %trunc, ptr %igp.ptr, align 1 + %loadN = load i64, ptr %allocaN, align 8 + %sdiv = sdiv i64 %loadN, 10 + store i64 %sdiv, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + store i64 %subN, ptr %allocaN, align 8 + br label %while.hdr.22 + +if.then.27: ; preds = %while.exit.24 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data24 = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr25 = getelementptr i8, ptr %igp.data24, i64 %loadN + store i8 45, ptr %igp.ptr25, align 1 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + store i64 %subN, ptr %allocaN, align 8 + br label %if.merge.28 + +if.merge.28: ; preds = %if.then.27, %while.exit.24 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 19, %loadN + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %addN, i64 %subN) + ret { ptr, i64 } %callN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @uint_to_string(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + %allocaN = alloca [4 x i64], align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %icmp = icmp eq i64 %load, 0 + br i1 %icmp, label %if.then.527, label %if.merge.528 + +if.then.527: ; preds = %entry + ret { ptr, i64 } { ptr @str.109, i64 1 } + +if.merge.528: ; preds = %entry + %loadN = load i64, ptr %alloca, align 8 + %call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN) + store [4 x i64] %call, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @alloc_string(ptr %0, i64 20) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + store i64 19, ptr %allocaN, align 8 + br label %while.hdr.537 + +while.hdr.537: ; preds = %while.exit.548, %if.merge.528 + %igp.ptr = getelementptr i64, ptr %allocaN, i64 0 + %loadN = load i64, ptr %igp.ptr, align 8 + %icmpN = icmp ne i64 %loadN, 0 + br i1 %icmpN, label %or.merge.541, label %or.rhs.540 + +while.body.538: ; preds = %or.merge.545 + store i64 0, ptr %allocaN, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.546 + +while.exit.539: ; preds = %or.merge.545 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 19, %loadN + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %add, i64 %sub) + ret { ptr, i64 } %callN + +or.rhs.540: ; preds = %while.hdr.537 + %igp.ptr14 = getelementptr i64, ptr %allocaN, i64 1 + %loadN = load i64, ptr %igp.ptr14, align 8 + %icmpN = icmp ne i64 %loadN, 0 + br label %or.merge.541 + +or.merge.541: ; preds = %or.rhs.540, %while.hdr.537 + %bp = phi i1 [ true, %while.hdr.537 ], [ %icmpN, %or.rhs.540 ] + br i1 %bp, label %or.merge.543, label %or.rhs.542 + +or.rhs.542: ; preds = %or.merge.541 + %igp.ptr17 = getelementptr i64, ptr %allocaN, i64 2 + %loadN = load i64, ptr %igp.ptr17, align 8 + %icmpN = icmp ne i64 %loadN, 0 + br label %or.merge.543 + +or.merge.543: ; preds = %or.rhs.542, %or.merge.541 + %bpN = phi i1 [ true, %or.merge.541 ], [ %icmpN, %or.rhs.542 ] + br i1 %bpN, label %or.merge.545, label %or.rhs.544 + +or.rhs.544: ; preds = %or.merge.543 + %igp.ptr21 = getelementptr i64, ptr %allocaN, i64 3 + %loadN = load i64, ptr %igp.ptr21, align 8 + %icmpN = icmp ne i64 %loadN, 0 + br label %or.merge.545 + +or.merge.545: ; preds = %or.rhs.544, %or.merge.543 + %bpN = phi i1 [ true, %or.merge.543 ], [ %icmpN, %or.rhs.544 ] + br i1 %bpN, label %while.body.538, label %while.exit.539 + +while.hdr.546: ; preds = %while.body.547, %while.body.538 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp slt i64 %loadN, 4 + br i1 %icmpN, label %while.body.547, label %while.exit.548 + +while.body.547: ; preds = %while.hdr.546 + %loadN = load i64, ptr %allocaN, align 8 + %mul = mul i64 %loadN, 65536 + %loadN = load i64, ptr %allocaN, align 8 + %igp.ptr29 = getelementptr i64, ptr %allocaN, i64 %loadN + %loadN = load i64, ptr %igp.ptr29, align 8 + %addN = add i64 %mul, %loadN + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sdiv = sdiv i64 %loadN, 10 + %loadN = load i64, ptr %allocaN, align 8 + %igp.ptr35 = getelementptr i64, ptr %allocaN, i64 %loadN + store i64 %sdiv, ptr %igp.ptr35, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %srem = srem i64 %loadN, 10 + store i64 %srem, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + store i64 %addN, ptr %allocaN, align 8 + br label %while.hdr.546 + +while.exit.548: ; preds = %while.hdr.546 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 48 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr43 = getelementptr i8, ptr %igp.data, i64 %loadN + %trunc = trunc i64 %addN to i8 + store i8 %trunc, ptr %igp.ptr43, align 1 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + store i64 %subN, ptr %allocaN, align 8 + br label %while.hdr.537 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @bool_to_string(ptr %0, i1 %1) #0 { +entry: + %alloca = alloca i1, align 1 + store i1 %1, ptr %alloca, align 1 + %load = load i1, ptr %alloca, align 1 + br i1 %load, label %if.then.549, label %if.else.550 + +if.then.549: ; preds = %entry + br label %if.merge.551 + +if.else.550: ; preds = %entry + br label %if.merge.551 + +if.merge.551: ; preds = %if.else.550, %if.then.549 + %bp = phi { ptr, i64 } [ { ptr @str.110, i64 4 }, %if.then.549 ], [ { ptr @str.111, i64 5 }, %if.else.550 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @float_to_string(ptr %0, double %1) #0 { +entry: + %alloca = alloca double, align 8 + %allocaN = alloca double, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + store double %1, ptr %alloca, align 8 + %load = load double, ptr %alloca, align 8 + %fcmp = fcmp olt double %load, 0.000000e+00 + %allocaN = alloca i1, align 1 + store i1 %fcmp, ptr %allocaN, align 1 + %loadN = load i1, ptr %allocaN, align 1 + br i1 %loadN, label %if.then.555, label %if.else.556 + +if.then.555: ; preds = %entry + %loadN = load double, ptr %alloca, align 8 + %fsub = fsub double 0.000000e+00, %loadN + br label %if.merge.557 + +if.else.556: ; preds = %entry + %loadN = load double, ptr %alloca, align 8 + br label %if.merge.557 + +if.merge.557: ; preds = %if.else.556, %if.then.555 + %bp = phi double [ %fsub, %if.then.555 ], [ %loadN, %if.else.556 ] + store double %bp, ptr %allocaN, align 8 + %loadN = load double, ptr %allocaN, align 8 + %fptosi = fptosi double %loadN to i64 + store i64 %fptosi, ptr %allocaN, align 8 + %loadN = load double, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sitofp = sitofp i64 %loadN to double + %fsubN = fsub double %loadN, %sitofp + %fmul = fmul double %fsubN, 1.000000e+06 + %fptosiN = fptosi double %fmul to i64 + store i64 %fptosiN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %loadN, 0 + br i1 %icmp, label %if.then.558, label %if.merge.559 + +if.then.558: ; preds = %if.merge.557 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 0, %loadN + store i64 %sub, ptr %allocaN, align 8 + br label %if.merge.559 + +if.merge.559: ; preds = %if.then.558, %if.merge.557 + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN) + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + store i64 %len, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + store i64 %lenN, ptr %allocaN, align 8 + %loadN = load i1, ptr %allocaN, align 1 + br i1 %loadN, label %if.then.560, label %if.else.561 + +if.then.560: ; preds = %if.merge.559 + br label %if.merge.562 + +if.else.561: ; preds = %if.merge.559 + br label %if.merge.562 + +if.merge.562: ; preds = %if.else.561, %if.then.560 + %bpN = phi i64 [ 1, %if.then.560 ], [ 0, %if.else.561 ] + store i64 %bpN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, %loadN + %addN = add i64 %add, 1 + %addN = add i64 %addN, 6 + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @alloc_string(ptr %0, i64 %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + store i64 0, ptr %allocaN, align 8 + %loadN = load i1, ptr %allocaN, align 1 + br i1 %loadN, label %if.then.563, label %if.merge.564 + +if.then.563: ; preds = %if.merge.562 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr = getelementptr i8, ptr %igp.data, i64 0 + store i8 45, ptr %igp.ptr, align 1 + store i64 1, ptr %allocaN, align 8 + br label %if.merge.564 + +if.merge.564: ; preds = %if.then.563, %if.merge.562 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data41 = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr42 = getelementptr i8, ptr %igp.data41, i64 %loadN + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call ptr @memcpy(ptr %igp.ptr42, ptr %dptr, i64 %loadN) + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, %loadN + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data51 = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr52 = getelementptr i8, ptr %igp.data51, i64 %loadN + store i8 46, ptr %igp.ptr52, align 1 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 6, %loadN + store i64 %subN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data60 = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr61 = getelementptr i8, ptr %igp.data60, i64 %loadN + %loadN = load i64, ptr %allocaN, align 8 + %2 = call ptr @memset(ptr %igp.ptr61, i32 48, i64 %loadN) + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, %loadN + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data68 = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr69 = getelementptr i8, ptr %igp.data68, i64 %loadN + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call ptr @memcpy(ptr %igp.ptr69, ptr %dptrN, i64 %loadN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal void @hex_group(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %2, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 %3, ptr %allocaN, align 8 + %load = load i64, ptr %allocaN, align 8 + %add = add i64 %load, 3 + %allocaN = alloca i64, align 8 + store i64 %add, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 %loadN, ptr %allocaN, align 8 + br label %while.hdr.1060 + +while.hdr.1060: ; preds = %if.merge.1065, %entry + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp sge i64 %loadN, %loadN + br i1 %icmp, label %while.body.1061, label %while.exit.1062 + +while.body.1061: ; preds = %while.hdr.1060 + %loadN = load i64, ptr %allocaN, align 8 + %srem = srem i64 %loadN, 16 + store i64 %srem, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp slt i64 %loadN, 10 + br i1 %icmpN, label %if.then.1063, label %if.else.1064 + +while.exit.1062: ; preds = %while.hdr.1060 + ret void + +if.then.1063: ; preds = %while.body.1061 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 48 + br label %if.merge.1065 + +if.else.1064: ; preds = %while.body.1061 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 %loadN, 10 + %addN = add i64 %sub, 97 + br label %if.merge.1065 + +if.merge.1065: ; preds = %if.else.1064, %if.then.1063 + %bp = phi i64 [ %addN, %if.then.1063 ], [ %addN, %if.else.1064 ] + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %igp.data = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr = getelementptr i8, ptr %igp.data, i64 %loadN + %trunc = trunc i64 %bp to i8 + store i8 %trunc, ptr %igp.ptr, align 1 + %loadN = load i64, ptr %allocaN, align 8 + %sdiv = sdiv i64 %loadN, 16 + store i64 %sdiv, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + store i64 %subN, ptr %allocaN, align 8 + br label %while.hdr.1060 +} + +; Function Attrs: nounwind +define internal [4 x i64] @decompose_u16x4(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca [4 x i64], align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %srem = srem i64 %load, 65536 + %allocaN = alloca i64, align 8 + store i64 %srem, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %loadN, 0 + br i1 %icmp, label %if.then.529, label %if.merge.530 + +if.then.529: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 65536 + store i64 %add, ptr %allocaN, align 8 + br label %if.merge.530 + +if.merge.530: ; preds = %if.then.529, %entry + %loadN = load i64, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 %loadN, %loadN + %sdiv = sdiv i64 %sub, 65536 + store i64 %sdiv, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sremN = srem i64 %loadN, 65536 + store i64 %sremN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp slt i64 %loadN, 0 + br i1 %icmpN, label %if.then.531, label %if.merge.532 + +if.then.531: ; preds = %if.merge.530 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 65536 + store i64 %addN, ptr %allocaN, align 8 + br label %if.merge.532 + +if.merge.532: ; preds = %if.then.531, %if.merge.530 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, %loadN + %sdivN = sdiv i64 %subN, 65536 + store i64 %sdivN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sremN = srem i64 %loadN, 65536 + store i64 %sremN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp slt i64 %loadN, 0 + br i1 %icmpN, label %if.then.533, label %if.merge.534 + +if.then.533: ; preds = %if.merge.532 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 65536 + store i64 %addN, ptr %allocaN, align 8 + br label %if.merge.534 + +if.merge.534: ; preds = %if.then.533, %if.merge.532 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, %loadN + %sdivN = sdiv i64 %subN, 65536 + store i64 %sdivN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sremN = srem i64 %loadN, 65536 + store i64 %sremN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp slt i64 %loadN, 0 + br i1 %icmpN, label %if.then.535, label %if.merge.536 + +if.then.535: ; preds = %if.merge.534 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 65536 + store i64 %addN, ptr %allocaN, align 8 + br label %if.merge.536 + +if.merge.536: ; preds = %if.then.535, %if.merge.534 + %loadN = load i64, ptr %allocaN, align 8 + %igp.ptr = getelementptr i64, ptr %allocaN, i64 0 + store i64 %loadN, ptr %igp.ptr, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %igp.ptr41 = getelementptr i64, ptr %allocaN, i64 1 + store i64 %loadN, ptr %igp.ptr41, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %igp.ptr43 = getelementptr i64, ptr %allocaN, i64 2 + store i64 %loadN, ptr %igp.ptr43, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %igp.ptr45 = getelementptr i64, ptr %allocaN, i64 3 + store i64 %loadN, ptr %igp.ptr45, align 8 + %loadN = load [4 x i64], ptr %allocaN, align 8 + ret [4 x i64] %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @int_to_hex_string(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + %allocaN = alloca [4 x i64], align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %icmp = icmp eq i64 %load, 0 + br i1 %icmp, label %if.then.1058, label %if.merge.1059 + +if.then.1058: ; preds = %entry + ret { ptr, i64 } { ptr @str.112, i64 1 } + +if.merge.1059: ; preds = %entry + %loadN = load i64, ptr %alloca, align 8 + %call = call [4 x i64] @decompose_u16x4(ptr %0, i64 %loadN) + store [4 x i64] %call, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @alloc_string(ptr %0, i64 16) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.ptr = getelementptr i64, ptr %allocaN, i64 0 + %loadN = load i64, ptr %igp.ptr, align 8 + call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %loadN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.ptr8 = getelementptr i64, ptr %allocaN, i64 1 + %loadN = load i64, ptr %igp.ptr8, align 8 + call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 4, i64 %loadN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.ptr11 = getelementptr i64, ptr %allocaN, i64 2 + %loadN = load i64, ptr %igp.ptr11, align 8 + call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 8, i64 %loadN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.ptr14 = getelementptr i64, ptr %allocaN, i64 3 + %loadN = load i64, ptr %igp.ptr14, align 8 + call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %loadN) + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.1066 + +while.hdr.1066: ; preds = %if.merge.1070, %if.merge.1059 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp slt i64 %loadN, 15 + br i1 %icmpN, label %while.body.1067, label %while.exit.1068 + +while.body.1067: ; preds = %while.hdr.1066 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %loadN + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext = zext i8 %ig.val to i64 + %icmpN = icmp ne i64 %cmp.ext, 48 + br i1 %icmpN, label %if.then.1069, label %if.merge.1070 + +while.exit.1068: ; preds = %if.then.1069, %while.hdr.1066 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 16, %loadN + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) + ret { ptr, i64 } %callN + +if.then.1069: ; preds = %while.body.1067 + br label %while.exit.1068 + +if.merge.1070: ; preds = %while.body.1067 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.1066 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @concat(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %load, 1 + %allocaN = alloca i64, align 8 + store i64 %len, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %allocaN = alloca i64, align 8 + store i64 %lenN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, %loadN + %call = call { ptr, i64 } @alloc_string(ptr %0, i64 %add) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call ptr @memcpy(ptr %dptr, ptr %dptrN, i64 %loadN) + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr = getelementptr i8, ptr %igp.data, i64 %loadN + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call ptr @memcpy(ptr %igp.ptr, ptr %dptrN, i64 %loadN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @substr(ptr %0, { ptr, i64 } %1, i64 %2, i64 %3) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %2, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 %3, ptr %allocaN, align 8 + %load = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @alloc_string(ptr %0, i64 %load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %igp.data = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr = getelementptr i8, ptr %igp.data, i64 %loadN + %loadN = load i64, ptr %allocaN, align 8 + %callN = call ptr @memcpy(ptr %dptr, ptr %igp.ptr, i64 %loadN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal i64 @cstring_len(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca ptr, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.107 + +while.hdr.107: ; preds = %while.body.108, %entry + %loadN = load ptr, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.ptr = getelementptr i8, ptr %loadN, i64 %loadN + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext = zext i8 %ig.val to i64 + %icmp = icmp ne i64 %cmp.ext, 0 + br i1 %icmp, label %while.body.108, label %while.exit.109 + +while.body.108: ; preds = %while.hdr.107 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.107 + +while.exit.109: ; preds = %while.hdr.107 + %loadN = load i64, ptr %allocaN, align 8 + ret i64 %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @from_cstring(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca ptr, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %loadN = load ptr, ptr %allocaN, align 8 + %loadN = load ptr, ptr %alloca, align 8 + %call = call i64 @cstring_len(ptr %0, ptr %loadN) + %si = insertvalue { ptr, i64 } undef, ptr %loadN, 0 + %siN = insertvalue { ptr, i64 } %si, i64 %call, 1 + ret { ptr, i64 } %siN +} + +; Function Attrs: nounwind +define internal ptr @to_cstring(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %load, 1 + %call = call { ptr, i64 } @alloc_string(ptr %0, i64 %len) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %callN = call ptr @memcpy(ptr %dptr, ptr %dptrN, i64 %lenN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + ret ptr %dptrN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @path_join(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i8, align 1 + %allocaN = alloca i8, align 1 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.113, i64 0 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.91 + +while.hdr.91: ; preds = %if.merge.95, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.92, label %while.exit.93 + +while.body.92: ; preds = %while.hdr.91 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN + %ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8 + store { ptr, i64 } %ig.val, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %lenN, 0 + br i1 %icmpN, label %if.then.94, label %if.merge.95 + +while.exit.93: ; preds = %while.hdr.91 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN + +if.then.94: ; preds = %while.body.92 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %lenN, 0 + br i1 %icmpN, label %if.then.96, label %if.merge.97 + +if.merge.95: ; preds = %if.merge.97, %while.body.92 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.91 + +if.then.96: ; preds = %if.then.94 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %sub = sub i64 %lenN, 1 + %ig.data18 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr19 = getelementptr i8, ptr %ig.data18, i64 %sub + %ig.val20 = load i8, ptr %ig.ptr19, align 1 + store i8 %ig.val20, ptr %allocaN, align 1 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ig.data23 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr24 = getelementptr i8, ptr %ig.data23, i64 0 + %ig.val25 = load i8, ptr %ig.ptr24, align 1 + store i8 %ig.val25, ptr %allocaN, align 1 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext, 47 + br i1 %icmpN, label %if.then.98, label %if.else.99 + +if.merge.97: ; preds = %if.merge.100, %if.then.94 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %call, ptr %allocaN, align 8 + br label %if.merge.95 + +if.then.98: ; preds = %if.then.96 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext32 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext32, 47 + br i1 %icmpN, label %if.then.101, label %if.merge.102 + +if.else.99: ; preds = %if.then.96 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext35 = zext i8 %loadN to i64 + %icmpN = icmp ne i64 %cmp.ext35, 47 + br i1 %icmpN, label %if.then.103, label %if.merge.104 + +if.merge.100: ; preds = %if.merge.104, %if.merge.102 + br label %if.merge.97 + +if.then.101: ; preds = %if.then.98 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 1, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.102 + +if.merge.102: ; preds = %if.then.101, %if.then.98 + br label %if.merge.100 + +if.then.103: ; preds = %if.else.99 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 1 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.104 + +if.merge.104: ; preds = %if.then.103, %if.else.99 + br label %if.merge.100 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %1) #0 { +entry: + %alloca = alloca { i64, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca double, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i32, align 4 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { i64, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.115, i64 3 }, ptr %allocaN, align 8 + %load = load { i64, i64 }, ptr %alloca, align 8 + %sg = extractvalue { i64, i64 } %load, 0 + %allocaN = alloca i64, align 8 + store i64 %sg, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %match.unr.523 [ + i64 17, label %match.arm.509 + i64 2, label %match.arm.510 + i64 3, label %match.arm.510 + i64 4, label %match.arm.510 + i64 5, label %match.arm.510 + i64 6, label %match.arm.510 + i64 7, label %match.arm.510 + i64 8, label %match.arm.510 + i64 9, label %match.arm.510 + i64 16, label %match.arm.510 + i64 15, label %match.arm.510 + i64 12, label %match.arm.511 + i64 1, label %match.arm.512 + i64 10, label %match.arm.513 + i64 11, label %match.arm.513 + i64 102, label %match.arm.514 + i64 103, label %match.arm.514 + i64 105, label %match.arm.514 + i64 106, label %match.arm.514 + i64 107, label %match.arm.514 + i64 109, label %match.arm.514 + i64 113, label %match.arm.514 + i64 116, label %match.arm.514 + i64 119, label %match.arm.514 + i64 121, label %match.arm.514 + i64 123, label %match.arm.514 + i64 125, label %match.arm.514 + i64 127, label %match.arm.514 + i64 129, label %match.arm.514 + i64 133, label %match.arm.514 + i64 137, label %match.arm.514 + i64 139, label %match.arm.514 + i64 142, label %match.arm.514 + i64 149, label %match.arm.514 + i64 150, label %match.arm.514 + i64 152, label %match.arm.514 + i64 158, label %match.arm.514 + i64 163, label %match.arm.514 + i64 168, label %match.arm.514 + i64 169, label %match.arm.514 + i64 175, label %match.arm.514 + i64 177, label %match.arm.514 + i64 178, label %match.arm.514 + i64 179, label %match.arm.514 + i64 181, label %match.arm.514 + i64 188, label %match.arm.514 + i64 192, label %match.arm.514 + i64 193, label %match.arm.514 + i64 197, label %match.arm.514 + i64 198, label %match.arm.514 + i64 204, label %match.arm.514 + i64 205, label %match.arm.514 + i64 206, label %match.arm.514 + i64 208, label %match.arm.514 + i64 209, label %match.arm.514 + i64 210, label %match.arm.514 + i64 211, label %match.arm.514 + i64 213, label %match.arm.514 + i64 215, label %match.arm.514 + i64 219, label %match.arm.514 + i64 221, label %match.arm.514 + i64 227, label %match.arm.514 + i64 229, label %match.arm.514 + i64 233, label %match.arm.514 + i64 235, label %match.arm.514 + i64 239, label %match.arm.514 + i64 244, label %match.arm.514 + i64 246, label %match.arm.514 + i64 104, label %match.arm.515 + i64 112, label %match.arm.515 + i64 118, label %match.arm.515 + i64 131, label %match.arm.515 + i64 132, label %match.arm.515 + i64 151, label %match.arm.515 + i64 170, label %match.arm.515 + i64 171, label %match.arm.515 + i64 108, label %match.arm.516 + i64 115, label %match.arm.516 + i64 145, label %match.arm.516 + i64 148, label %match.arm.516 + i64 161, label %match.arm.516 + i64 174, label %match.arm.516 + i64 196, label %match.arm.516 + i64 203, label %match.arm.516 + i64 231, label %match.arm.516 + i64 110, label %match.arm.518 + i64 180, label %match.arm.518 + i64 186, label %match.arm.518 + i64 187, label %match.arm.518 + i64 191, label %match.arm.518 + i64 243, label %match.arm.518 + i64 259, label %match.arm.518 + i64 271, label %match.arm.518 + i64 277, label %match.arm.518 + i64 279, label %match.arm.518 + i64 281, label %match.arm.518 + i64 111, label %match.arm.519 + i64 157, label %match.arm.519 + i64 176, label %match.arm.519 + i64 184, label %match.arm.519 + i64 202, label %match.arm.519 + i64 257, label %match.arm.519 + i64 100, label %match.arm.520 + i64 101, label %match.arm.520 + i64 114, label %match.arm.520 + i64 117, label %match.arm.520 + i64 120, label %match.arm.520 + i64 122, label %match.arm.520 + i64 124, label %match.arm.520 + i64 126, label %match.arm.520 + i64 128, label %match.arm.520 + i64 130, label %match.arm.520 + i64 134, label %match.arm.520 + i64 141, label %match.arm.520 + i64 143, label %match.arm.520 + i64 144, label %match.arm.520 + i64 153, label %match.arm.520 + i64 154, label %match.arm.520 + i64 155, label %match.arm.520 + i64 156, label %match.arm.520 + i64 159, label %match.arm.520 + i64 164, label %match.arm.520 + i64 167, label %match.arm.520 + i64 173, label %match.arm.520 + i64 182, label %match.arm.520 + i64 185, label %match.arm.520 + i64 189, label %match.arm.520 + i64 194, label %match.arm.520 + i64 195, label %match.arm.520 + i64 200, label %match.arm.520 + i64 207, label %match.arm.520 + i64 212, label %match.arm.520 + i64 214, label %match.arm.520 + i64 216, label %match.arm.520 + i64 218, label %match.arm.520 + i64 220, label %match.arm.520 + i64 223, label %match.arm.520 + i64 224, label %match.arm.520 + i64 226, label %match.arm.520 + i64 228, label %match.arm.520 + i64 230, label %match.arm.520 + i64 232, label %match.arm.520 + i64 234, label %match.arm.520 + i64 237, label %match.arm.520 + i64 240, label %match.arm.520 + i64 241, label %match.arm.520 + i64 245, label %match.arm.520 + i64 247, label %match.arm.520 + i64 248, label %match.arm.520 + i64 249, label %match.arm.520 + i64 250, label %match.arm.520 + i64 251, label %match.arm.520 + i64 252, label %match.arm.520 + i64 253, label %match.arm.520 + i64 254, label %match.arm.520 + i64 255, label %match.arm.520 + i64 256, label %match.arm.520 + i64 258, label %match.arm.520 + i64 260, label %match.arm.520 + i64 261, label %match.arm.520 + i64 262, label %match.arm.520 + i64 263, label %match.arm.520 + i64 264, label %match.arm.520 + i64 265, label %match.arm.520 + i64 266, label %match.arm.520 + i64 267, label %match.arm.520 + i64 268, label %match.arm.520 + i64 269, label %match.arm.520 + i64 270, label %match.arm.520 + i64 272, label %match.arm.520 + i64 273, label %match.arm.520 + i64 274, label %match.arm.520 + i64 275, label %match.arm.520 + i64 276, label %match.arm.520 + i64 278, label %match.arm.520 + i64 280, label %match.arm.520 + i64 282, label %match.arm.520 + i64 283, label %match.arm.520 + i64 135, label %match.arm.521 + i64 136, label %match.arm.521 + i64 138, label %match.arm.521 + i64 140, label %match.arm.521 + i64 190, label %match.arm.521 + i64 19, label %match.arm.522 + ] + +match.merge.508: ; preds = %dispatch.merge.1296, %dispatch.merge.977, %dispatch.merge.954, %dispatch.merge.911, %dispatch.merge.885, %dispatch.merge.565, %float.merge.554, %if.merge.526, %match.unr.523, %match.arm.522, %match.arm.516, %match.arm.512, %match.arm.511, %match.arm.509 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN + +match.arm.509: ; preds = %entry + store { ptr, i64 } { ptr @str.116, i64 0 }, ptr %allocaN, align 8 + br label %match.merge.508 + +match.arm.510: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry + %loadN = load i64, ptr %allocaN, align 8 + %tiu.gep = getelementptr inbounds [395 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %loadN + %tiu.load = load i1, ptr %tiu.gep, align 1 + br i1 %tiu.load, label %if.then.524, label %if.else.525 + +match.arm.511: ; preds = %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr = inttoptr i64 %ua.raw to ptr + %ua.load = load { ptr, i64 }, ptr %ua.ptr, align 8 + store { ptr, i64 } %ua.load, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.508 + +match.arm.512: ; preds = %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw10 = extractvalue { i64, i64 } %loadN, 1 + %tr = trunc i64 %ua.raw10 to i1 + %call = call { ptr, i64 } @bool_to_string(ptr %0, i1 %tr) + store { ptr, i64 } %call, ptr %allocaN, align 8 + br label %match.merge.508 + +match.arm.513: ; preds = %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %sgN = extractvalue { i64, i64 } %loadN, 0 + %icmp = icmp eq i64 %sgN, 10 + br i1 %icmp, label %fN.unbox.552, label %fN.unbox.553 + +match.arm.514: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %loadN, label %dispatch.default.566 [ + i64 102, label %dispatch.case.567 + i64 103, label %dispatch.case.568 + i64 105, label %dispatch.case.569 + i64 106, label %dispatch.case.570 + i64 107, label %dispatch.case.571 + i64 109, label %dispatch.case.572 + i64 113, label %dispatch.case.573 + i64 116, label %dispatch.case.574 + i64 119, label %dispatch.case.575 + i64 121, label %dispatch.case.576 + i64 123, label %dispatch.case.577 + i64 125, label %dispatch.case.578 + i64 127, label %dispatch.case.579 + i64 129, label %dispatch.case.580 + i64 133, label %dispatch.case.581 + i64 137, label %dispatch.case.582 + i64 139, label %dispatch.case.583 + i64 142, label %dispatch.case.584 + i64 149, label %dispatch.case.585 + i64 150, label %dispatch.case.586 + i64 152, label %dispatch.case.587 + i64 158, label %dispatch.case.588 + i64 163, label %dispatch.case.589 + i64 168, label %dispatch.case.590 + i64 169, label %dispatch.case.591 + i64 175, label %dispatch.case.592 + i64 177, label %dispatch.case.593 + i64 178, label %dispatch.case.594 + i64 179, label %dispatch.case.595 + i64 181, label %dispatch.case.596 + i64 188, label %dispatch.case.597 + i64 192, label %dispatch.case.598 + i64 193, label %dispatch.case.599 + i64 197, label %dispatch.case.600 + i64 198, label %dispatch.case.601 + i64 204, label %dispatch.case.602 + i64 205, label %dispatch.case.603 + i64 206, label %dispatch.case.604 + i64 208, label %dispatch.case.605 + i64 209, label %dispatch.case.606 + i64 210, label %dispatch.case.607 + i64 211, label %dispatch.case.608 + i64 213, label %dispatch.case.609 + i64 215, label %dispatch.case.610 + i64 219, label %dispatch.case.611 + i64 221, label %dispatch.case.612 + i64 227, label %dispatch.case.613 + i64 229, label %dispatch.case.614 + i64 233, label %dispatch.case.615 + i64 235, label %dispatch.case.616 + i64 239, label %dispatch.case.617 + i64 244, label %dispatch.case.618 + i64 246, label %dispatch.case.619 + ] + +match.arm.515: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %loadN, label %dispatch.default.886 [ + i64 104, label %dispatch.case.887 + i64 112, label %dispatch.case.888 + i64 118, label %dispatch.case.889 + i64 131, label %dispatch.case.890 + i64 132, label %dispatch.case.891 + i64 151, label %dispatch.case.892 + i64 170, label %dispatch.case.893 + i64 171, label %dispatch.case.894 + ] + +match.arm.516: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw22 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw22 to i32 + store i32 %trN, ptr %allocaN, align 4 + %loadN = load i32, ptr %allocaN, align 4 + %etn.idx = zext i32 %loadN to i64 + %etn.gep = getelementptr inbounds [25 x { ptr, i64 }], ptr @tag_names, i64 0, i64 %etn.idx + %etn.load = load { ptr, i64 }, ptr %etn.gep, align 8 + store { ptr, i64 } %etn.load, ptr %allocaN, align 8 + br label %match.merge.508 + +match.arm.517: ; No predecessors! + unreachable + +match.arm.518: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %loadN, label %dispatch.default.912 [ + i64 110, label %dispatch.case.913 + i64 180, label %dispatch.case.914 + i64 186, label %dispatch.case.915 + i64 187, label %dispatch.case.916 + i64 191, label %dispatch.case.917 + i64 243, label %dispatch.case.918 + i64 259, label %dispatch.case.919 + i64 271, label %dispatch.case.920 + i64 277, label %dispatch.case.921 + i64 279, label %dispatch.case.922 + i64 281, label %dispatch.case.923 + ] + +match.arm.519: ; preds = %entry, %entry, %entry, %entry, %entry, %entry + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %loadN, label %dispatch.default.955 [ + i64 111, label %dispatch.case.956 + i64 157, label %dispatch.case.957 + i64 176, label %dispatch.case.958 + i64 184, label %dispatch.case.959 + i64 202, label %dispatch.case.960 + i64 257, label %dispatch.case.961 + ] + +match.arm.520: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %loadN, label %dispatch.default.978 [ + i64 100, label %dispatch.case.979 + i64 101, label %dispatch.case.980 + i64 114, label %dispatch.case.981 + i64 117, label %dispatch.case.982 + i64 120, label %dispatch.case.983 + i64 122, label %dispatch.case.984 + i64 124, label %dispatch.case.985 + i64 126, label %dispatch.case.986 + i64 128, label %dispatch.case.987 + i64 130, label %dispatch.case.988 + i64 134, label %dispatch.case.989 + i64 141, label %dispatch.case.990 + i64 143, label %dispatch.case.991 + i64 144, label %dispatch.case.992 + i64 153, label %dispatch.case.993 + i64 154, label %dispatch.case.994 + i64 155, label %dispatch.case.995 + i64 156, label %dispatch.case.996 + i64 159, label %dispatch.case.997 + i64 164, label %dispatch.case.998 + i64 167, label %dispatch.case.999 + i64 173, label %dispatch.case.1000 + i64 182, label %dispatch.case.1001 + i64 185, label %dispatch.case.1002 + i64 189, label %dispatch.case.1003 + i64 194, label %dispatch.case.1004 + i64 195, label %dispatch.case.1005 + i64 200, label %dispatch.case.1006 + i64 207, label %dispatch.case.1007 + i64 212, label %dispatch.case.1008 + i64 214, label %dispatch.case.1009 + i64 216, label %dispatch.case.1010 + i64 218, label %dispatch.case.1011 + i64 220, label %dispatch.case.1012 + i64 223, label %dispatch.case.1013 + i64 224, label %dispatch.case.1014 + i64 226, label %dispatch.case.1015 + i64 228, label %dispatch.case.1016 + i64 230, label %dispatch.case.1017 + i64 232, label %dispatch.case.1018 + i64 234, label %dispatch.case.1019 + i64 237, label %dispatch.case.1020 + i64 240, label %dispatch.case.1021 + i64 241, label %dispatch.case.1022 + i64 245, label %dispatch.case.1023 + i64 247, label %dispatch.case.1024 + i64 248, label %dispatch.case.1025 + i64 249, label %dispatch.case.1026 + i64 250, label %dispatch.case.1027 + i64 251, label %dispatch.case.1028 + i64 252, label %dispatch.case.1029 + i64 253, label %dispatch.case.1030 + i64 254, label %dispatch.case.1031 + i64 255, label %dispatch.case.1032 + i64 256, label %dispatch.case.1033 + i64 258, label %dispatch.case.1034 + i64 260, label %dispatch.case.1035 + i64 261, label %dispatch.case.1036 + i64 262, label %dispatch.case.1037 + i64 263, label %dispatch.case.1038 + i64 264, label %dispatch.case.1039 + i64 265, label %dispatch.case.1040 + i64 266, label %dispatch.case.1041 + i64 267, label %dispatch.case.1042 + i64 268, label %dispatch.case.1043 + i64 269, label %dispatch.case.1044 + i64 270, label %dispatch.case.1045 + i64 272, label %dispatch.case.1046 + i64 273, label %dispatch.case.1047 + i64 274, label %dispatch.case.1048 + i64 275, label %dispatch.case.1049 + i64 276, label %dispatch.case.1050 + i64 278, label %dispatch.case.1051 + i64 280, label %dispatch.case.1052 + i64 282, label %dispatch.case.1053 + i64 283, label %dispatch.case.1054 + ] + +match.arm.521: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %loadN, label %dispatch.default.1297 [ + i64 135, label %dispatch.case.1298 + i64 136, label %dispatch.case.1299 + i64 138, label %dispatch.case.1300 + i64 140, label %dispatch.case.1301 + i64 190, label %dispatch.case.1302 + ] + +match.arm.522: ; preds = %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %refl.tag = extractvalue { i64, i64 } %loadN, 0 + %refl.val = extractvalue { i64, i64 } %loadN, 1 + %refl.istype = icmp eq i64 %refl.tag, 19 + %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag + %tn.gep = getelementptr inbounds [395 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid + %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 + store { ptr, i64 } %tn.load, ptr %allocaN, align 8 + br label %match.merge.508 + +match.unr.523: ; preds = %entry + br label %match.merge.508 + +if.then.524: ; preds = %match.arm.510 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw39 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw39) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.526 + +if.else.525: ; preds = %match.arm.510 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw42) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.526 + +if.merge.526: ; preds = %if.else.525, %if.then.524 + br label %match.merge.508 + +f32.unbox.552: ; preds = %match.arm.513 + %ua.raw44 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw44 to i32 + %iNf = bitcast i32 %trN to float + %fpext = fpext float %iNf to double + store double %fpext, ptr %allocaN, align 8 + br label %float.merge.554 + +f64.unbox.553: ; preds = %match.arm.513 + %ua.raw45 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw45 to double + store double %iNd, ptr %allocaN, align 8 + br label %float.merge.554 + +float.merge.554: ; preds = %fN.unbox.553, %fN.unbox.552 + %loadN = load double, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @float_to_string(ptr %0, double %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %match.merge.508 + +dispatch.merge.565: ; preds = %dispatch.case.619, %dispatch.case.618, %dispatch.case.617, %dispatch.case.616, %dispatch.case.615, %dispatch.case.614, %dispatch.case.613, %dispatch.case.612, %dispatch.case.611, %dispatch.case.610, %dispatch.case.609, %dispatch.case.608, %dispatch.case.607, %dispatch.case.606, %dispatch.case.605, %dispatch.case.604, %dispatch.case.603, %dispatch.case.602, %dispatch.case.601, %dispatch.case.600, %dispatch.case.599, %dispatch.case.598, %dispatch.case.597, %dispatch.case.596, %dispatch.case.595, %dispatch.case.594, %dispatch.case.593, %dispatch.case.592, %dispatch.case.591, %dispatch.case.590, %dispatch.case.589, %dispatch.case.588, %dispatch.case.587, %dispatch.case.586, %dispatch.case.585, %dispatch.case.584, %dispatch.case.583, %dispatch.case.582, %dispatch.case.581, %dispatch.case.580, %dispatch.case.579, %dispatch.case.578, %dispatch.case.577, %dispatch.case.576, %dispatch.case.575, %dispatch.case.574, %dispatch.case.573, %dispatch.case.572, %dispatch.case.571, %dispatch.case.570, %dispatch.case.569, %dispatch.case.568, %dispatch.case.567, %dispatch.default.566 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.508 + +dispatch.default.566: ; preds = %match.arm.514 + store { ptr, i64 } { ptr @str.535, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.567: ; preds = %match.arm.514 + %ua.raw49 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr50 = inttoptr i64 %ua.raw49 to ptr + %ua.load51 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr50, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load51) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.568: ; preds = %match.arm.514 + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr54 = inttoptr i64 %ua.raw53 to ptr + %ua.load55 = load { ptr, ptr, ptr }, ptr %ua.ptr54, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load55) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.569: ; preds = %match.arm.514 + %ua.raw57 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr58 = inttoptr i64 %ua.raw57 to ptr + %ua.load59 = load { i64 }, ptr %ua.ptr58, align 8 + %callN = call { ptr, i64 } @struct_to_string__SpawnOpts(ptr %0, { i64 } %ua.load59) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.570: ; preds = %match.arm.514 + %ua.raw61 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr62 = inttoptr i64 %ua.raw61 to ptr + %ua.load63 = load { ptr }, ptr %ua.ptr62, align 8 + %callN = call { ptr, i64 } @struct_to_string__ParkToken(ptr %0, { ptr } %ua.load63) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.571: ; preds = %match.arm.514 + %ua.raw65 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr66 = inttoptr i64 %ua.raw65 to ptr + %ua.load67 = load { ptr, ptr, ptr, ptr, ptr, ptr, ptr }, ptr %ua.ptr66, align 8 + %callN = call { ptr, i64 } @struct_to_string__Io(ptr %0, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %ua.load67) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.572: ; preds = %match.arm.514 + %ua.raw69 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr70 = inttoptr i64 %ua.raw69 to ptr + %ua.load71 = load { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } }, ptr %ua.ptr70, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } } %ua.load71) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.573: ; preds = %match.arm.514 + %ua.raw73 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr74 = inttoptr i64 %ua.raw73 to ptr + %ua.load75 = load { i64, i64 }, ptr %ua.ptr74, align 8 + %callN = call { ptr, i64 } @struct_to_string__Timespec(ptr %0, { i64, i64 } %ua.load75) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.574: ; preds = %match.arm.514 + %ua.raw77 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr78 = inttoptr i64 %ua.raw77 to ptr + %ua.load79 = load {}, ptr %ua.ptr78, align 1 + %callN = call { ptr, i64 } @struct_to_string__CBlockingIo(ptr %0, {} %ua.load79) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.575: ; preds = %match.arm.514 + %ua.raw81 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr82 = inttoptr i64 %ua.raw81 to ptr + %ua.load83 = load {}, ptr %ua.ptr82, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load83) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.576: ; preds = %match.arm.514 + %ua.raw85 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr86 = inttoptr i64 %ua.raw85 to ptr + %ua.load87 = load { i64 }, ptr %ua.ptr86, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load87) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.577: ; preds = %match.arm.514 + %ua.raw89 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr90 = inttoptr i64 %ua.raw89 to ptr + %ua.load91 = load { ptr, i64 }, ptr %ua.ptr90, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load91) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.578: ; preds = %match.arm.514 + %ua.raw93 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr94 = inttoptr i64 %ua.raw93 to ptr + %ua.load95 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr94, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load95) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.579: ; preds = %match.arm.514 + %ua.raw97 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr98 = inttoptr i64 %ua.raw97 to ptr + %ua.load99 = load { ptr, i64, i64 }, ptr %ua.ptr98, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load99) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.580: ; preds = %match.arm.514 + %ua.raw101 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr102 = inttoptr i64 %ua.raw101 to ptr + %ua.load103 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr102, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load103) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.581: ; preds = %match.arm.514 + %ua.raw105 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr106 = inttoptr i64 %ua.raw105 to ptr + %ua.load107 = load { i32 }, ptr %ua.ptr106, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load107) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.582: ; preds = %match.arm.514 + %ua.raw109 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr110 = inttoptr i64 %ua.raw109 to ptr + %ua.load111 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr110, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load111) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.583: ; preds = %match.arm.514 + %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr114 = inttoptr i64 %ua.raw113 to ptr + %ua.load115 = load { i32, { ptr, i64 } }, ptr %ua.ptr114, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load115) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.584: ; preds = %match.arm.514 + %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr118 = inttoptr i64 %ua.raw117 to ptr + %ua.load119 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr118, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load119) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.585: ; preds = %match.arm.514 + %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr122 = inttoptr i64 %ua.raw121 to ptr + %ua.load123 = load { ptr, i64, i64 }, ptr %ua.ptr122, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load123) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.586: ; preds = %match.arm.514 + %ua.raw125 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr126 = inttoptr i64 %ua.raw125 to ptr + %ua.load127 = load { ptr, i64, i64 }, ptr %ua.ptr126, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load127) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.587: ; preds = %match.arm.514 + %ua.raw129 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr130 = inttoptr i64 %ua.raw129 to ptr + %ua.load131 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr130, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load131) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.588: ; preds = %match.arm.514 + %ua.raw133 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr134 = inttoptr i64 %ua.raw133 to ptr + %ua.load135 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr134, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load135) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.589: ; preds = %match.arm.514 + %ua.raw137 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr138 = inttoptr i64 %ua.raw137 to ptr + %ua.load139 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr138, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load139) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.590: ; preds = %match.arm.514 + %ua.raw141 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr142 = inttoptr i64 %ua.raw141 to ptr + %ua.load143 = load { ptr, i64, i64 }, ptr %ua.ptr142, align 8 + %callN = call { ptr, i64 } @struct_to_string__List__string(ptr %0, { ptr, i64, i64 } %ua.load143) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.591: ; preds = %match.arm.514 + %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr146 = inttoptr i64 %ua.raw145 to ptr + %ua.load147 = load {}, ptr %ua.ptr146, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load147) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.592: ; preds = %match.arm.514 + %ua.raw149 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr150 = inttoptr i64 %ua.raw149 to ptr + %ua.load151 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr150, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load151) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.593: ; preds = %match.arm.514 + %ua.raw153 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr154 = inttoptr i64 %ua.raw153 to ptr + %ua.load155 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr154, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load155) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.594: ; preds = %match.arm.514 + %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr158 = inttoptr i64 %ua.raw157 to ptr + %ua.load159 = load { i1, { ptr, i64 } }, ptr %ua.ptr158, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load159) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.595: ; preds = %match.arm.514 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr162 = inttoptr i64 %ua.raw161 to ptr + %ua.load163 = load { i64, { ptr, i64 } }, ptr %ua.ptr162, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load163) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.596: ; preds = %match.arm.514 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parsed(ptr %0, { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %ua.load167) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.597: ; preds = %match.arm.514 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr170 = inttoptr i64 %ua.raw169 to ptr + %ua.load171 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr170, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.598: ; preds = %match.arm.514 + %ua.raw173 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr174 = inttoptr i64 %ua.raw173 to ptr + %ua.load175 = load { i64, i16, i16, i32, i64, i64 }, ptr %ua.ptr174, align 8 + %callN = call { ptr, i64 } @struct_to_string__Kevent(ptr %0, { i64, i16, i16, i32, i64, i64 } %ua.load175) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.599: ; preds = %match.arm.514 + %ua.raw177 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr178 = inttoptr i64 %ua.raw177 to ptr + %ua.load179 = load { i64, i64 }, ptr %ua.ptr178, align 8 + %callN = call { ptr, i64 } @struct_to_string__KqTimespec(ptr %0, { i64, i64 } %ua.load179) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.600: ; preds = %match.arm.514 + %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr182 = inttoptr i64 %ua.raw181 to ptr + %ua.load183 = load { i32, i64, i1, i1, i1, i1, i1, i64 }, ptr %ua.ptr182, align 8 + %callN = call { ptr, i64 } @struct_to_string__Event(ptr %0, { i32, i64, i1, i1, i1, i1, i1, i64 } %ua.load183) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.601: ; preds = %match.arm.514 + %ua.raw185 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr186 = inttoptr i64 %ua.raw185 to ptr + %ua.load187 = load { i32 }, ptr %ua.ptr186, align 4 + %callN = call { ptr, i64 } @struct_to_string__Loop(ptr %0, { i32 } %ua.load187) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.602: ; preds = %match.arm.514 + %ua.raw189 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr190 = inttoptr i64 %ua.raw189 to ptr + %ua.load191 = load { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, ptr %ua.ptr190, align 8 + %callN = call { ptr, i64 } @struct_to_string__Config(ptr %0, { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %ua.load191) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.603: ; preds = %match.arm.514 + %ua.raw193 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr194 = inttoptr i64 %ua.raw193 to ptr + %ua.load195 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, ptr %ua.ptr194, align 8 + %callN = call { ptr, i64 } @struct_to_string__Request(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %ua.load195) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.604: ; preds = %match.arm.514 + %ua.raw197 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr198 = inttoptr i64 %ua.raw197 to ptr + %ua.load199 = load { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr198, align 8 + %callN = call { ptr, i64 } @struct_to_string__Response(ptr %0, { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load199) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.605: ; preds = %match.arm.514 + %ua.raw201 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr202 = inttoptr i64 %ua.raw201 to ptr + %ua.load203 = load { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 }, ptr %ua.ptr202, align 8 + %callN = call { ptr, i64 } @struct_to_string__Conn(ptr %0, { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %ua.load203) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.606: ; preds = %match.arm.514 + %ua.raw205 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr206 = inttoptr i64 %ua.raw205 to ptr + %ua.load207 = load { ptr, i64 }, ptr %ua.ptr206, align 8 + %callN = call { ptr, i64 } @struct_to_string__OutBytes(ptr %0, { ptr, i64 } %ua.load207) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.607: ; preds = %match.arm.514 + %ua.raw209 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr210 = inttoptr i64 %ua.raw209 to ptr + %ua.load211 = load { i64, i64, { ptr, i64 }, i1, i64 }, ptr %ua.ptr210, align 8 + %callN = call { ptr, i64 } @struct_to_string__Completion(ptr %0, { i64, i64, { ptr, i64 }, i1, i64 } %ua.load211) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.608: ; preds = %match.arm.514 + %ua.raw213 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr214 = inttoptr i64 %ua.raw213 to ptr + %ua.load215 = load { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 }, ptr %ua.ptr214, align 8 + %callN = call { ptr, i64 } @struct_to_string__Pool(ptr %0, { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %ua.load215) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.609: ; preds = %match.arm.514 + %ua.raw217 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr218 = inttoptr i64 %ua.raw217 to ptr + %ua.load219 = load { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr %ua.ptr218, align 8 + %callN = call { ptr, i64 } @struct_to_string__Mutex(ptr %0, { { i64, i64, i64, i64, i64, i64, i64, i64 } } %ua.load219) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.610: ; preds = %match.arm.514 + %ua.raw221 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr222 = inttoptr i64 %ua.raw221 to ptr + %ua.load223 = load { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } }, ptr %ua.ptr222, align 8 + %callN = call { ptr, i64 } @struct_to_string__PoolState(ptr %0, { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } } %ua.load223) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.611: ; preds = %match.arm.514 + %ua.raw225 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr226 = inttoptr i64 %ua.raw225 to ptr + %ua.load227 = load { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 }, ptr %ua.ptr226, align 8 + %callN = call { ptr, i64 } @struct_to_string__HandlerJob(ptr %0, { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %ua.load227) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.612: ; preds = %match.arm.514 + %ua.raw229 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr230 = inttoptr i64 %ua.raw229 to ptr + %ua.load231 = load { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr }, ptr %ua.ptr230, align 8 + %callN = call { ptr, i64 } @struct_to_string__Server(ptr %0, { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %ua.load231) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.613: ; preds = %match.arm.514 + %ua.raw233 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr234 = inttoptr i64 %ua.raw233 to ptr + %ua.load235 = load { i64, i64, i64, i64, i64, i64, i64, i64 }, ptr %ua.ptr234, align 8 + %callN = call { ptr, i64 } @struct_to_string__MutexBuf(ptr %0, { i64, i64, i64, i64, i64, i64, i64, i64 } %ua.load235) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.614: ; preds = %match.arm.514 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr238 = inttoptr i64 %ua.raw237 to ptr + %ua.load239 = load { i64, i64, i64, i64, i64, i64 }, ptr %ua.ptr238, align 8 + %callN = call { ptr, i64 } @struct_to_string__CondBuf(ptr %0, { i64, i64, i64, i64, i64, i64 } %ua.load239) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.615: ; preds = %match.arm.514 + %ua.raw241 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr242 = inttoptr i64 %ua.raw241 to ptr + %ua.load243 = load { { i64, i64, i64, i64, i64, i64 } }, ptr %ua.ptr242, align 8 + %callN = call { ptr, i64 } @struct_to_string__Cond(ptr %0, { { i64, i64, i64, i64, i64, i64 } } %ua.load243) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.616: ; preds = %match.arm.514 + %ua.raw245 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr246 = inttoptr i64 %ua.raw245 to ptr + %ua.load247 = load { i64 }, ptr %ua.ptr246, align 8 + %callN = call { ptr, i64 } @struct_to_string__Thread(ptr %0, { i64 } %ua.load247) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.617: ; preds = %match.arm.514 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr250 = inttoptr i64 %ua.raw249 to ptr + %ua.load251 = load { ptr, i64 }, ptr %ua.ptr250, align 8 + %callN = call { ptr, i64 } @struct_to_string__PoolTask(ptr %0, { ptr, i64 } %ua.load251) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.618: ; preds = %match.arm.514 + %ua.raw253 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr254 = inttoptr i64 %ua.raw253 to ptr + %ua.load255 = load { [13 x i64] }, ptr %ua.ptr254, align 8 + %callN = call { ptr, i64 } @struct_to_string__FiberCtx(ptr %0, { [13 x i64] } %ua.load255) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.case.619: ; preds = %match.arm.514 + %ua.raw257 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr258 = inttoptr i64 %ua.raw257 to ptr + %ua.load259 = load { { [13 x i64] }, ptr, i64, i64 }, ptr %ua.ptr258, align 8 + %callN = call { ptr, i64 } @struct_to_string__Fiber(ptr %0, { { [13 x i64] }, ptr, i64, i64 } %ua.load259) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.565 + +dispatch.merge.885: ; preds = %dispatch.case.894, %dispatch.case.893, %dispatch.case.892, %dispatch.case.891, %dispatch.case.890, %dispatch.case.889, %dispatch.case.888, %dispatch.case.887, %dispatch.default.886 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.508 + +dispatch.default.886: ; preds = %match.arm.515 + store { ptr, i64 } { ptr @str.536, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.885 + +dispatch.case.887: ; preds = %match.arm.515 + %ua.raw262 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__PinTarget(ptr %0, i64 %ua.raw262) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.885 + +dispatch.case.888: ; preds = %match.arm.515 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Ordering(ptr %0, i64 %ua.raw264) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.885 + +dispatch.case.889: ; preds = %match.arm.515 + %ua.raw266 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__FutureState(ptr %0, i64 %ua.raw266) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.885 + +dispatch.case.890: ; preds = %match.arm.515 + %ua.raw268 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw268) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.885 + +dispatch.case.891: ; preds = %match.arm.515 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw270) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.885 + +dispatch.case.892: ; preds = %match.arm.515 + %ua.raw272 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr273 = inttoptr i64 %ua.raw272 to ptr + %ua.load274 = load { i64, [24 x i8] }, ptr %ua.ptr273, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load274) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.885 + +dispatch.case.893: ; preds = %match.arm.515 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw276) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.885 + +dispatch.case.894: ; preds = %match.arm.515 + %ua.raw278 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw278) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.885 + +dispatch.merge.911: ; preds = %dispatch.case.923, %dispatch.case.922, %dispatch.case.921, %dispatch.case.920, %dispatch.case.919, %dispatch.case.918, %dispatch.case.917, %dispatch.case.916, %dispatch.case.915, %dispatch.case.914, %dispatch.case.913, %dispatch.default.912 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.508 + +dispatch.default.912: ; preds = %match.arm.518 + store { ptr, i64 } { ptr @str.537, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.913: ; preds = %match.arm.518 + %ua.raw281 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw281 to ptr + %si = insertvalue { ptr, i64 } undef, ptr %iNp, 0 + %siN = insertvalue { ptr, i64 } %si, i64 4, 1 + %callN = call { ptr, i64 } @slice_to_string__i64(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.914: ; preds = %match.arm.518 + %ua.raw284 = extractvalue { i64, i64 } %loadN, 1 + %iNp285 = inttoptr i64 %ua.raw284 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp285, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 16, 1 + %callN = call { ptr, i64 } @slice_to_string__FlagValue(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.915: ; preds = %match.arm.518 + %ua.raw289 = extractvalue { i64, i64 } %loadN, 1 + %iNp290 = inttoptr i64 %ua.raw289 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp290, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 8, 1 + %callN = call { ptr, i64 } @slice_to_string__i64(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.916: ; preds = %match.arm.518 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp295, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 64, 1 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.917: ; preds = %match.arm.518 + %ua.raw299 = extractvalue { i64, i64 } %loadN, 1 + %iNp300 = inttoptr i64 %ua.raw299 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp300, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 64, 1 + %callN = call { ptr, i64 } @slice_to_string__i64(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.918: ; preds = %match.arm.518 + %ua.raw304 = extractvalue { i64, i64 } %loadN, 1 + %iNp305 = inttoptr i64 %ua.raw304 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp305, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 13, 1 + %callN = call { ptr, i64 } @slice_to_string__u64(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.919: ; preds = %match.arm.518 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp310, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 1, 1 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.920: ; preds = %match.arm.518 + %ua.raw314 = extractvalue { i64, i64 } %loadN, 1 + %iNp315 = inttoptr i64 %ua.raw314 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp315, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 2, 1 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.921: ; preds = %match.arm.518 + %ua.raw319 = extractvalue { i64, i64 } %loadN, 1 + %iNp320 = inttoptr i64 %ua.raw319 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp320, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 4, 1 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.922: ; preds = %match.arm.518 + %ua.raw324 = extractvalue { i64, i64 } %loadN, 1 + %iNp325 = inttoptr i64 %ua.raw324 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp325, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 5, 1 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.case.923: ; preds = %match.arm.518 + %ua.raw329 = extractvalue { i64, i64 } %loadN, 1 + %iNp330 = inttoptr i64 %ua.raw329 to ptr + %siN = insertvalue { ptr, i64 } undef, ptr %iNp330, 0 + %siN = insertvalue { ptr, i64 } %siN, i64 3, 1 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %siN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.911 + +dispatch.merge.954: ; preds = %dispatch.case.961, %dispatch.case.960, %dispatch.case.959, %dispatch.case.958, %dispatch.case.957, %dispatch.case.956, %dispatch.default.955 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.508 + +dispatch.default.955: ; preds = %match.arm.519 + store { ptr, i64 } { ptr @str.538, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.954 + +dispatch.case.956: ; preds = %match.arm.519 + %ua.raw335 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr336 = inttoptr i64 %ua.raw335 to ptr + %ua.load337 = load { ptr, i64 }, ptr %ua.ptr336, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load337) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.954 + +dispatch.case.957: ; preds = %match.arm.519 + %ua.raw339 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr340 = inttoptr i64 %ua.raw339 to ptr + %ua.load341 = load { ptr, i64 }, ptr %ua.ptr340, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load341) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.954 + +dispatch.case.958: ; preds = %match.arm.519 + %ua.raw343 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr344 = inttoptr i64 %ua.raw343 to ptr + %ua.load345 = load { ptr, i64 }, ptr %ua.ptr344, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load345) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.954 + +dispatch.case.959: ; preds = %match.arm.519 + %ua.raw347 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr348 = inttoptr i64 %ua.raw347 to ptr + %ua.load349 = load { ptr, i64 }, ptr %ua.ptr348, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load349) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.954 + +dispatch.case.960: ; preds = %match.arm.519 + %ua.raw351 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr352 = inttoptr i64 %ua.raw351 to ptr + %ua.load353 = load { ptr, i64 }, ptr %ua.ptr352, align 8 + %callN = call { ptr, i64 } @slice_to_string__Event(ptr %0, { ptr, i64 } %ua.load353) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.954 + +dispatch.case.961: ; preds = %match.arm.519 + %ua.raw355 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr356 = inttoptr i64 %ua.raw355 to ptr + %ua.load357 = load { ptr, i64 }, ptr %ua.ptr356, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load357) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.954 + +dispatch.merge.977: ; preds = %dispatch.case.1054, %dispatch.case.1053, %dispatch.case.1052, %dispatch.case.1051, %dispatch.case.1050, %dispatch.case.1049, %dispatch.case.1048, %dispatch.case.1047, %dispatch.case.1046, %dispatch.case.1045, %dispatch.case.1044, %dispatch.case.1043, %dispatch.case.1042, %dispatch.case.1041, %dispatch.case.1040, %dispatch.case.1039, %dispatch.case.1038, %dispatch.case.1037, %dispatch.case.1036, %dispatch.case.1035, %dispatch.case.1034, %dispatch.case.1033, %dispatch.case.1032, %dispatch.case.1031, %dispatch.case.1030, %dispatch.case.1029, %dispatch.case.1028, %dispatch.case.1027, %dispatch.case.1026, %dispatch.case.1025, %dispatch.case.1024, %dispatch.case.1023, %dispatch.case.1022, %dispatch.case.1021, %dispatch.case.1020, %dispatch.case.1019, %dispatch.case.1018, %dispatch.case.1017, %dispatch.case.1016, %dispatch.case.1015, %dispatch.case.1014, %dispatch.case.1013, %dispatch.case.1012, %dispatch.case.1011, %dispatch.case.1010, %dispatch.case.1009, %dispatch.case.1008, %dispatch.case.1007, %dispatch.case.1006, %dispatch.case.1005, %dispatch.case.1004, %dispatch.case.1003, %dispatch.case.1002, %dispatch.case.1001, %dispatch.case.1000, %dispatch.case.999, %dispatch.case.998, %dispatch.case.997, %dispatch.case.996, %dispatch.case.995, %dispatch.case.994, %dispatch.case.993, %dispatch.case.992, %dispatch.case.991, %dispatch.case.990, %dispatch.case.989, %dispatch.case.988, %dispatch.case.987, %dispatch.case.986, %dispatch.case.985, %dispatch.case.984, %dispatch.case.983, %dispatch.case.982, %dispatch.case.981, %dispatch.case.980, %dispatch.case.979, %dispatch.default.978 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.508 + +dispatch.default.978: ; preds = %match.arm.520 + store { ptr, i64 } { ptr @str.539, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.979: ; preds = %match.arm.520 + %ua.raw360 = extractvalue { i64, i64 } %loadN, 1 + %iNp361 = inttoptr i64 %ua.raw360 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp361) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.980: ; preds = %match.arm.520 + %ua.raw363 = extractvalue { i64, i64 } %loadN, 1 + %iNp364 = inttoptr i64 %ua.raw363 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp364) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.981: ; preds = %match.arm.520 + %ua.raw366 = extractvalue { i64, i64 } %loadN, 1 + %iNp367 = inttoptr i64 %ua.raw366 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Timespec(ptr %0, ptr %iNp367) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.982: ; preds = %match.arm.520 + %ua.raw369 = extractvalue { i64, i64 } %loadN, 1 + %iNp370 = inttoptr i64 %ua.raw369 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CBlockingIo(ptr %0, ptr %iNp370) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.983: ; preds = %match.arm.520 + %ua.raw372 = extractvalue { i64, i64 } %loadN, 1 + %iNp373 = inttoptr i64 %ua.raw372 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp373) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.984: ; preds = %match.arm.520 + %ua.raw375 = extractvalue { i64, i64 } %loadN, 1 + %iNp376 = inttoptr i64 %ua.raw375 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp376) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.985: ; preds = %match.arm.520 + %ua.raw378 = extractvalue { i64, i64 } %loadN, 1 + %iNp379 = inttoptr i64 %ua.raw378 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp379) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.986: ; preds = %match.arm.520 + %ua.raw381 = extractvalue { i64, i64 } %loadN, 1 + %iNp382 = inttoptr i64 %ua.raw381 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp382) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.987: ; preds = %match.arm.520 + %ua.raw384 = extractvalue { i64, i64 } %loadN, 1 + %iNp385 = inttoptr i64 %ua.raw384 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp385) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.988: ; preds = %match.arm.520 + %ua.raw387 = extractvalue { i64, i64 } %loadN, 1 + %iNp388 = inttoptr i64 %ua.raw387 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp388) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.989: ; preds = %match.arm.520 + %ua.raw390 = extractvalue { i64, i64 } %loadN, 1 + %iNp391 = inttoptr i64 %ua.raw390 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp391) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.990: ; preds = %match.arm.520 + %ua.raw393 = extractvalue { i64, i64 } %loadN, 1 + %iNp394 = inttoptr i64 %ua.raw393 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %iNp394) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.991: ; preds = %match.arm.520 + %ua.raw396 = extractvalue { i64, i64 } %loadN, 1 + %iNp397 = inttoptr i64 %ua.raw396 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp397) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.992: ; preds = %match.arm.520 + %ua.raw399 = extractvalue { i64, i64 } %loadN, 1 + %iNp400 = inttoptr i64 %ua.raw399 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp400) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.993: ; preds = %match.arm.520 + %ua.raw402 = extractvalue { i64, i64 } %loadN, 1 + %iNp403 = inttoptr i64 %ua.raw402 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp403) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.994: ; preds = %match.arm.520 + %ua.raw405 = extractvalue { i64, i64 } %loadN, 1 + %iNp406 = inttoptr i64 %ua.raw405 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp406) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.995: ; preds = %match.arm.520 + %ua.raw408 = extractvalue { i64, i64 } %loadN, 1 + %iNp409 = inttoptr i64 %ua.raw408 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp409) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.996: ; preds = %match.arm.520 + %ua.raw411 = extractvalue { i64, i64 } %loadN, 1 + %iNp412 = inttoptr i64 %ua.raw411 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp412) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.997: ; preds = %match.arm.520 + %ua.raw414 = extractvalue { i64, i64 } %loadN, 1 + %iNp415 = inttoptr i64 %ua.raw414 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp415) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.998: ; preds = %match.arm.520 + %ua.raw417 = extractvalue { i64, i64 } %loadN, 1 + %iNp418 = inttoptr i64 %ua.raw417 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp418) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.999: ; preds = %match.arm.520 + %ua.raw420 = extractvalue { i64, i64 } %loadN, 1 + %iNp421 = inttoptr i64 %ua.raw420 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_string(ptr %0, ptr %iNp421) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1000: ; preds = %match.arm.520 + %ua.raw423 = extractvalue { i64, i64 } %loadN, 1 + %iNp424 = inttoptr i64 %ua.raw423 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %iNp424) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1001: ; preds = %match.arm.520 + %ua.raw426 = extractvalue { i64, i64 } %loadN, 1 + %iNp427 = inttoptr i64 %ua.raw426 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp427) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1002: ; preds = %match.arm.520 + %ua.raw429 = extractvalue { i64, i64 } %loadN, 1 + %iNp430 = inttoptr i64 %ua.raw429 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp430) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1003: ; preds = %match.arm.520 + %ua.raw432 = extractvalue { i64, i64 } %loadN, 1 + %iNp433 = inttoptr i64 %ua.raw432 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp433) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1004: ; preds = %match.arm.520 + %ua.raw435 = extractvalue { i64, i64 } %loadN, 1 + %iNp436 = inttoptr i64 %ua.raw435 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Kevent(ptr %0, ptr %iNp436) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1005: ; preds = %match.arm.520 + %ua.raw438 = extractvalue { i64, i64 } %loadN, 1 + %iNp439 = inttoptr i64 %ua.raw438 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_KqTimespec(ptr %0, ptr %iNp439) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1006: ; preds = %match.arm.520 + %ua.raw441 = extractvalue { i64, i64 } %loadN, 1 + %iNp442 = inttoptr i64 %ua.raw441 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Loop(ptr %0, ptr %iNp442) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1007: ; preds = %match.arm.520 + %ua.raw444 = extractvalue { i64, i64 } %loadN, 1 + %iNp445 = inttoptr i64 %ua.raw444 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Request(ptr %0, ptr %iNp445) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1008: ; preds = %match.arm.520 + %ua.raw447 = extractvalue { i64, i64 } %loadN, 1 + %iNp448 = inttoptr i64 %ua.raw447 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Pool(ptr %0, ptr %iNp448) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1009: ; preds = %match.arm.520 + %ua.raw450 = extractvalue { i64, i64 } %loadN, 1 + %iNp451 = inttoptr i64 %ua.raw450 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Completion(ptr %0, ptr %iNp451) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1010: ; preds = %match.arm.520 + %ua.raw453 = extractvalue { i64, i64 } %loadN, 1 + %iNp454 = inttoptr i64 %ua.raw453 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Response(ptr %0, ptr %iNp454) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1011: ; preds = %match.arm.520 + %ua.raw456 = extractvalue { i64, i64 } %loadN, 1 + %iNp457 = inttoptr i64 %ua.raw456 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_PoolState(ptr %0, ptr %iNp457) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1012: ; preds = %match.arm.520 + %ua.raw459 = extractvalue { i64, i64 } %loadN, 1 + %iNp460 = inttoptr i64 %ua.raw459 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Conn(ptr %0, ptr %iNp460) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1013: ; preds = %match.arm.520 + %ua.raw462 = extractvalue { i64, i64 } %loadN, 1 + %iNp463 = inttoptr i64 %ua.raw462 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Server(ptr %0, ptr %iNp463) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1014: ; preds = %match.arm.520 + %ua.raw465 = extractvalue { i64, i64 } %loadN, 1 + %iNp466 = inttoptr i64 %ua.raw465 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_usize(ptr %0, ptr %iNp466) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1015: ; preds = %match.arm.520 + %ua.raw468 = extractvalue { i64, i64 } %loadN, 1 + %iNp469 = inttoptr i64 %ua.raw468 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp469) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1016: ; preds = %match.arm.520 + %ua.raw471 = extractvalue { i64, i64 } %loadN, 1 + %iNp472 = inttoptr i64 %ua.raw471 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_MutexBuf(ptr %0, ptr %iNp472) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1017: ; preds = %match.arm.520 + %ua.raw474 = extractvalue { i64, i64 } %loadN, 1 + %iNp475 = inttoptr i64 %ua.raw474 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CondBuf(ptr %0, ptr %iNp475) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1018: ; preds = %match.arm.520 + %ua.raw477 = extractvalue { i64, i64 } %loadN, 1 + %iNp478 = inttoptr i64 %ua.raw477 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Mutex(ptr %0, ptr %iNp478) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1019: ; preds = %match.arm.520 + %ua.raw480 = extractvalue { i64, i64 } %loadN, 1 + %iNp481 = inttoptr i64 %ua.raw480 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Cond(ptr %0, ptr %iNp481) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1020: ; preds = %match.arm.520 + %ua.raw483 = extractvalue { i64, i64 } %loadN, 1 + %iNp484 = inttoptr i64 %ua.raw483 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Thread(ptr %0, ptr %iNp484) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1021: ; preds = %match.arm.520 + %ua.raw486 = extractvalue { i64, i64 } %loadN, 1 + %iNp487 = inttoptr i64 %ua.raw486 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_PoolTask(ptr %0, ptr %iNp487) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1022: ; preds = %match.arm.520 + %ua.raw489 = extractvalue { i64, i64 } %loadN, 1 + %iNp490 = inttoptr i64 %ua.raw489 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_usize(ptr %0, ptr %iNp490) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1023: ; preds = %match.arm.520 + %ua.raw492 = extractvalue { i64, i64 } %loadN, 1 + %iNp493 = inttoptr i64 %ua.raw492 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_FiberCtx(ptr %0, ptr %iNp493) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1024: ; preds = %match.arm.520 + %ua.raw495 = extractvalue { i64, i64 } %loadN, 1 + %iNp496 = inttoptr i64 %ua.raw495 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Fiber(ptr %0, ptr %iNp496) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1025: ; preds = %match.arm.520 + %ua.raw498 = extractvalue { i64, i64 } %loadN, 1 + %iNp499 = inttoptr i64 %ua.raw498 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp499) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1026: ; preds = %match.arm.520 + %ua.raw501 = extractvalue { i64, i64 } %loadN, 1 + %iNp502 = inttoptr i64 %ua.raw501 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CBlockingIo(ptr %0, ptr %iNp502) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1027: ; preds = %match.arm.520 + %ua.raw504 = extractvalue { i64, i64 } %loadN, 1 + %iNp505 = inttoptr i64 %ua.raw504 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SpawnOpts(ptr %0, ptr %iNp505) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1028: ; preds = %match.arm.520 + %ua.raw507 = extractvalue { i64, i64 } %loadN, 1 + %iNp508 = inttoptr i64 %ua.raw507 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ParkToken(ptr %0, ptr %iNp508) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1029: ; preds = %match.arm.520 + %ua.raw510 = extractvalue { i64, i64 } %loadN, 1 + %iNp511 = inttoptr i64 %ua.raw510 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Fiber(ptr %0, ptr %iNp511) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1030: ; preds = %match.arm.520 + %ua.raw513 = extractvalue { i64, i64 } %loadN, 1 + %iNp514 = inttoptr i64 %ua.raw513 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_FiberCtx(ptr %0, ptr %iNp514) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1031: ; preds = %match.arm.520 + %ua.raw516 = extractvalue { i64, i64 } %loadN, 1 + %iNp517 = inttoptr i64 %ua.raw516 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u64(ptr %0, ptr %iNp517) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1032: ; preds = %match.arm.520 + %ua.raw519 = extractvalue { i64, i64 } %loadN, 1 + %iNp520 = inttoptr i64 %ua.raw519 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_13_u64(ptr %0, ptr %iNp520) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1033: ; preds = %match.arm.520 + %ua.raw522 = extractvalue { i64, i64 } %loadN, 1 + %iNp523 = inttoptr i64 %ua.raw522 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp523) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1034: ; preds = %match.arm.520 + %ua.raw525 = extractvalue { i64, i64 } %loadN, 1 + %iNp526 = inttoptr i64 %ua.raw525 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp526) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1035: ; preds = %match.arm.520 + %ua.raw528 = extractvalue { i64, i64 } %loadN, 1 + %iNp529 = inttoptr i64 %ua.raw528 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp529) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1036: ; preds = %match.arm.520 + %ua.raw531 = extractvalue { i64, i64 } %loadN, 1 + %iNp532 = inttoptr i64 %ua.raw531 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp532) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1037: ; preds = %match.arm.520 + %ua.raw534 = extractvalue { i64, i64 } %loadN, 1 + %iNp535 = inttoptr i64 %ua.raw534 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp535) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1038: ; preds = %match.arm.520 + %ua.raw537 = extractvalue { i64, i64 } %loadN, 1 + %iNp538 = inttoptr i64 %ua.raw537 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp538) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1039: ; preds = %match.arm.520 + %ua.raw540 = extractvalue { i64, i64 } %loadN, 1 + %iNp541 = inttoptr i64 %ua.raw540 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BuildOptions(ptr %0, ptr %iNp541) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1040: ; preds = %match.arm.520 + %ua.raw543 = extractvalue { i64, i64 } %loadN, 1 + %iNp544 = inttoptr i64 %ua.raw543 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_List__string(ptr %0, ptr %iNp544) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1041: ; preds = %match.arm.520 + %ua.raw546 = extractvalue { i64, i64 } %loadN, 1 + %iNp547 = inttoptr i64 %ua.raw546 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_List__string(ptr %0, ptr %iNp547) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1042: ; preds = %match.arm.520 + %ua.raw549 = extractvalue { i64, i64 } %loadN, 1 + %iNp550 = inttoptr i64 %ua.raw549 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Allocator(ptr %0, ptr %iNp550) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1043: ; preds = %match.arm.520 + %ua.raw552 = extractvalue { i64, i64 } %loadN, 1 + %iNp553 = inttoptr i64 %ua.raw552 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_mptr_string(ptr %0, ptr %iNp553) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1044: ; preds = %match.arm.520 + %ua.raw555 = extractvalue { i64, i64 } %loadN, 1 + %iNp556 = inttoptr i64 %ua.raw555 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ProcessResult(ptr %0, ptr %iNp556) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1045: ; preds = %match.arm.520 + %ua.raw558 = extractvalue { i64, i64 } %loadN, 1 + %iNp559 = inttoptr i64 %ua.raw558 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_string(ptr %0, ptr %iNp559) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1046: ; preds = %match.arm.520 + %ua.raw561 = extractvalue { i64, i64 } %loadN, 1 + %iNp562 = inttoptr i64 %ua.raw561 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_string(ptr %0, ptr %iNp562) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1047: ; preds = %match.arm.520 + %ua.raw564 = extractvalue { i64, i64 } %loadN, 1 + %iNp565 = inttoptr i64 %ua.raw564 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_opt_cstring(ptr %0, ptr %iNp565) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1048: ; preds = %match.arm.520 + %ua.raw567 = extractvalue { i64, i64 } %loadN, 1 + %iNp568 = inttoptr i64 %ua.raw567 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_cstring(ptr %0, ptr %iNp568) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1049: ; preds = %match.arm.520 + %ua.raw570 = extractvalue { i64, i64 } %loadN, 1 + %iNp571 = inttoptr i64 %ua.raw570 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_mptr_u8(ptr %0, ptr %iNp571) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1050: ; preds = %match.arm.520 + %ua.raw573 = extractvalue { i64, i64 } %loadN, 1 + %iNp574 = inttoptr i64 %ua.raw573 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_isize(ptr %0, ptr %iNp574) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1051: ; preds = %match.arm.520 + %ua.raw576 = extractvalue { i64, i64 } %loadN, 1 + %iNp577 = inttoptr i64 %ua.raw576 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_4_Any(ptr %0, ptr %iNp577) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1052: ; preds = %match.arm.520 + %ua.raw579 = extractvalue { i64, i64 } %loadN, 1 + %iNp580 = inttoptr i64 %ua.raw579 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_5_Any(ptr %0, ptr %iNp580) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1053: ; preds = %match.arm.520 + %ua.raw582 = extractvalue { i64, i64 } %loadN, 1 + %iNp583 = inttoptr i64 %ua.raw582 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp583) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.case.1054: ; preds = %match.arm.520 + %ua.raw585 = extractvalue { i64, i64 } %loadN, 1 + %iNp586 = inttoptr i64 %ua.raw585 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_type_value(ptr %0, ptr %iNp586) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.977 + +dispatch.merge.1296: ; preds = %dispatch.case.1302, %dispatch.case.1301, %dispatch.case.1300, %dispatch.case.1299, %dispatch.case.1298, %dispatch.default.1297 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.508 + +dispatch.default.1297: ; preds = %match.arm.521 + store { ptr, i64 } { ptr @str.540, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.1296 + +dispatch.case.1298: ; preds = %match.arm.521 + %ua.raw589 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr590 = inttoptr i64 %ua.raw589 to ptr + %ua.load591 = load { { i32 }, i1 }, ptr %ua.ptr590, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load591) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.1296 + +dispatch.case.1299: ; preds = %match.arm.521 + %ua.raw593 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr594 = inttoptr i64 %ua.raw593 to ptr + %ua.load595 = load { { ptr, i64 }, i1 }, ptr %ua.ptr594, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load595) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.1296 + +dispatch.case.1300: ; preds = %match.arm.521 + %ua.raw597 = extractvalue { i64, i64 } %loadN, 1 + %iNp598 = inttoptr i64 %ua.raw597 to ptr + %callN = call { ptr, i64 } @optional_to_string__opt_cstring(ptr %0, ptr %iNp598) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.1296 + +dispatch.case.1301: ; preds = %match.arm.521 + %ua.raw600 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr601 = inttoptr i64 %ua.raw600 to ptr + %ua.load602 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr601, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load602) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.1296 + +dispatch.case.1302: ; preds = %match.arm.521 + %ua.raw604 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr605 = inttoptr i64 %ua.raw604 to ptr + %ua.load606 = load { [64 x i8], i1 }, ptr %ua.ptr605, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load606) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.1296 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @build_format(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.541, i64 14 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.6 + +while.hdr.6: ; preds = %if.merge.11, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.7, label %while.exit.8 + +while.body.7: ; preds = %while.hdr.6 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %loadN + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext = zext i8 %ig.val to i64 + %icmpN = icmp eq i64 %cmp.ext, 123 + br i1 %icmpN, label %if.then.9, label %if.else.10 + +while.exit.8: ; preds = %while.hdr.6 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp slt i64 %loadN, %lenN + br i1 %icmpN, label %if.then.41, label %if.merge.42 + +if.then.9: ; preds = %while.body.7 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp slt i64 %add, %lenN + br i1 %icmpN, label %if.then.12, label %if.else.13 + +if.else.10: ; preds = %while.body.7 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data19 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr20 = getelementptr i8, ptr %ig.data19, i64 %loadN + %ig.val21 = load i8, ptr %ig.ptr20, align 1 + %cmp.ext22 = zext i8 %ig.val21 to i64 + %icmpN = icmp eq i64 %cmp.ext22, 125 + br i1 %icmpN, label %if.then.32, label %if.else.33 + +if.merge.11: ; preds = %if.merge.34, %if.merge.14 + br label %while.hdr.6 + +if.then.12: ; preds = %if.then.9 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + %ig.data27 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr28 = getelementptr i8, ptr %ig.data27, i64 %addN + %ig.val29 = load i8, ptr %ig.ptr28, align 1 + %cmp.ext30 = zext i8 %ig.val29 to i64 + %icmpN = icmp eq i64 %cmp.ext30, 125 + br i1 %icmpN, label %if.then.15, label %if.else.16 + +if.else.13: ; preds = %if.then.9 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + store i64 %addN, ptr %allocaN, align 8 + br label %if.merge.14 + +if.merge.14: ; preds = %if.merge.17, %if.else.13 + br label %if.merge.11 + +if.then.15: ; preds = %if.then.12 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, %loadN + br i1 %icmpN, label %if.then.18, label %if.merge.19 + +if.else.16: ; preds = %if.then.12 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + %ig.data40 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr41 = getelementptr i8, ptr %ig.data40, i64 %addN + %ig.val42 = load i8, ptr %ig.ptr41, align 1 + %cmp.ext43 = zext i8 %ig.val42 to i64 + %icmpN = icmp eq i64 %cmp.ext43, 123 + br i1 %icmpN, label %if.then.29, label %if.else.30 + +if.merge.17: ; preds = %if.merge.31, %if.merge.19 + br label %if.merge.14 + +if.then.18: ; preds = %if.then.15 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.542, i64 36 }) + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.543, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 %loadN, %loadN + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %sub) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.544, i64 4 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.19 + +if.merge.19: ; preds = %if.then.18, %if.then.15 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.545, i64 43 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.546, i64 5 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 2 + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store i64 %loadN, ptr %allocaN, align 8 + br label %if.merge.17 + +if.then.29: ; preds = %if.else.16 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.547, i64 36 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.548, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, %loadN + %addN = add i64 %subN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %addN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.549, i64 4 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 2 + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store i64 %loadN, ptr %allocaN, align 8 + br label %if.merge.31 + +if.else.30: ; preds = %if.else.16 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + store i64 %addN, ptr %allocaN, align 8 + br label %if.merge.31 + +if.merge.31: ; preds = %if.else.30, %if.then.29 + br label %if.merge.17 + +if.then.32: ; preds = %if.else.10 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp slt i64 %addN, %lenN + br i1 %icmpN, label %if.then.35, label %if.else.36 + +if.else.33: ; preds = %if.else.10 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + store i64 %addN, ptr %allocaN, align 8 + br label %if.merge.34 + +if.merge.34: ; preds = %if.merge.37, %if.else.33 + br label %if.merge.11 + +if.then.35: ; preds = %if.then.32 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + %ig.data104 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr105 = getelementptr i8, ptr %ig.data104, i64 %addN + %ig.val106 = load i8, ptr %ig.ptr105, align 1 + %cmp.ext107 = zext i8 %ig.val106 to i64 + %icmpN = icmp eq i64 %cmp.ext107, 125 + br i1 %icmpN, label %if.then.38, label %if.else.39 + +if.else.36: ; preds = %if.then.32 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + store i64 %addN, ptr %allocaN, align 8 + br label %if.merge.37 + +if.merge.37: ; preds = %if.merge.40, %if.else.36 + br label %if.merge.34 + +if.then.38: ; preds = %if.then.35 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.550, i64 36 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.551, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, %loadN + %addN = add i64 %subN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %addN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.552, i64 4 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 2 + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store i64 %loadN, ptr %allocaN, align 8 + br label %if.merge.40 + +if.else.39: ; preds = %if.then.35 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + store i64 %addN, ptr %allocaN, align 8 + br label %if.merge.40 + +if.merge.40: ; preds = %if.else.39, %if.then.38 + br label %if.merge.37 + +if.then.41: ; preds = %while.exit.8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.553, i64 36 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.554, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %lenN, %loadN + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %subN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.555, i64 4 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.42 + +if.merge.42: ; preds = %if.then.41, %while.exit.8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +declare void @out.2(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @out.3(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @atomic_fence(i64) #0 + +; Function Attrs: nounwind +declare i32 @clock_gettime(i32, ptr) #0 + +; Function Attrs: nounwind +declare i64 @now_secs(ptr) #0 + +; Function Attrs: nounwind +declare i64 @mono_ms(ptr) #0 + +; Function Attrs: nounwind +define internal ptr @CBlockingIo.spawn_raw(ptr %0, ptr %1, ptr %2, ptr %3, { i64 } %4) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca ptr, align 8 + store ptr %2, ptr %allocaN, align 8 + %allocaN = alloca ptr, align 8 + store ptr %3, ptr %allocaN, align 8 + %allocaN = alloca { i64 }, align 8 + store { i64 } %4, ptr %allocaN, align 8 + ret ptr null +} + +; Function Attrs: nounwind +define internal i32 @CBlockingIo.suspend_raw(ptr %0, ptr %1, { ptr } %2) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca { ptr }, align 8 + store { ptr } %2, ptr %allocaN, align 8 + ret i32 0 +} + +; Function Attrs: nounwind +define internal void @CBlockingIo.ready(ptr %0, ptr %1, { ptr } %2) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca { ptr }, align 8 + store { ptr } %2, ptr %allocaN, align 8 + ret void +} + +; Function Attrs: nounwind +define internal i64 @CBlockingIo.poll(ptr %0, ptr %1, i64 %2) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %2, ptr %allocaN, align 8 + ret i64 0 +} + +; Function Attrs: nounwind +define internal i64 @CBlockingIo.now_ms(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %call = call i64 @mono_ms.108(ptr %0) + ret i64 %call +} + +; Function Attrs: nounwind +define internal ptr @CBlockingIo.arm_timer(ptr %0, ptr %1, i64 %2, { ptr } %3) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %2, ptr %allocaN, align 8 + %allocaN = alloca { ptr }, align 8 + store { ptr } %3, ptr %allocaN, align 8 + ret ptr null +} + +; Function Attrs: nounwind +declare ptr @mem_realloc(ptr, ptr, ptr, i64, i64, i64) #0 + +; Function Attrs: nounwind +define internal ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %2, ptr %allocaN, align 8 + %load = load i64, ptr %allocaN, align 8 + %call = call ptr @malloc(i64 %load) + ret ptr %call +} + +; Function Attrs: nounwind +define internal void @CAllocator.dealloc_bytes(ptr %0, ptr %1, ptr %2) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca ptr, align 8 + store ptr %2, ptr %allocaN, align 8 + %load = load ptr, ptr %allocaN, align 8 + call void @free(ptr %load) + ret void +} + +; Function Attrs: nounwind +declare i64 @GPA.init(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc_bytes(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc_bytes(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc_bytes(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc_bytes(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.init(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc_bytes(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc_bytes(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc_bytes(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc_bytes(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close(i32) #0 + +; Function Attrs: nounwind +declare i64 @read(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +define internal { { ptr, i64 }, i1 } @read_file(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %ca.decay = extractvalue { ptr, i64 } %load, 0 + %call = call i32 (ptr, i32, ...) @open(ptr %ca.decay, i32 0, i64 0) + %allocaN = alloca i32, align 4 + store i32 %call, ptr %allocaN, align 4 + %loadN = load i32, ptr %allocaN, align 4 + %cmp.ext = sext i32 %loadN to i64 + %icmp = icmp slt i64 %cmp.ext, 0 + br i1 %icmp, label %if.then.409, label %if.merge.410 + +if.then.409: ; preds = %entry + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.410: ; preds = %entry + %loadN = load i32, ptr %allocaN, align 4 + %callN = call i64 @lseek(i32 %loadN, i64 0, i32 2) + store i64 %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp slt i64 %loadN, 0 + br i1 %icmpN, label %if.then.411, label %if.merge.412 + +if.then.411: ; preds = %if.merge.410 + %loadN = load i32, ptr %allocaN, align 4 + %callN = call i32 @close(i32 %loadN) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.412: ; preds = %if.merge.410 + %loadN = load i32, ptr %allocaN, align 4 + %callN = call i64 @lseek(i32 %loadN, i64 0, i32 0) + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @alloc_string(ptr %0, i64 %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i32, ptr %allocaN, align 4 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call i64 @read(i32 %loadN, ptr %dptr, i64 %loadN) + store i64 %callN, ptr %allocaN, align 8 + %loadN = load i32, ptr %allocaN, align 4 + %callN = call i32 @close(i32 %loadN) + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp ne i64 %loadN, %loadN + br i1 %icmpN, label %if.then.413, label %if.merge.414 + +if.then.413: ; preds = %if.merge.412 + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.414: ; preds = %if.merge.412 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ow.val = insertvalue { { ptr, i64 }, i1 } undef, { ptr, i64 } %loadN, 0 + %ow.has = insertvalue { { ptr, i64 }, i1 } %ow.val, i1 true, 1 + ret { { ptr, i64 }, i1 } %ow.has +} + +; Function Attrs: nounwind +define internal i1 @write_file(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %ca.decay = extractvalue { ptr, i64 } %load, 0 + %call = call i32 (ptr, i32, ...) @open(ptr %ca.decay, i32 1537, i64 420) + %allocaN = alloca i32, align 4 + store i32 %call, ptr %allocaN, align 4 + %loadN = load i32, ptr %allocaN, align 4 + %cmp.ext = sext i32 %loadN to i64 + %icmp = icmp slt i64 %cmp.ext, 0 + br i1 %icmp, label %if.then.241, label %if.merge.242 + +if.then.241: ; preds = %entry + ret i1 false + +if.merge.242: ; preds = %entry + %loadN = load i32, ptr %allocaN, align 4 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %callN = call i64 @write(i32 %loadN, ptr %dptr, i64 %len) + store i64 %callN, ptr %allocaN, align 8 + %loadN = load i32, ptr %allocaN, align 4 + %callN = call i32 @close(i32 %loadN) + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp eq i64 %loadN, %lenN + ret i1 %icmpN +} + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +define internal i1 @exists(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %ca.decay = extractvalue { ptr, i64 } %load, 0 + %call = call i32 @access(ptr %ca.decay, i32 0) + %cmp.ext = sext i32 %call to i64 + %icmp = icmp eq i64 %cmp.ext, 0 + ret i1 %icmp +} + +; Function Attrs: nounwind +define internal i1 @delete_file(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %ca.decay = extractvalue { ptr, i64 } %load, 0 + %call = call i32 @unlink(ptr %ca.decay) + %cmp.ext = sext i32 %call to i64 + %icmp = icmp eq i64 %cmp.ext, 0 + ret i1 %icmp +} + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +define internal i1 @create_dir(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %ca.decay = extractvalue { ptr, i64 } %load, 0 + %call = call i32 @mkdir(ptr %ca.decay, i32 493) + %cmp.ext = sext i32 %call to i64 + %icmp = icmp eq i64 %cmp.ext, 0 + ret i1 %icmp +} + +; Function Attrs: nounwind +define internal i1 @set_mode(ptr %0, { ptr, i64 } %1, i32 %2) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca i32, align 4 + store i32 %2, ptr %allocaN, align 4 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i32, ptr %allocaN, align 4 + %ca.decay = extractvalue { ptr, i64 } %load, 0 + %call = call i32 @chmod(ptr %ca.decay, i32 %loadN) + %cmp.ext = sext i32 %call to i64 + %icmp = icmp eq i64 %cmp.ext, 0 + ret i1 %icmp +} + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +define internal i1 @create_dir_all(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %load, 1 + %icmp = icmp eq i64 %len, 0 + br i1 %icmp, label %if.then.151, label %if.merge.152 + +if.then.151: ; preds = %entry + ret i1 true + +if.merge.152: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %call = call i1 @exists(ptr %0, { ptr, i64 } %loadN) + br i1 %call, label %if.then.153, label %if.merge.154 + +if.then.153: ; preds = %if.merge.152 + ret i1 true + +if.merge.154: ; preds = %if.merge.152 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %sub = sub i64 %lenN, 1 + store i64 %sub, ptr %allocaN, align 8 + br label %while.hdr.155 + +while.hdr.155: ; preds = %if.merge.159, %if.merge.154 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %while.body.156, label %while.exit.157 + +while.body.156: ; preds = %while.hdr.155 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %loadN + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext = zext i8 %ig.val to i64 + %icmpN = icmp eq i64 %cmp.ext, 47 + br i1 %icmpN, label %if.then.158, label %if.merge.159 + +while.exit.157: ; preds = %if.then.158, %while.hdr.155 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.160, label %if.merge.161 + +if.then.158: ; preds = %while.body.156 + br label %while.exit.157 + +if.merge.159: ; preds = %while.body.156 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + store i64 %subN, ptr %allocaN, align 8 + br label %while.hdr.155 + +if.then.160: ; preds = %while.exit.157 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @alloc_string(ptr %0, i64 %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call ptr @memcpy(ptr %dptr, ptr %dptrN, i64 %loadN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call i1 @create_dir_all(ptr %0, { ptr, i64 } %loadN) + %lnot = xor i1 %callN, true + br i1 %lnot, label %if.then.162, label %if.merge.163 + +if.merge.161: ; preds = %if.merge.163, %while.exit.157 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call i1 @create_dir(ptr %0, { ptr, i64 } %loadN) + ret i1 %callN + +if.then.162: ; preds = %if.then.160 + ret i1 false + +if.merge.163: ; preds = %if.then.160 + br label %if.merge.161 +} + +; Function Attrs: nounwind +define internal i1 @copy_file(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca i32, align 4 + %allocaN = alloca i1, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i1, align 1 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %ca.decay = extractvalue { ptr, i64 } %load, 0 + %call = call i32 (ptr, i32, ...) @open(ptr %ca.decay, i32 0, i64 0) + %allocaN = alloca i32, align 4 + store i32 %call, ptr %allocaN, align 4 + %loadN = load i32, ptr %allocaN, align 4 + %cmp.ext = sext i32 %loadN to i64 + %icmp = icmp slt i64 %cmp.ext, 0 + br i1 %icmp, label %if.then.178, label %if.merge.179 + +if.then.178: ; preds = %entry + ret i1 false + +if.merge.179: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ca.decay5 = extractvalue { ptr, i64 } %loadN, 0 + %callN = call i32 (ptr, i32, ...) @open(ptr %ca.decay5, i32 1537, i64 420) + store i32 %callN, ptr %allocaN, align 4 + %loadN = load i32, ptr %allocaN, align 4 + %cmp.ext9 = sext i32 %loadN to i64 + %icmpN = icmp slt i64 %cmp.ext9, 0 + br i1 %icmpN, label %if.then.180, label %if.merge.181 + +if.then.180: ; preds = %if.merge.179 + %loadN = load i32, ptr %allocaN, align 4 + %callN = call i32 @close(i32 %loadN) + ret i1 false + +if.merge.181: ; preds = %if.merge.179 + store i1 true, ptr %allocaN, align 1 + %callN = call { ptr, i64 } @alloc_string(ptr %0, i64 65536) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + store i1 true, ptr %allocaN, align 1 + br label %while.hdr.182 + +while.hdr.182: ; preds = %if.merge.190, %if.merge.181 + %loadN = load i1, ptr %allocaN, align 1 + br i1 %loadN, label %while.body.183, label %while.exit.184 + +while.body.183: ; preds = %while.hdr.182 + %loadN = load i32, ptr %allocaN, align 4 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %callN = call i64 @read(i32 %loadN, ptr %dptr, i64 65536) + store i64 %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp slt i64 %loadN, 0 + br i1 %icmpN, label %if.then.185, label %if.merge.186 + +while.exit.184: ; preds = %while.hdr.182 + %loadN = load i32, ptr %allocaN, align 4 + %callN = call i32 @close(i32 %loadN) + %loadN = load i32, ptr %allocaN, align 4 + %callN = call i32 @close(i32 %loadN) + %loadN = load i1, ptr %allocaN, align 1 + ret i1 %loadN + +if.then.185: ; preds = %while.body.183 + store i1 false, ptr %allocaN, align 1 + store i1 false, ptr %allocaN, align 1 + br label %if.merge.186 + +if.merge.186: ; preds = %if.then.185, %while.body.183 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp eq i64 %loadN, 0 + br i1 %icmpN, label %if.then.187, label %if.merge.188 + +if.then.187: ; preds = %if.merge.186 + store i1 false, ptr %allocaN, align 1 + br label %if.merge.188 + +if.merge.188: ; preds = %if.then.187, %if.merge.186 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.189, label %if.merge.190 + +if.then.189: ; preds = %if.merge.188 + %loadN = load i32, ptr %allocaN, align 4 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call i64 @write(i32 %loadN, ptr %dptrN, i64 %loadN) + store i64 %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp ne i64 %loadN, %loadN + br i1 %icmpN, label %if.then.191, label %if.merge.192 + +if.merge.190: ; preds = %if.merge.192, %if.merge.188 + br label %while.hdr.182 + +if.then.191: ; preds = %if.then.189 + store i1 false, ptr %allocaN, align 1 + store i1 false, ptr %allocaN, align 1 + br label %if.merge.192 + +if.merge.192: ; preds = %if.then.191, %if.then.189 + br label %if.merge.190 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @basename(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %load, 1 + %icmp = icmp eq i64 %len, 0 + br i1 %icmp, label %if.then.166, label %if.merge.167 + +if.then.166: ; preds = %entry + ret { ptr, i64 } { ptr @str.556, i64 0 } + +if.merge.167: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %sub = sub i64 %lenN, 1 + store i64 %sub, ptr %allocaN, align 8 + br label %while.hdr.168 + +while.hdr.168: ; preds = %if.merge.172, %if.merge.167 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %while.body.169, label %while.exit.170 + +while.body.169: ; preds = %while.hdr.168 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %loadN + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext = zext i8 %ig.val to i64 + %icmpN = icmp ne i64 %cmp.ext, 47 + br i1 %icmpN, label %if.then.171, label %if.merge.172 + +while.exit.170: ; preds = %if.then.171, %while.hdr.168 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.173 + +if.then.171: ; preds = %while.body.169 + br label %while.exit.170 + +if.merge.172: ; preds = %while.body.169 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + store i64 %subN, ptr %allocaN, align 8 + br label %while.hdr.168 + +while.hdr.173: ; preds = %if.merge.177, %while.exit.170 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %while.body.174, label %while.exit.175 + +while.body.174: ; preds = %while.hdr.173 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + %ig.data18 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr19 = getelementptr i8, ptr %ig.data18, i64 %subN + %ig.val20 = load i8, ptr %ig.ptr19, align 1 + %cmp.ext21 = zext i8 %ig.val20 to i64 + %icmpN = icmp eq i64 %cmp.ext21, 47 + br i1 %icmpN, label %if.then.176, label %if.merge.177 + +while.exit.175: ; preds = %while.hdr.173 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %loadN) + ret { ptr, i64 } %call + +if.then.176: ; preds = %while.body.174 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, %loadN + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %subN) + ret { ptr, i64 } %callN + +if.merge.177: ; preds = %while.body.174 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + store i64 %subN, ptr %allocaN, align 8 + br label %while.hdr.173 +} + +; Function Attrs: nounwind +declare ptr @dirname(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @spaces(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +define internal { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i1, align 1 + %allocaN = alloca i64, align 8 + %allocaN = alloca i32, align 4 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i32, align 4 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %ca.decay = extractvalue { ptr, i64 } %load, 0 + %call = call ptr @popen(ptr %ca.decay, ptr @str.557) + %allocaN = alloca ptr, align 8 + store ptr %call, ptr %allocaN, align 8 + %loadN = load ptr, ptr %allocaN, align 8 + %pti = ptrtoint ptr %loadN to i64 + %icmp = icmp eq i64 %pti, 0 + br i1 %icmp, label %if.then.66, label %if.merge.67 + +if.then.66: ; preds = %entry + ret { { i32, { ptr, i64 } }, i1 } zeroinitializer + +if.merge.67: ; preds = %entry + store { ptr, i64 } { ptr @str.558, i64 0 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @alloc_string(ptr %0, i64 4096) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + store i1 true, ptr %allocaN, align 1 + br label %while.hdr.68 + +while.hdr.68: ; preds = %if.merge.74, %if.merge.67 + %loadN = load i1, ptr %allocaN, align 1 + br i1 %loadN, label %while.body.69, label %while.exit.70 + +while.body.69: ; preds = %while.hdr.68 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load ptr, ptr %allocaN, align 8 + %callN = call i64 @fread(ptr %dptr, i64 1, i64 4096, ptr %loadN) + store i64 %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp eq i64 %loadN, 0 + br i1 %icmpN, label %if.then.71, label %if.merge.72 + +while.exit.70: ; preds = %while.hdr.68 + %loadN = load ptr, ptr %allocaN, align 8 + %callN = call i32 @pclose(ptr %loadN) + store i32 %callN, ptr %allocaN, align 4 + %loadN = load i32, ptr %allocaN, align 4 + %cmp.ext = sext i32 %loadN to i64 + %icmpN = icmp slt i64 %cmp.ext, 0 + br i1 %icmpN, label %if.then.75, label %if.merge.76 + +if.then.71: ; preds = %while.body.69 + store i1 false, ptr %allocaN, align 1 + br label %if.merge.72 + +if.merge.72: ; preds = %if.then.71, %while.body.69 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.73, label %if.merge.74 + +if.then.73: ; preds = %if.merge.72 + store { ptr, i64 } undef, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %dptrN, ptr %gep, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 %loadN, ptr %gepN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.74 + +if.merge.74: ; preds = %if.then.73, %if.merge.72 + br label %while.hdr.68 + +if.then.75: ; preds = %while.exit.70 + ret { { i32, { ptr, i64 } }, i1 } zeroinitializer + +if.merge.76: ; preds = %while.exit.70 + %loadN = load i32, ptr %allocaN, align 4 + %ashr = ashr i32 %loadN, 8 + %and = and i32 %ashr, 255 + store i32 %and, ptr %allocaN, align 4 + %loadN = load i32, ptr %allocaN, align 4 + %cmp.ext32 = sext i32 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext32, 0 + br i1 %icmpN, label %if.then.77, label %if.merge.78 + +if.then.77: ; preds = %if.merge.76 + %loadN = load i32, ptr %allocaN, align 4 + %andN = and i32 %loadN, 127 + %cmp.ext36 = sext i32 %andN to i64 + %icmpN = icmp ne i64 %cmp.ext36, 0 + br i1 %icmpN, label %if.then.79, label %if.merge.80 + +if.merge.78: ; preds = %if.merge.80, %if.merge.76 + %loadN = load i32, ptr %allocaN, align 4 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %si = insertvalue { i32, { ptr, i64 } } undef, i32 %loadN, 0 + %siN = insertvalue { i32, { ptr, i64 } } %si, { ptr, i64 } %loadN, 1 + %ow.val = insertvalue { { i32, { ptr, i64 } }, i1 } undef, { i32, { ptr, i64 } } %siN, 0 + %ow.has = insertvalue { { i32, { ptr, i64 } }, i1 } %ow.val, i1 true, 1 + ret { { i32, { ptr, i64 } }, i1 } %ow.has + +if.then.79: ; preds = %if.then.77 + %loadN = load i32, ptr %allocaN, align 4 + %andN = and i32 %loadN, 127 + %ca.ext = zext i32 %andN to i64 + %add = add i64 128, %ca.ext + %trunc = trunc i64 %add to i32 + store i32 %trunc, ptr %allocaN, align 4 + br label %if.merge.80 + +if.merge.80: ; preds = %if.then.79, %if.then.77 + br label %if.merge.78 +} + +; Function Attrs: nounwind +define internal { { ptr, i64 }, i1 } @env(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %call = call ptr @to_cstring(ptr %0, { ptr, i64 } %load) + %callN = call ptr @getenv(ptr %call) + %allocaN = alloca ptr, align 8 + store ptr %callN, ptr %allocaN, align 8 + %loadN = load ptr, ptr %allocaN, align 8 + %oh.nn = icmp ne ptr %loadN, null + %lnot = xor i1 %oh.nn, true + br i1 %lnot, label %if.then.105, label %if.merge.106 + +if.then.105: ; preds = %entry + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.106: ; preds = %entry + %loadN = load ptr, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @from_cstring(ptr %0, ptr %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp eq i64 %len, 0 + br i1 %icmp, label %if.then.110, label %if.merge.111 + +if.then.110: ; preds = %if.merge.106 + ret { { ptr, i64 }, i1 } { { ptr, i64 } { ptr @str.559, i64 0 }, i1 true } + +if.merge.111: ; preds = %if.merge.106 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %lenN) + %ow.val = insertvalue { { ptr, i64 }, i1 } undef, { ptr, i64 } %callN, 0 + %ow.has = insertvalue { { ptr, i64 }, i1 } %ow.val, i1 true, 1 + ret { { ptr, i64 }, i1 } %ow.has +} + +; Function Attrs: nounwind +define internal { { ptr, i64 }, i1 } @find_executable(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.560, i64 11 }, { ptr, i64 } %load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %callN = call { ptr, i64 } @alloc_string(ptr %0, i64 %len) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %callN = call ptr @memcpy(ptr %dptr, ptr %dptrN, i64 %lenN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %loadN) + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.255, label %if.merge.256 + +if.then.255: ; preds = %entry + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sg = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext = sext i32 %sg to i64 + %icmp = icmp ne i64 %cmp.ext, 0 + br i1 %icmp, label %if.then.257, label %if.merge.258 + +if.merge.256: ; preds = %entry + ret { { ptr, i64 }, i1 } zeroinitializer + +if.then.257: ; preds = %if.then.255 + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.258: ; preds = %if.then.255 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + store { ptr, i64 } %sgN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %lenN, 0 + br i1 %icmpN, label %if.then.259, label %if.merge.260 + +if.then.259: ; preds = %if.merge.258 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %sub = sub i64 %lenN, 1 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %sub + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext24 = zext i8 %ig.val to i64 + %icmpN = icmp eq i64 %cmp.ext24, 10 + br i1 %icmpN, label %if.then.261, label %if.merge.262 + +if.merge.260: ; preds = %if.merge.262, %if.merge.258 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp eq i64 %lenN, 0 + br i1 %icmpN, label %if.then.263, label %if.merge.264 + +if.then.261: ; preds = %if.then.259 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.262 + +if.merge.262: ; preds = %if.then.261, %if.then.259 + br label %if.merge.260 + +if.then.263: ; preds = %if.merge.260 + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.264: ; preds = %if.merge.260 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ow.val = insertvalue { { ptr, i64 }, i1 } undef, { ptr, i64 } %loadN, 0 + %ow.has = insertvalue { { ptr, i64 }, i1 } %ow.val, i1 true, 1 + ret { { ptr, i64 }, i1 } %ow.has +} + +; Function Attrs: nounwind +declare void @_exit(i32) #0 + +; Function Attrs: nounwind +declare void @exit(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert(ptr, i1, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @socket(i32, i32, i32) #0 + +; Function Attrs: nounwind +declare i32 @setsockopt(i32, i32, i32, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @bind(i32, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @listen(i32, i32) #0 + +; Function Attrs: nounwind +declare i32 @accept(i32, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @connect(i32, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @shutdown(i32, i32) #0 + +; Function Attrs: nounwind +declare i32 @socketpair(i32, i32, i32, ptr) #0 + +; Function Attrs: nounwind +declare i32 @fcntl(i32, i32, ...) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @__error() #0 + +; Function Attrs: nounwind +declare i32 @errno(ptr) #0 + +; Function Attrs: nounwind +declare i1 @is_wouldblock(ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @set_nonblocking(ptr, i32) #0 + +; Function Attrs: nounwind +declare i64 @accept_nb(ptr, i32) #0 + +; Function Attrs: nounwind +declare [2 x i64] @read_nb(ptr, i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare [2 x i64] @write_nb(ptr, i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @mem_realloc.4(ptr, ptr, ptr, i64, i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc_bytes.5(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc_bytes.6(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.7(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc_bytes.8(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc_bytes.9(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.10(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.11(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.12(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.13(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc_bytes.14(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc_bytes.15(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.init.16(ptr sret({ ptr, i64, i64 }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.17(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc_bytes.18(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc_bytes.19(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.20(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.21(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.22(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc_bytes.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc_bytes.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.25(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.26(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.28(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.29(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.30(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.31(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @read_file.32(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.34(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.36(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.37(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.38(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.39(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.40(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.41(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.43(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.44(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Array.add(ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Array.deinit(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Object.put(ptr, ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Object.deinit(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Sink.put_byte(ptr, ptr, i8) #0 + +; Function Attrs: nounwind +declare i32 @Sink.put(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Sink.flush(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i8 @hex_digit(ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @write_u_escape(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_string(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_int(ptr, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_value(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_array(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_object(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @write_to_buffer(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_to_file(ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @hex_value(ptr, i8) #0 + +; Function Attrs: nounwind +declare i64 @encode_utf8(ptr, i64, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.skip_ws(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Parser.expect_lit(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.read_hex4(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.decode_into(ptr, ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_string(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.parse_number(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_array(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_object(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_value(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @parse(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +define internal { ptr, i64 } @escape(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca i8, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.561, i64 0 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.214 + +while.hdr.214: ; preds = %if.merge.228, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.215, label %while.exit.216 + +while.body.215: ; preds = %while.hdr.214 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %loadN + %ig.val = load i8, ptr %ig.ptr, align 1 + store i8 %ig.val, ptr %allocaN, align 1 + store { ptr, i64 } { ptr @str.562, i64 0 }, ptr %allocaN, align 8 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext, 38 + br i1 %icmpN, label %if.then.217, label %if.merge.218 + +while.exit.216: ; preds = %while.hdr.214 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp slt i64 %loadN, %lenN + br i1 %icmpN, label %if.then.231, label %if.merge.232 + +if.then.217: ; preds = %while.body.215 + store { ptr, i64 } { ptr @str.563, i64 5 }, ptr %allocaN, align 8 + br label %if.merge.218 + +if.merge.218: ; preds = %if.then.217, %while.body.215 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext16 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext16, 60 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +if.then.219: ; preds = %if.merge.218 + store { ptr, i64 } { ptr @str.564, i64 4 }, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %if.merge.218 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext19 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext19, 62 + br i1 %icmpN, label %if.then.221, label %if.merge.222 + +if.then.221: ; preds = %if.merge.220 + store { ptr, i64 } { ptr @str.565, i64 4 }, ptr %allocaN, align 8 + br label %if.merge.222 + +if.merge.222: ; preds = %if.then.221, %if.merge.220 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext22 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext22, 34 + br i1 %icmpN, label %if.then.223, label %if.merge.224 + +if.then.223: ; preds = %if.merge.222 + store { ptr, i64 } { ptr @str.566, i64 6 }, ptr %allocaN, align 8 + br label %if.merge.224 + +if.merge.224: ; preds = %if.then.223, %if.merge.222 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext25 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext25, 39 + br i1 %icmpN, label %if.then.225, label %if.merge.226 + +if.then.225: ; preds = %if.merge.224 + store { ptr, i64 } { ptr @str.567, i64 6 }, ptr %allocaN, align 8 + br label %if.merge.226 + +if.merge.226: ; preds = %if.then.225, %if.merge.224 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %lenN, 0 + br i1 %icmpN, label %if.then.227, label %if.merge.228 + +if.then.227: ; preds = %if.merge.226 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, %loadN + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +if.merge.228: ; preds = %if.merge.230, %if.merge.226 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.214 + +if.then.229: ; preds = %if.then.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 %loadN, %loadN + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %call) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %if.then.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 1 + store i64 %addN, ptr %allocaN, align 8 + br label %if.merge.228 + +if.then.231: ; preds = %while.exit.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %lenN, %loadN + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %subN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.232 + +if.merge.232: ; preds = %if.then.231, %while.exit.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +declare void @c_object_paths(ptr sret({ ptr, i64, i64 })) #0 + +; Function Attrs: nounwind +declare void @link_libraries(ptr sret({ ptr, i64, i64 })) #0 + +; Function Attrs: nounwind +declare ptr @emit_object() #0 + +; Function Attrs: nounwind +declare ptr @build_output() #0 + +; Function Attrs: nounwind +declare ptr @build_target() #0 + +; Function Attrs: nounwind +declare void @build_frameworks(ptr sret({ ptr, i64, i64 })) #0 + +; Function Attrs: nounwind +declare void @build_flags(ptr sret({ ptr, i64, i64 })) #0 + +; Function Attrs: nounwind +declare void @link(ptr, ptr, ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.45(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.46(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.47(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.48(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.49(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.50(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.51(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @read_file.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.53(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.54(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.55(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.56(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.57(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.58(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.59(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.60(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.61(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @spaces.65(ptr, i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.66(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.67(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.68(ptr) #0 + +; Function Attrs: nounwind +declare void @run.69(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @env.70(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @find_executable.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @exit.72(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.73(ptr, i1, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @bundle_main(ptr, {}) #0 + +; Function Attrs: nounwind +define internal { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %load, 1 + %call = call { ptr, i64 } @alloc_string(ptr %0, i64 %len) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %dptr = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %dptrN = extractvalue { ptr, i64 } %loadN, 0 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %callN = call ptr @memcpy(ptr %dptr, ptr %dptrN, i64 %lenN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +declare { ptr, i64 } @build_info_plist(ptr, {}, { ptr, i64 }, { ptr, i64 }) #0 + +; Function Attrs: nounwind +define internal i1 @embed_provisioning_profile(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { { ptr, i64 }, i1 } @read_file(ptr %0, { ptr, i64 } %loadN) + %oh.has = extractvalue { { ptr, i64 }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.415, label %if.merge.416 + +if.then.415: ; preds = %entry + %ou.val = extractvalue { { ptr, i64 }, i1 } %callN, 0 + store { ptr, i64 } %ou.val, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.568, i64 25 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call i1 @write_file(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + %lnot = xor i1 %callN, true + br i1 %lnot, label %if.then.417, label %if.merge.418 + +if.merge.416: ; preds = %entry + call void @out(ptr %0, { ptr, i64 } { ptr @str.569, i64 49 }) + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + call void @out(ptr %0, { ptr, i64 } %loadN) + call void @out(ptr %0, { ptr, i64 } { ptr @str.570, i64 1 }) + ret i1 false + +if.then.417: ; preds = %if.then.415 + call void @out(ptr %0, { ptr, i64 } { ptr @str.571, i64 56 }) + ret i1 false + +if.merge.418: ; preds = %if.then.415 + ret i1 true +} + +; Function Attrs: nounwind +define internal i1 @copy_asset_dir(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2, { ptr, i64 } %3) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %3, ptr %allocaN, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call i1 @exists(ptr %0, { ptr, i64 } %loadN) + %lnot = xor i1 %callN, true + br i1 %lnot, label %if.then.424, label %if.merge.425 + +if.then.424: ; preds = %entry + ret i1 true + +if.merge.425: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.572, i64 1 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call i1 @create_dir_all(ptr %0, { ptr, i64 } %loadN) + %lnotN = xor i1 %callN, true + br i1 %lnotN, label %if.then.426, label %if.merge.427 + +if.then.426: ; preds = %if.merge.425 + call void @out(ptr %0, { ptr, i64 } { ptr @str.573, i64 41 }) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + call void @out(ptr %0, { ptr, i64 } %loadN) + call void @out(ptr %0, { ptr, i64 } { ptr @str.574, i64 2 }) + ret i1 false + +if.merge.427: ; preds = %if.merge.425 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.575, i64 7 }, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.576, i64 5 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.577, i64 6 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %loadN) + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.428, label %if.merge.429 + +if.then.428: ; preds = %if.merge.427 + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sg = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext = sext i32 %sg to i64 + %icmp = icmp ne i64 %cmp.ext, 0 + br i1 %icmp, label %if.then.430, label %if.merge.431 + +if.merge.429: ; preds = %if.merge.427 + call void @out(ptr %0, { ptr, i64 } { ptr @str.578, i64 26 }) + ret i1 false + +if.then.430: ; preds = %if.then.428 + call void @out(ptr %0, { ptr, i64 } { ptr @str.579, i64 21 }) + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + call void @out(ptr %0, { ptr, i64 } %sgN) + ret i1 false + +if.merge.431: ; preds = %if.then.428 + ret i1 true +} + +; Function Attrs: nounwind +declare i1 @embed_framework(ptr, {}, { ptr, i64 }, { ptr, i64 }) #0 + +; Function Attrs: nounwind +define internal { { ptr, i64 }, i1 } @extract_entitlements(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + %allocaN = alloca i8, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %call = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } { ptr @str.580, i64 7 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %load = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call i1 @create_dir_all(ptr %0, { ptr, i64 } %load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.581, i64 21 }, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.582, i64 26 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.583, i64 20 }, { ptr, i64 } %loadN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.584, i64 6 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.585, i64 6 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %loadN) + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.460, label %if.else.461 + +if.then.460: ; preds = %entry + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sg = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext = sext i32 %sg to i64 + %icmp = icmp ne i64 %cmp.ext, 0 + br i1 %icmp, label %if.then.463, label %if.merge.464 + +if.else.461: ; preds = %entry + call void @out(ptr %0, { ptr, i64 } { ptr @str.586, i64 33 }) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.462: ; preds = %if.merge.464 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.587, i64 38 }, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.588, i64 3 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.589, i64 6 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %loadN) + %oh.has38 = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has38, label %if.then.465, label %if.else.466 + +if.then.463: ; preds = %if.then.460 + call void @out(ptr %0, { ptr, i64 } { ptr @str.590, i64 46 }) + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + call void @out(ptr %0, { ptr, i64 } %sgN) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.464: ; preds = %if.then.460 + br label %if.merge.462 + +if.then.465: ; preds = %if.merge.462 + %ou.val41 = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val41, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext45 = sext i32 %sgN to i64 + %icmpN = icmp ne i64 %cmp.ext45, 0 + br i1 %icmpN, label %if.then.468, label %if.merge.469 + +if.else.466: ; preds = %if.merge.462 + call void @out(ptr %0, { ptr, i64 } { ptr @str.591, i64 35 }) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.467: ; preds = %if.merge.469 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.592, i64 56 }, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.593, i64 1 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.594, i64 0 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %loadN) + %oh.has58 = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has58, label %if.then.470, label %if.else.471 + +if.then.468: ; preds = %if.then.465 + call void @out(ptr %0, { ptr, i64 } { ptr @str.595, i64 39 }) + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + call void @out(ptr %0, { ptr, i64 } %sgN) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.469: ; preds = %if.then.465 + br label %if.merge.467 + +if.then.470: ; preds = %if.merge.467 + %ou.val61 = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val61, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext65 = sext i32 %sgN to i64 + %icmpN = icmp ne i64 %cmp.ext65, 0 + br i1 %icmpN, label %if.then.473, label %if.merge.474 + +if.else.471: ; preds = %if.merge.467 + call void @out(ptr %0, { ptr, i64 } { ptr @str.596, i64 55 }) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.472: ; preds = %while.exit.477 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp eq i64 %len, 0 + br i1 %icmpN, label %if.then.490, label %if.merge.491 + +if.then.473: ; preds = %if.then.470 + call void @out(ptr %0, { ptr, i64 } { ptr @str.597, i64 52 }) + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + call void @out(ptr %0, { ptr, i64 } %sgN) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.474: ; preds = %if.then.470 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + store { ptr, i64 } %sgN, ptr %allocaN, align 8 + br label %while.hdr.475 + +while.hdr.475: ; preds = %if.merge.480, %if.merge.474 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %lenN, 0 + br i1 %icmpN, label %while.body.476, label %while.exit.477 + +while.body.476: ; preds = %while.hdr.475 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %sub = sub i64 %lenN, 1 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %sub + %ig.val = load i8, ptr %ig.ptr, align 1 + store i8 %ig.val, ptr %allocaN, align 1 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext81 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext81, 10 + br i1 %icmpN, label %if.then.478, label %if.else.479 + +while.exit.477: ; preds = %if.else.488, %while.hdr.475 + br label %if.merge.472 + +if.then.478: ; preds = %while.body.476 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.480 + +if.else.479: ; preds = %while.body.476 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext89 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext89, 13 + br i1 %icmpN, label %if.then.481, label %if.else.482 + +if.merge.480: ; preds = %if.merge.483, %if.then.478 + br label %while.hdr.475 + +if.then.481: ; preds = %if.else.479 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.483 + +if.else.482: ; preds = %if.else.479 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext97 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext97, 32 + br i1 %icmpN, label %if.then.484, label %if.else.485 + +if.merge.483: ; preds = %if.merge.486, %if.then.481 + br label %if.merge.480 + +if.then.484: ; preds = %if.else.482 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.486 + +if.else.485: ; preds = %if.else.482 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext105 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext105, 9 + br i1 %icmpN, label %if.then.487, label %if.else.488 + +if.merge.486: ; preds = %if.merge.489, %if.then.484 + br label %if.merge.483 + +if.then.487: ; preds = %if.else.485 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.489 + +if.else.488: ; preds = %if.else.485 + br label %while.exit.477 + +if.merge.489: ; preds = %if.then.487 + br label %if.merge.486 + +if.then.490: ; preds = %if.merge.472 + call void @out(ptr %0, { ptr, i64 } { ptr @str.598, i64 66 }) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.491: ; preds = %if.merge.472 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.599, i64 1 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.600, i64 48 }, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.601, i64 3 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.602, i64 6 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %loadN) + %oh.has133 = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has133, label %if.then.492, label %if.else.493 + +if.then.492: ; preds = %if.merge.491 + %ou.val134 = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val134, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext138 = sext i32 %sgN to i64 + %icmpN = icmp ne i64 %cmp.ext138, 0 + br i1 %icmpN, label %if.then.495, label %if.merge.496 + +if.else.493: ; preds = %if.merge.491 + call void @out(ptr %0, { ptr, i64 } { ptr @str.603, i64 35 }) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.494: ; preds = %if.merge.496 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ow.val = insertvalue { { ptr, i64 }, i1 } undef, { ptr, i64 } %loadN, 0 + %ow.has = insertvalue { { ptr, i64 }, i1 } %ow.val, i1 true, 1 + ret { { ptr, i64 }, i1 } %ow.has + +if.then.495: ; preds = %if.then.492 + call void @out(ptr %0, { ptr, i64 } { ptr @str.604, i64 49 }) + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + call void @out(ptr %0, { ptr, i64 } %sgN) + ret { { ptr, i64 }, i1 } zeroinitializer + +if.merge.496: ; preds = %if.then.492 + br label %if.merge.494 +} + +; Function Attrs: nounwind +define internal i1 @codesign(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2, { ptr, i64 } %3) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %3, ptr %allocaN, align 8 + %load = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.605, i64 25 }, { ptr, i64 } %load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 18 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.500, label %if.merge.501 + +if.then.500: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 17 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 1 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.501 + +if.merge.501: ; preds = %if.then.500, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.609, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.610, i64 6 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %loadN) + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.502, label %if.merge.503 + +if.then.502: ; preds = %if.merge.501 + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sg = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext = sext i32 %sg to i64 + %icmpN = icmp ne i64 %cmp.ext, 0 + br i1 %icmpN, label %if.then.504, label %if.merge.505 + +if.merge.503: ; preds = %if.merge.501 + call void @out(ptr %0, { ptr, i64 } { ptr @str.611, i64 29 }) + ret i1 false + +if.then.504: ; preds = %if.then.502 + call void @out(ptr %0, { ptr, i64 } { ptr @str.612, i64 24 }) + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + call void @out(ptr %0, { ptr, i64 } %sgN) + ret i1 false + +if.merge.505: ; preds = %if.then.502 + ret i1 true +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @absolutify(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca [2 x { ptr, i64 }], align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %load, 1 + %icmp = icmp eq i64 %len, 0 + br i1 %icmp, label %if.then.62, label %if.merge.63 + +if.then.62: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + ret { ptr, i64 } %loadN + +if.merge.63: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 0 + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext = zext i8 %ig.val to i64 + %icmpN = icmp eq i64 %cmp.ext, 47 + br i1 %icmpN, label %if.then.64, label %if.merge.65 + +if.then.64: ; preds = %if.merge.63 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + ret { ptr, i64 } %loadN + +if.merge.65: ; preds = %if.merge.63 + %call = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } { ptr @str.613, i64 3 }) + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %call) + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.81, label %if.merge.82 + +if.then.81: ; preds = %if.merge.65 + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sg = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext8 = sext i32 %sg to i64 + %icmpN = icmp ne i64 %cmp.ext8, 0 + br i1 %icmpN, label %if.then.83, label %if.merge.84 + +if.merge.82: ; preds = %if.merge.65 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + ret { ptr, i64 } %loadN + +if.then.83: ; preds = %if.then.81 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + ret { ptr, i64 } %loadN + +if.merge.84: ; preds = %if.then.81 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + store { ptr, i64 } %sgN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %lenN, 0 + br i1 %icmpN, label %if.then.85, label %if.merge.86 + +if.then.85: ; preds = %if.merge.84 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %sub = sub i64 %lenN, 1 + %ig.data21 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr22 = getelementptr i8, ptr %ig.data21, i64 %sub + %ig.val23 = load i8, ptr %ig.ptr22, align 1 + %cmp.ext24 = zext i8 %ig.val23 to i64 + %icmpN = icmp eq i64 %cmp.ext24, 10 + br i1 %icmpN, label %if.then.87, label %if.merge.88 + +if.merge.86: ; preds = %if.merge.88, %if.merge.84 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp eq i64 %lenN, 0 + br i1 %icmpN, label %if.then.89, label %if.merge.90 + +if.then.87: ; preds = %if.then.85 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.88 + +if.merge.88: ; preds = %if.then.87, %if.then.85 + br label %if.merge.86 + +if.then.89: ; preds = %if.merge.86 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + ret { ptr, i64 } %loadN + +if.merge.90: ; preds = %if.merge.86 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %igp.ptr = getelementptr { ptr, i64 }, ptr %allocaN, i64 0 + store { ptr, i64 } %loadN, ptr %igp.ptr, align 8 + %igp.ptr38 = getelementptr { ptr, i64 }, ptr %allocaN, i64 1 + store { ptr, i64 } %loadN, ptr %igp.ptr38, align 8 + %igp.ptr40 = getelementptr { ptr, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr40, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 2, ptr %gepN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @path_join(ptr %0, { ptr, i64 } %loadN) + ret { ptr, i64 } %callN +} + +; Function Attrs: nounwind +declare i1 @android_bundle_main(ptr, {}, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }) #0 + +; Function Attrs: nounwind +define internal i1 @run_in_dir(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.614, i64 4 }, { ptr, i64 } %load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 5 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 5 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %callN) + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.313, label %if.merge.314 + +if.then.313: ; preds = %entry + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sg = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext = sext i32 %sg to i64 + %icmp = icmp ne i64 %cmp.ext, 0 + br i1 %icmp, label %if.then.315, label %if.merge.316 + +if.merge.314: ; preds = %entry + call void @out(ptr %0, { ptr, i64 } { ptr @str.617, i64 26 }) + ret i1 false + +if.then.315: ; preds = %if.then.313 + call void @out(ptr %0, { ptr, i64 } { ptr @str.618, i64 7 }) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + call void @out(ptr %0, { ptr, i64 } %loadN) + call void @out(ptr %0, { ptr, i64 } { ptr @str.619, i64 9 }) + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + call void @out(ptr %0, { ptr, i64 } %sgN) + ret i1 false + +if.merge.316: ; preds = %if.then.313 + ret i1 true +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @discover_android_sdk(ptr %0) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca [2 x { ptr, i64 }], align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %call = call { { ptr, i64 }, i1 } @env(ptr %0, { ptr, i64 } { ptr @str.620, i64 12 }) + %oh.has = extractvalue { { ptr, i64 }, i1 } %call, 1 + br i1 %oh.has, label %if.then.112, label %if.merge.113 + +if.then.112: ; preds = %entry + %ou.val = extractvalue { { ptr, i64 }, i1 } %call, 0 + store { ptr, i64 } %ou.val, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + ret { ptr, i64 } %load + +if.merge.113: ; preds = %entry + %callN = call { { ptr, i64 }, i1 } @env(ptr %0, { ptr, i64 } { ptr @str.621, i64 16 }) + %oh.has2 = extractvalue { { ptr, i64 }, i1 } %callN, 1 + br i1 %oh.has2, label %if.then.114, label %if.merge.115 + +if.then.114: ; preds = %if.merge.113 + %ou.val3 = extractvalue { { ptr, i64 }, i1 } %callN, 0 + store { ptr, i64 } %ou.val3, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN + +if.merge.115: ; preds = %if.merge.113 + %callN = call { { ptr, i64 }, i1 } @env(ptr %0, { ptr, i64 } { ptr @str.622, i64 4 }) + %oh.has7 = extractvalue { { ptr, i64 }, i1 } %callN, 1 + br i1 %oh.has7, label %if.then.116, label %if.merge.117 + +if.then.116: ; preds = %if.merge.115 + %ou.val8 = extractvalue { { ptr, i64 }, i1 } %callN, 0 + store { ptr, i64 } %ou.val8, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.ptr = getelementptr { ptr, i64 }, ptr %allocaN, i64 0 + store { ptr, i64 } %loadN, ptr %igp.ptr, align 8 + %igp.ptr12 = getelementptr { ptr, i64 }, ptr %allocaN, i64 1 + store { ptr, i64 } { ptr @str.623, i64 19 }, ptr %igp.ptr12, align 8 + %igp.ptr14 = getelementptr { ptr, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr14, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 2, ptr %gepN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @path_join(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %callN = call i1 @exists(ptr %0, { ptr, i64 } %callN) + br i1 %callN, label %if.then.118, label %if.merge.119 + +if.merge.117: ; preds = %if.merge.119, %if.merge.115 + ret { ptr, i64 } { ptr @str.624, i64 0 } + +if.then.118: ; preds = %if.then.116 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN + +if.merge.119: ; preds = %if.then.116 + br label %if.merge.117 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @find_highest_subdir(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca i8, align 1 + %allocaN = alloca [2 x { ptr, i64 }], align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.625, i64 7 }, { ptr, i64 } %load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.626, i64 33 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %callN) + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.122, label %if.merge.123 + +if.then.122: ; preds = %entry + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sg = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext = sext i32 %sg to i64 + %icmp = icmp ne i64 %cmp.ext, 0 + br i1 %icmp, label %if.then.124, label %if.merge.125 + +if.merge.123: ; preds = %entry + ret { ptr, i64 } { ptr @str.627, i64 0 } + +if.then.124: ; preds = %if.then.122 + ret { ptr, i64 } { ptr @str.628, i64 0 } + +if.merge.125: ; preds = %if.then.122 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + store { ptr, i64 } %sgN, ptr %allocaN, align 8 + br label %while.hdr.126 + +while.hdr.126: ; preds = %if.merge.131, %if.merge.125 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %len, 0 + br i1 %icmpN, label %while.body.127, label %while.exit.128 + +while.body.127: ; preds = %while.hdr.126 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %sub = sub i64 %lenN, 1 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %sub + %ig.val = load i8, ptr %ig.ptr, align 1 + store i8 %ig.val, ptr %allocaN, align 1 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext19 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext19, 10 + br i1 %icmpN, label %if.then.129, label %if.else.130 + +while.exit.128: ; preds = %if.else.139, %while.hdr.126 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp eq i64 %lenN, 0 + br i1 %icmpN, label %if.then.141, label %if.merge.142 + +if.then.129: ; preds = %while.body.127 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.131 + +if.else.130: ; preds = %while.body.127 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext30 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext30, 13 + br i1 %icmpN, label %if.then.132, label %if.else.133 + +if.merge.131: ; preds = %if.merge.134, %if.then.129 + br label %while.hdr.126 + +if.then.132: ; preds = %if.else.130 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.134 + +if.else.133: ; preds = %if.else.130 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext38 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext38, 32 + br i1 %icmpN, label %if.then.135, label %if.else.136 + +if.merge.134: ; preds = %if.merge.137, %if.then.132 + br label %if.merge.131 + +if.then.135: ; preds = %if.else.133 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.137 + +if.else.136: ; preds = %if.else.133 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext46 = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext46, 9 + br i1 %icmpN, label %if.then.138, label %if.else.139 + +if.merge.137: ; preds = %if.merge.140, %if.then.135 + br label %if.merge.134 + +if.then.138: ; preds = %if.else.136 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 1 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.140 + +if.else.139: ; preds = %if.else.136 + br label %while.exit.128 + +if.merge.140: ; preds = %if.then.138 + br label %if.merge.137 + +if.then.141: ; preds = %while.exit.128 + ret { ptr, i64 } { ptr @str.629, i64 0 } + +if.merge.142: ; preds = %while.exit.128 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.ptr = getelementptr { ptr, i64 }, ptr %allocaN, i64 0 + store { ptr, i64 } %loadN, ptr %igp.ptr, align 8 + %igp.ptr56 = getelementptr { ptr, i64 }, ptr %allocaN, i64 1 + store { ptr, i64 } %loadN, ptr %igp.ptr56, align 8 + %igp.ptr58 = getelementptr { ptr, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr58, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 2, ptr %gepN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @path_join(ptr %0, { ptr, i64 } %loadN) + ret { ptr, i64 } %callN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @lib_name_from_so_basename(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca i64, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %load, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 3 + br i1 %icmp, label %if.then.195, label %if.merge.196 + +if.then.195: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 0 + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext = zext i8 %ig.val to i64 + %icmpN = icmp eq i64 %cmp.ext, 108 + br i1 %icmpN, label %if.then.197, label %if.merge.198 + +if.merge.196: ; preds = %if.merge.198, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %lenN, 3 + br i1 %icmpN, label %if.then.203, label %if.merge.204 + +if.then.197: ; preds = %if.then.195 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ig.data9 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr10 = getelementptr i8, ptr %ig.data9, i64 1 + %ig.val11 = load i8, ptr %ig.ptr10, align 1 + %cmp.ext12 = zext i8 %ig.val11 to i64 + %icmpN = icmp eq i64 %cmp.ext12, 105 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +if.merge.198: ; preds = %if.merge.200, %if.then.195 + br label %if.merge.196 + +if.then.199: ; preds = %if.then.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ig.data15 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr16 = getelementptr i8, ptr %ig.data15, i64 2 + %ig.val17 = load i8, ptr %ig.ptr16, align 1 + %cmp.ext18 = zext i8 %ig.val17 to i64 + %icmpN = icmp eq i64 %cmp.ext18, 98 + br i1 %icmpN, label %if.then.201, label %if.merge.202 + +if.merge.200: ; preds = %if.merge.202, %if.then.197 + br label %if.merge.198 + +if.then.201: ; preds = %if.then.199 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %sub = sub i64 %lenN, 3 + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 3, i64 %sub) + store { ptr, i64 } %call, ptr %allocaN, align 8 + br label %if.merge.202 + +if.merge.202: ; preds = %if.then.201, %if.then.199 + br label %if.merge.200 + +if.then.203: ; preds = %if.merge.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %subN = sub i64 %lenN, 3 + store i64 %subN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data29 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr30 = getelementptr i8, ptr %ig.data29, i64 %loadN + %ig.val31 = load i8, ptr %ig.ptr30, align 1 + %cmp.ext32 = zext i8 %ig.val31 to i64 + %icmpN = icmp eq i64 %cmp.ext32, 46 + br i1 %icmpN, label %if.then.205, label %if.merge.206 + +if.merge.204: ; preds = %if.merge.206, %if.merge.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN + +if.then.205: ; preds = %if.then.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + %ig.data37 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr38 = getelementptr i8, ptr %ig.data37, i64 %add + %ig.val39 = load i8, ptr %ig.ptr38, align 1 + %cmp.ext40 = zext i8 %ig.val39 to i64 + %icmpN = icmp eq i64 %cmp.ext40, 115 + br i1 %icmpN, label %if.then.207, label %if.merge.208 + +if.merge.206: ; preds = %if.merge.208, %if.then.203 + br label %if.merge.204 + +if.then.207: ; preds = %if.then.205 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, 2 + %ig.data45 = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr46 = getelementptr i8, ptr %ig.data45, i64 %addN + %ig.val47 = load i8, ptr %ig.ptr46, align 1 + %cmp.ext48 = zext i8 %ig.val47 to i64 + %icmpN = icmp eq i64 %cmp.ext48, 111 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +if.merge.208: ; preds = %if.merge.210, %if.then.205 + br label %if.merge.206 + +if.then.209: ; preds = %if.then.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %if.then.207 + br label %if.merge.208 +} + +; Function Attrs: nounwind +declare { ptr, i64 } @build_android_manifest(ptr, {}, { ptr, i64 }, { ptr, i64 }) #0 + +; Function Attrs: nounwind +define internal { ptr, i64 } @slash_to_dot(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca i8, align 1 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %load, 1 + %call = call { ptr, i64 } @alloc_string(ptr %0, i64 %len) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.235 + +while.hdr.235: ; preds = %if.merge.240, %entry + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %loadN, %lenN + br i1 %icmp, label %while.body.236, label %while.exit.237 + +while.body.236: ; preds = %while.hdr.235 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %loadN + %ig.val = load i8, ptr %ig.ptr, align 1 + store i8 %ig.val, ptr %allocaN, align 1 + %loadN = load i8, ptr %allocaN, align 1 + %cmp.ext = zext i8 %loadN to i64 + %icmpN = icmp eq i64 %cmp.ext, 47 + br i1 %icmpN, label %if.then.238, label %if.else.239 + +while.exit.237: ; preds = %while.hdr.235 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN + +if.then.238: ; preds = %while.body.236 + br label %if.merge.240 + +if.else.239: ; preds = %while.body.236 + %loadN = load i8, ptr %allocaN, align 1 + %zext = zext i8 %loadN to i64 + br label %if.merge.240 + +if.merge.240: ; preds = %if.else.239, %if.then.238 + %bp = phi i64 [ 46, %if.then.238 ], [ %zext, %if.else.239 ] + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %igp.data = extractvalue { ptr, i64 } %loadN, 0 + %igp.ptr = getelementptr i8, ptr %igp.data, i64 %loadN + %trunc = trunc i64 %bp to i8 + store i8 %trunc, ptr %igp.ptr, align 1 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.235 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @last_slash_component(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %load, 1 + %allocaN = alloca i64, align 8 + store i64 %len, ptr %allocaN, align 8 + br label %while.hdr.277 + +while.hdr.277: ; preds = %if.merge.281, %entry + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp sgt i64 %loadN, 0 + br i1 %icmp, label %while.body.278, label %while.exit.279 + +while.body.278: ; preds = %while.hdr.277 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 %loadN, 1 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %sub + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext = zext i8 %ig.val to i64 + %icmpN = icmp eq i64 %cmp.ext, 47 + br i1 %icmpN, label %if.then.280, label %if.merge.281 + +while.exit.279: ; preds = %while.hdr.277 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + ret { ptr, i64 } %loadN + +if.then.280: ; preds = %while.body.278 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %lenN, %loadN + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %subN) + ret { ptr, i64 } %call + +if.merge.281: ; preds = %while.body.278 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + store i64 %subN, ptr %allocaN, align 8 + br label %while.hdr.277 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @dir_part(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %load, 1 + %allocaN = alloca i64, align 8 + store i64 %len, ptr %allocaN, align 8 + br label %while.hdr.272 + +while.hdr.272: ; preds = %if.merge.276, %entry + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp sgt i64 %loadN, 0 + br i1 %icmp, label %while.body.273, label %while.exit.274 + +while.body.273: ; preds = %while.hdr.272 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %sub = sub i64 %loadN, 1 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %sub + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext = zext i8 %ig.val to i64 + %icmpN = icmp eq i64 %cmp.ext, 47 + br i1 %icmpN, label %if.then.275, label %if.merge.276 + +while.exit.274: ; preds = %while.hdr.272 + ret { ptr, i64 } { ptr @str.630, i64 0 } + +if.then.275: ; preds = %while.body.273 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 %subN) + ret { ptr, i64 } %call + +if.merge.276: ; preds = %while.body.273 + %loadN = load i64, ptr %allocaN, align 8 + %subN = sub i64 %loadN, 1 + store i64 %subN, ptr %allocaN, align 8 + br label %while.hdr.272 +} + +; Function Attrs: nounwind +declare i1 @compile_jni_main_sources(ptr, {}, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }) #0 + +; Function Attrs: nounwind +define internal { ptr, i64 } @discover_javac(ptr %0) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca [2 x { ptr, i64 }], align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %call = call { { ptr, i64 }, i1 } @env(ptr %0, { ptr, i64 } { ptr @str.631, i64 9 }) + %oh.has = extractvalue { { ptr, i64 }, i1 } %call, 1 + br i1 %oh.has, label %if.then.251, label %if.merge.252 + +if.then.251: ; preds = %entry + %ou.val = extractvalue { { ptr, i64 }, i1 } %call, 0 + store { ptr, i64 } %ou.val, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %igp.ptr = getelementptr { ptr, i64 }, ptr %allocaN, i64 0 + store { ptr, i64 } %load, ptr %igp.ptr, align 8 + %igp.ptr2 = getelementptr { ptr, i64 }, ptr %allocaN, i64 1 + store { ptr, i64 } { ptr @str.632, i64 9 }, ptr %igp.ptr2, align 8 + %igp.ptr4 = getelementptr { ptr, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr4, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 2, ptr %gepN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @path_join(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %callN = call i1 @exists(ptr %0, { ptr, i64 } %callN) + br i1 %callN, label %if.then.253, label %if.merge.254 + +if.merge.252: ; preds = %if.merge.254, %entry + %callN = call { { ptr, i64 }, i1 } @find_executable(ptr %0, { ptr, i64 } { ptr @str.633, i64 5 }) + %oh.has13 = extractvalue { { ptr, i64 }, i1 } %callN, 1 + br i1 %oh.has13, label %if.then.265, label %if.merge.266 + +if.then.253: ; preds = %if.then.251 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN + +if.merge.254: ; preds = %if.then.251 + br label %if.merge.252 + +if.then.265: ; preds = %if.merge.252 + %ou.val15 = extractvalue { { ptr, i64 }, i1 } %callN, 0 + store { ptr, i64 } %ou.val15, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN + +if.merge.266: ; preds = %if.merge.252 + ret { ptr, i64 } { ptr @str.634, i64 0 } +} + +; Function Attrs: nounwind +define internal i1 @zip_asset_dir(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2, { ptr, i64 } %3) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %3, ptr %allocaN, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %load) + %callN = call i1 @exists(ptr %0, { ptr, i64 } %call) + %lnot = xor i1 %callN, true + br i1 %lnot, label %if.then.326, label %if.merge.327 + +if.then.326: ; preds = %entry + ret i1 true + +if.merge.327: ; preds = %entry + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } { ptr @str.635, i64 18 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call i1 @create_dir_all(ptr %0, { ptr, i64 } %loadN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, i64 26 }, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %callN) + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @dir_part(ptr %0, { ptr, i64 } %loadN) + %len = extractvalue { ptr, i64 } %callN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.328, label %if.else.329 + +if.then.328: ; preds = %if.merge.327 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @dir_part(ptr %0, { ptr, i64 } %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.637, i64 19 }, { ptr, i64 } %callN) + br label %if.merge.330 + +if.else.329: ; preds = %if.merge.327 + br label %if.merge.330 + +if.merge.330: ; preds = %if.else.329, %if.then.328 + %bp = phi { ptr, i64 } [ %callN, %if.then.328 ], [ { ptr @str.638, i64 18 }, %if.else.329 ] + store { ptr, i64 } %bp, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %callN = call i1 @create_dir_all(ptr %0, { ptr, i64 } %callN) + %lnotN = xor i1 %callN, true + br i1 %lnotN, label %if.then.331, label %if.merge.332 + +if.then.331: ; preds = %if.merge.330 + call void @out(ptr %0, { ptr, i64 } { ptr @str.639, i64 42 }) + ret i1 false + +if.merge.332: ; preds = %if.merge.330 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.640, i64 7 }, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.641, i64 22 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.642, i64 6 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %callN) + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.333, label %if.else.334 + +if.then.333: ; preds = %if.merge.332 + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sg = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext = sext i32 %sg to i64 + %icmpN = icmp ne i64 %cmp.ext, 0 + br i1 %icmpN, label %if.then.336, label %if.merge.337 + +if.else.334: ; preds = %if.merge.332 + call void @out(ptr %0, { ptr, i64 } { ptr @str.643, i64 36 }) + ret i1 false + +if.merge.335: ; preds = %if.merge.337 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %lenN = extractvalue { ptr, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %lenN, 0 + br i1 %icmpN, label %if.then.338, label %if.else.339 + +if.then.336: ; preds = %if.then.333 + call void @out(ptr %0, { ptr, i64 } { ptr @str.644, i64 31 }) + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + call void @out(ptr %0, { ptr, i64 } %sgN) + ret i1 false + +if.merge.337: ; preds = %if.then.333 + br label %if.merge.335 + +if.then.338: ; preds = %if.merge.335 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 0 + %ig.val = load i8, ptr %ig.ptr, align 1 + %cmp.ext46 = zext i8 %ig.val to i64 + %icmpN = icmp eq i64 %cmp.ext46, 47 + br i1 %icmpN, label %if.then.341, label %if.else.342 + +if.else.339: ; preds = %if.merge.335 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + br label %if.merge.340 + +if.merge.340: ; preds = %if.merge.343, %if.else.339 + %bpN = phi { ptr, i64 } [ %loadN, %if.else.339 ], [ %bpN, %if.merge.343 ] + store { ptr, i64 } %bpN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 11 }, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.646, i64 3 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.647, i64 1 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call i1 @run_in_dir(ptr %0, { ptr, i64 } { ptr @str.648, i64 18 }, { ptr, i64 } %loadN) + %lnotN = xor i1 %callN, true + br i1 %lnotN, label %if.then.344, label %if.merge.345 + +if.then.341: ; preds = %if.then.338 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + br label %if.merge.343 + +if.else.342: ; preds = %if.then.338 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.649, i64 7 }, { ptr, i64 } %loadN) + br label %if.merge.343 + +if.merge.343: ; preds = %if.else.342, %if.then.341 + %bpN = phi { ptr, i64 } [ %loadN, %if.then.341 ], [ %callN, %if.else.342 ] + br label %if.merge.340 + +if.then.344: ; preds = %if.merge.340 + ret i1 false + +if.merge.345: ; preds = %if.merge.340 + ret i1 true +} + +; Function Attrs: nounwind +define internal i1 @ensure_debug_keystore(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %allocaN = alloca { i32, { ptr, i64 } }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %load = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %load) + %callN = call i1 @exists(ptr %0, { ptr, i64 } %call) + br i1 %callN, label %if.then.358, label %if.merge.359 + +if.then.358: ; preds = %entry + ret i1 true + +if.merge.359: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @dir_part(ptr %0, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.360, label %if.merge.361 + +if.then.360: ; preds = %if.merge.359 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %callN = call i1 @create_dir_all(ptr %0, { ptr, i64 } %callN) + br label %if.merge.361 + +if.merge.361: ; preds = %if.then.360, %if.merge.359 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.650, i64 31 }, { ptr, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.651, i64 148 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @str_to_cstr(ptr %0, { ptr, i64 } %loadN) + %callN = call { { i32, { ptr, i64 } }, i1 } @run(ptr %0, { ptr, i64 } %callN) + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 1 + br i1 %oh.has, label %if.then.362, label %if.merge.363 + +if.then.362: ; preds = %if.merge.361 + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %callN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sg = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %cmp.ext = sext i32 %sg to i64 + %icmpN = icmp ne i64 %cmp.ext, 0 + br i1 %icmpN, label %if.then.364, label %if.merge.365 + +if.merge.363: ; preds = %if.merge.361 + call void @out(ptr %0, { ptr, i64 } { ptr @str.652, i64 28 }) + ret i1 false + +if.then.364: ; preds = %if.then.362 + call void @out(ptr %0, { ptr, i64 } { ptr @str.653, i64 23 }) + %loadN = load { i32, { ptr, i64 } }, ptr %allocaN, align 8 + %sgN = extractvalue { i32, { ptr, i64 } } %loadN, 1 + call void @out(ptr %0, { ptr, i64 } %sgN) + ret i1 false + +if.merge.365: ; preds = %if.then.362 + ret i1 true +} + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare void @add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @jni_main_runtime_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @on_build(ptr) #0 + +; Function Attrs: nounwind +declare i1 @emit_and_link(ptr, {}) #0 + +; Function Attrs: nounwind +declare i1 @default_pipeline(ptr, {}) #0 + +; Function Attrs: nounwind +declare ptr @spaces.74(ptr, i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.75(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.76(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.77(ptr) #0 + +; Function Attrs: nounwind +declare void @run.78(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @env.79(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @find_executable.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @exit.81(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.82(ptr, i1, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @_NSGetArgv() #0 + +; Function Attrs: nounwind +declare ptr @_NSGetArgc() #0 + +; Function Attrs: nounwind +declare void @exit_ok(ptr) #0 + +; Function Attrs: nounwind +declare void @exit_usage(ptr) #0 + +; Function Attrs: nounwind +declare i64 @os_argc(ptr) #0 + +; Function Attrs: nounwind +declare ptr @os_args(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @Parsed.is_set(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Parsed.value_of(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @is_long_flag(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @parse.83(ptr sret({ { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, i32 }), ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.84(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.85(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.86(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.87(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.88(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.89(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.90(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @read_file.91(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.92(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.93(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.94(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.95(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.96(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.97(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.98(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.99(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.100(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.101(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.102(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @rotr(ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @big_sigma0(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @big_sigma1(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @small_sigma0(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @small_sigma1(ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Sha256.process_block(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Sha256.update(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [64 x i8] @Sha256.final(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i8 @nibble_hex(ptr, i64) #0 + +; Function Attrs: nounwind +declare void @init(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 + +; Function Attrs: nounwind +declare [64 x i8] @sha256_hex(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @sha256_file(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @log_emit(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.104(ptr, i1) #0 + +; Function Attrs: nounwind +declare i64 @now_secs.105(ptr) #0 + +; Function Attrs: nounwind +declare i64 @mono_ms.106(ptr) #0 + +; Function Attrs: nounwind +declare i32 @kqueue() #0 + +; Function Attrs: nounwind +declare i32 @kevent(i32, ptr, i32, ptr, i32, ptr) #0 + +; Function Attrs: nounwind +declare void @kev_change(ptr sret({ i64, i16, i16, i32, i64, i64 }), ptr, i32, i16, i16, i64) #0 + +; Function Attrs: nounwind +declare i1 @kq_apply(ptr, i32, ptr) #0 + +; Function Attrs: nounwind +declare i32 @kq_wait(ptr, i32, ptr, i32, i64) #0 + +; Function Attrs: nounwind +declare i64 @now_secs.107(ptr) #0 + +; Function Attrs: nounwind +define internal i64 @mono_ms.108(ptr %0) #0 { +entry: + %alloca = alloca { i64, i64 }, align 8 + store { i64, i64 } zeroinitializer, ptr %alloca, align 8 + %call = call i32 @clock_gettime(i32 6, ptr %alloca) + %load = load { i64, i64 }, ptr %alloca, align 8 + %sg = extractvalue { i64, i64 } %load, 0 + %mul = mul i64 %sg, 1000 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %sgN = extractvalue { i64, i64 } %loadN, 1 + %sdiv = sdiv i64 %sgN, 1000000 + %add = add i64 %mul, %sdiv + ret i64 %add +} + +; Function Attrs: nounwind +declare i64 @Loop.init(ptr) #0 + +; Function Attrs: nounwind +declare void @Loop.close(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Loop.add_read(ptr, ptr, i32, i64) #0 + +; Function Attrs: nounwind +declare void @Loop.del_read(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @Loop.add_write(ptr, ptr, i32, i64) #0 + +; Function Attrs: nounwind +declare void @Loop.del_write(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @Loop.add_wake(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Loop.wake(ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Loop.wait(ptr, ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @deadline_in(ptr, i64) #0 + +; Function Attrs: nounwind +declare i1 @expired(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @remaining_ms(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @find_header(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @ascii_ieq(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @reason_for(ptr, i64) #0 + +; Function Attrs: nounwind +declare void @run_handler_job(ptr, i64) #0 + +; Function Attrs: nounwind +declare [2 x i64] @serialize_bytes(ptr, ptr, i1, ptr) #0 + +; Function Attrs: nounwind +declare void @Server.init(ptr sret({ { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr }, i32 }), ptr, ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Server.close(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @Server.free_slot(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Server.conn_close(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @Server.tick(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Server.run(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Server.accept_ready(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @Server.grow_read_buf(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare void @Server.read_more(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Server.serve_buffered(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare i1 @Server.try_serve_one(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Server.serialize_response(ptr, ptr, i64, ptr, i1) #0 + +; Function Attrs: nounwind +declare void @Server.drain_completions(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Server.write_more(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Server.respond_error_close(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @pthread_create(ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_join(i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_detach(i64) #0 + +; Function Attrs: nounwind +declare i32 @pthread_mutex_init(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_mutex_lock(ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_mutex_unlock(ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_mutex_destroy(ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_cond_init(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_cond_wait(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_cond_signal(ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_cond_broadcast(ptr) #0 + +; Function Attrs: nounwind +declare i32 @pthread_cond_destroy(ptr) #0 + +; Function Attrs: nounwind +declare i1 @Mutex.setup(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Mutex.lock(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Mutex.unlock(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Mutex.destroy(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @Cond.setup(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Cond.wait(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Cond.signal(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Cond.broadcast(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Cond.destroy(ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Thread.spawn(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Thread.join(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Thread.detach(ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Pool.create(ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i1 @Pool.submit(ptr, ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Pool.shutdown(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @pool_worker(ptr) #0 + +; Function Attrs: nounwind +declare ptr @mmap(ptr, i64, i32, i32, i32, i64) #0 + +; Function Attrs: nounwind +declare i32 @mprotect(ptr, i64, i32) #0 + +; Function Attrs: naked noinline nounwind +define internal void @swap_context(ptr %0, ptr %1) #1 { +entry: + call void asm sideeffect " stp x19, x20, [x0, #0]\0A stp x21, x22, [x0, #16]\0A stp x23, x24, [x0, #32]\0A stp x25, x26, [x0, #48]\0A stp x27, x28, [x0, #64]\0A stp x29, x30, [x0, #80]\0A mov x9, sp\0A str x9, [x0, #96]\0A ldp x19, x20, [x1, #0]\0A ldp x21, x22, [x1, #16]\0A ldp x23, x24, [x1, #32]\0A ldp x25, x26, [x1, #48]\0A ldp x27, x28, [x1, #64]\0A ldp x29, x30, [x1, #80]\0A ldr x9, [x1, #96]\0A mov sp, x9\0A ret\0A", ""() + unreachable +} + +; Function Attrs: nounwind +declare void @fib_tramp() #0 + +; Function Attrs: nounwind +define internal i64 @sum_to(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %icmp = icmp eq i64 %load, 0 + br i1 %icmp, label %if.then.0, label %if.merge.1 + +if.then.0: ; preds = %entry + ret i64 0 + +if.merge.1: ; preds = %entry + %loadN = load i64, ptr %alloca, align 8 + %loadN = load i64, ptr %alloca, align 8 + %sub = sub i64 %loadN, 1 + %call = call i64 @sum_to(ptr %0, i64 %sub) + %add = add i64 %loadN, %call + ret i64 %add +} + +; Function Attrs: nounwind +define void @fib_body(ptr %0) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %0, ptr %alloca, align 8 + %call = call i64 @sum_to(ptr @__sx_default_context, i64 200) + %load = load ptr, ptr %alloca, align 8 + %gep = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %load, i32 0, i32 2 + store i64 %call, ptr %gep, align 8 + %loadN = load ptr, ptr %alloca, align 8 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %loadN, i32 0, i32 0 + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { { [13 x i64] }, ptr, i64, i64 }, ptr %loadN, align 8 + %sg = extractvalue { { [13 x i64] }, ptr, i64, i64 } %loadN, 1 + call void @swap_context(ptr %gepN, ptr %sg) + ret void +} + +; Function Attrs: nounwind +define internal i64 @guarded_stack(ptr %0, ptr %1, i64 %2) #0 { +entry: + %alloca = alloca ptr, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca i64, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %2, ptr %allocaN, align 8 + %allocaN = alloca ptr, align 8 + %load = load i64, ptr %allocaN, align 8 + %add = add i64 16384, %load + %call = call ptr @mmap(ptr null, i64 %add, i32 3, i32 4098, i32 -1, i64 0) + store ptr %call, ptr %allocaN, align 8 + %loadN = load ptr, ptr %allocaN, align 8 + %icmp = icmp eq ptr %loadN, null + br i1 %icmp, label %if.then.2, label %if.merge.3 + +if.then.2: ; preds = %entry + %loadN = load ptr, ptr %alloca, align 8 + %gep = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %loadN, i32 0, i32 3 + store i64 0, ptr %gep, align 8 + ret i64 0 + +if.merge.3: ; preds = %entry + %loadN = load ptr, ptr %alloca, align 8 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %loadN, i32 0, i32 3 + store i64 0, ptr %gepN, align 8 + %loadN = load ptr, ptr %allocaN, align 8 + %callN = call i32 @mprotect(ptr %loadN, i64 16384, i32 0) + %cmp.ext = sext i32 %callN to i64 + %icmpN = icmp eq i64 %cmp.ext, 0 + br i1 %icmpN, label %if.then.4, label %if.merge.5 + +if.then.4: ; preds = %if.merge.3 + %loadN = load ptr, ptr %alloca, align 8 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %loadN, i32 0, i32 3 + store i64 1, ptr %gepN, align 8 + br label %if.merge.5 + +if.merge.5: ; preds = %if.then.4, %if.merge.3 + %loadN = load ptr, ptr %allocaN, align 8 + %pti = ptrtoint ptr %loadN to i64 + %addN = add i64 %pti, 16384 + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %addN = add i64 %loadN, %loadN + store i64 %addN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %urem = urem i64 %loadN, 16 + %sub = sub i64 %loadN, %urem + ret i64 %sub +} + +; Function Attrs: nounwind +define i32 @main() #0 { +entry: + %alloca = alloca { [13 x i64] }, align 8 + store { [13 x i64] } undef, ptr %alloca, align 8 + %allocaN = alloca { { [13 x i64] }, ptr, i64, i64 }, align 8 + store { { [13 x i64] }, ptr, i64, i64 } undef, ptr %allocaN, align 8 + %gep = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, i32 0, i32 1 + store ptr %alloca, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, i32 0, i32 2 + store i64 -1, ptr %gepN, align 8 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, i32 0, i32 3 + store i64 0, ptr %gepN, align 8 + %call = call i64 @guarded_stack(ptr @__sx_default_context, ptr %allocaN, i64 131072) + %allocaN = alloca i64, align 8 + store i64 %call, ptr %allocaN, align 8 + %pti = ptrtoint ptr %allocaN to i64 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, i32 0, i32 0 + %gepN = getelementptr inbounds nuw { [13 x i64] }, ptr %gepN, i32 0, i32 0 + %igp.ptr = getelementptr i64, ptr %gepN, i64 0 + store i64 %pti, ptr %igp.ptr, align 8 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, i32 0, i32 0 + %gepN = getelementptr inbounds nuw { [13 x i64] }, ptr %gepN, i32 0, i32 0 + %igp.ptr9 = getelementptr i64, ptr %gepN, i64 10 + store i64 0, ptr %igp.ptr9, align 8 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, i32 0, i32 0 + %gepN = getelementptr inbounds nuw { [13 x i64] }, ptr %gepN, i32 0, i32 0 + %igp.ptr12 = getelementptr i64, ptr %gepN, i64 11 + store ptr @fib_tramp, ptr %igp.ptr12, align 8 + %load = load i64, ptr %allocaN, align 8 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, i32 0, i32 0 + %gepN = getelementptr inbounds nuw { [13 x i64] }, ptr %gepN, i32 0, i32 0 + %igp.ptr15 = getelementptr i64, ptr %gepN, i64 12 + store i64 %load, ptr %igp.ptr15, align 8 + %gepN = getelementptr inbounds nuw { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, i32 0, i32 0 + call void @swap_context(ptr %alloca, ptr %gepN) + %loadN = load { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, align 8 + %sg = extractvalue { { [13 x i64] }, ptr, i64, i64 } %loadN, 3 + call void @print__ct_sbef99de9405780b8__pack_i64(ptr @__sx_default_context, i64 %sg) + %loadN = load { { [13 x i64] }, ptr, i64, i64 }, ptr %allocaN, align 8 + %sgN = extractvalue { { [13 x i64] }, ptr, i64, i64 } %loadN, 2 + call void @print__ct_s95dfd2a009f17129__pack_i64(ptr @__sx_default_context, i64 %sgN) + ret i32 0 +} + +; Function Attrs: nounwind +define internal ptr @__thunk_CAllocator_Allocator_alloc_bytes(ptr %0, ptr %1, i64 %2) #0 { +entry: + %call = call ptr @CAllocator.alloc_bytes(ptr %0, ptr %1, i64 %2) + ret ptr %call +} + +; Function Attrs: nounwind +define internal void @__thunk_CAllocator_Allocator_dealloc_bytes(ptr %0, ptr %1, ptr %2) #0 { +entry: + call void @CAllocator.dealloc_bytes(ptr %0, ptr %1, ptr %2) + ret void +} + +; Function Attrs: nounwind +define internal ptr @__thunk_CBlockingIo_Io_spawn_raw(ptr %0, ptr %1, ptr %2, ptr %3, { i64 } %4) #0 { +entry: + %call = call ptr @CBlockingIo.spawn_raw(ptr %0, ptr %1, ptr %2, ptr %3, { i64 } %4) + ret ptr %call +} + +; Function Attrs: nounwind +define internal i32 @__thunk_CBlockingIo_Io_suspend_raw(ptr %0, ptr %1, { ptr } %2) #0 { +entry: + %call = call i32 @CBlockingIo.suspend_raw(ptr %0, ptr %1, { ptr } %2) + ret i32 %call +} + +; Function Attrs: nounwind +define internal void @__thunk_CBlockingIo_Io_ready(ptr %0, ptr %1, { ptr } %2) #0 { +entry: + call void @CBlockingIo.ready(ptr %0, ptr %1, { ptr } %2) + ret void +} + +; Function Attrs: nounwind +define internal i64 @__thunk_CBlockingIo_Io_poll(ptr %0, ptr %1, i64 %2) #0 { +entry: + %call = call i64 @CBlockingIo.poll(ptr %0, ptr %1, i64 %2) + ret i64 %call +} + +; Function Attrs: nounwind +define internal i64 @__thunk_CBlockingIo_Io_now_ms(ptr %0, ptr %1) #0 { +entry: + %call = call i64 @CBlockingIo.now_ms(ptr %0, ptr %1) + ret i64 %call +} + +; Function Attrs: nounwind +define internal ptr @__thunk_CBlockingIo_Io_arm_timer(ptr %0, ptr %1, i64 %2, { ptr } %3) #0 { +entry: + %call = call ptr @CBlockingIo.arm_timer(ptr %0, ptr %1, i64 %2, { ptr } %3) + ret ptr %call +} + +; Function Attrs: nounwind +define internal void @print__ct_sbef99de9405780b8__pack_i64(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.654, i64 16 }, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %1, ptr %allocaN, align 8 + %allocaN = alloca [1 x { i64, i64 }], align 8 + %load = load i64, ptr %allocaN, align 8 + %ba.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %load, 1 + %igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + store { i64, i64 } %ba.val, ptr %igp.ptr, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %igp.ptr4 = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr4, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 1, ptr %gepN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.655, i64 0 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 13) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %call) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ba.val12 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %loadN, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val12) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 15, i64 1) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + call void @out(ptr %0, { ptr, i64 } %loadN) + ret void +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @__insert_0(ptr %0) #0 { +entry: + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.656, i64 16 }) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal void @print__ct_s95dfd2a009f17129__pack_i64(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.657, i64 8 }, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %1, ptr %allocaN, align 8 + %allocaN = alloca [1 x { i64, i64 }], align 8 + %load = load i64, ptr %allocaN, align 8 + %ba.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %load, 1 + %igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + store { i64, i64 } %ba.val, ptr %igp.ptr, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %igp.ptr4 = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr4, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 1, ptr %gepN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.658, i64 0 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 5) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %call) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ba.val12 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %loadN, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val12) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 7, i64 1) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + call void @out(ptr %0, { ptr, i64 } %loadN) + ret void +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @__insert_1(ptr %0) #0 { +entry: + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.659, i64 8 }) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal void @List__string.append(ptr %0, ptr %1, { ptr, i64 } %2, { ptr, ptr, ptr } %3) #0 { +entry: + %alloca = alloca ptr, align 8 + %allocaN = alloca i64, align 8 + %allocaN = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %allocaN = alloca { ptr, ptr, ptr }, align 8 + store { ptr, ptr, ptr } %3, ptr %allocaN, align 8 + %load = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %load, align 8 + %sg = extractvalue { ptr, i64, i64 } %loadN, 1 + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %loadN, align 8 + %sgN = extractvalue { ptr, i64, i64 } %loadN, 2 + %icmp = icmp sge i64 %sg, %sgN + br i1 %icmp, label %if.then.45, label %if.merge.46 + +if.then.45: ; preds = %entry + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %loadN, align 8 + %sgN = extractvalue { ptr, i64, i64 } %loadN, 2 + %icmpN = icmp eq i64 %sgN, 0 + br i1 %icmpN, label %if.then.47, label %if.else.48 + +if.merge.46: ; preds = %if.merge.51, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %loadN, align 8 + %sgN = extractvalue { ptr, i64, i64 } %loadN, 1 + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %loadN, align 8 + %sgN = extractvalue { ptr, i64, i64 } %loadN, 0 + %igp.ptr = getelementptr { ptr, i64 }, ptr %sgN, i64 %sgN + store { ptr, i64 } %loadN, ptr %igp.ptr, align 8 + %loadN = load ptr, ptr %alloca, align 8 + %gep = getelementptr inbounds nuw { ptr, i64, i64 }, ptr %loadN, i32 0, i32 1 + %loadN = load i64, ptr %gep, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %gep, align 8 + ret void + +if.then.47: ; preds = %if.then.45 + br label %if.merge.49 + +if.else.48: ; preds = %if.then.45 + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %loadN, align 8 + %sgN = extractvalue { ptr, i64, i64 } %loadN, 2 + %mul = mul i64 %sgN, 2 + br label %if.merge.49 + +if.merge.49: ; preds = %if.else.48, %if.then.47 + %bp = phi i64 [ 4, %if.then.47 ], [ %mul, %if.else.48 ] + store i64 %bp, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %mulN = mul i64 %loadN, 16 + %loadN = load { ptr, ptr, ptr }, ptr %allocaN, align 8 + %sgN = extractvalue { ptr, ptr, ptr } %loadN, 0 + %sgN = extractvalue { ptr, ptr, ptr } %loadN, 1 + %icall = call ptr %sgN(ptr %0, ptr %sgN, i64 %mulN) + store ptr %icall, ptr %allocaN, align 8 + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %loadN, align 8 + %sgN = extractvalue { ptr, i64, i64 } %loadN, 1 + %icmpN = icmp sgt i64 %sgN, 0 + br i1 %icmpN, label %if.then.50, label %if.merge.51 + +if.then.50: ; preds = %if.merge.49 + %loadN = load ptr, ptr %allocaN, align 8 + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %loadN, align 8 + %sgN = extractvalue { ptr, i64, i64 } %loadN, 0 + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %loadN, align 8 + %sgN = extractvalue { ptr, i64, i64 } %loadN, 1 + %mulN = mul i64 %sgN, 16 + %call = call ptr @memcpy(ptr %loadN, ptr %sgN, i64 %mulN) + %loadN = load ptr, ptr %alloca, align 8 + %loadN = load { ptr, i64, i64 }, ptr %loadN, align 8 + %sgN = extractvalue { ptr, i64, i64 } %loadN, 0 + %loadN = load { ptr, ptr, ptr }, ptr %allocaN, align 8 + %sgN = extractvalue { ptr, ptr, ptr } %loadN, 0 + %sgN = extractvalue { ptr, ptr, ptr } %loadN, 2 + call void %sgN(ptr %0, ptr %sgN, ptr %sgN) + br label %if.merge.51 + +if.merge.51: ; preds = %if.then.50, %if.merge.49 + %loadN = load ptr, ptr %allocaN, align 8 + %loadN = load ptr, ptr %alloca, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64, i64 }, ptr %loadN, i32 0, i32 0 + store ptr %loadN, ptr %gepN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %loadN = load ptr, ptr %alloca, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64, i64 }, ptr %loadN, i32 0, i32 2 + store i64 %loadN, ptr %gepN, align 8 + br label %if.merge.46 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @format__ct_sac8bee93bac43fa__pack_string_string_string_string(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2, { ptr, i64 } %3, { ptr, i64 } %4) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.660, i64 848 }, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %3, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %4, ptr %allocaN, align 8 + %allocaN = alloca [4 x { i64, i64 }], align 8 + %load = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %load, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + %igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + store { i64, i64 } %ba.val, ptr %igp.ptr, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp7 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp7, align 8 + %ba.p2i8 = ptrtoint ptr %ba.tmp7 to i64 + %ba.val9 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i8, 1 + %igp.ptr10 = getelementptr { i64, i64 }, ptr %allocaN, i64 1 + store { i64, i64 } %ba.val9, ptr %igp.ptr10, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp12 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp12, align 8 + %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 + %ba.val14 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i13, 1 + %igp.ptr15 = getelementptr { i64, i64 }, ptr %allocaN, i64 2 + store { i64, i64 } %ba.val14, ptr %igp.ptr15, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp17 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp17, align 8 + %ba.p2i18 = ptrtoint ptr %ba.tmp17 to i64 + %ba.val19 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i18, 1 + %igp.ptr20 = getelementptr { i64, i64 }, ptr %allocaN, i64 3 + store { i64, i64 } %ba.val19, ptr %igp.ptr20, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %igp.ptr22 = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr22, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 4, ptr %gepN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.661, i64 0 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 121) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %call) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp30 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp30, align 8 + %ba.p2i31 = ptrtoint ptr %ba.tmp30 to i64 + %ba.val32 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i31, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val32) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 123, i64 167) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp41 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp41, align 8 + %ba.p2i42 = ptrtoint ptr %ba.tmp41 to i64 + %ba.val43 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i42, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val43) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 292, i64 70) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp52 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp52, align 8 + %ba.p2i53 = ptrtoint ptr %ba.tmp52 to i64 + %ba.val54 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i53, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val54) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 364, i64 65) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp63 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp63, align 8 + %ba.p2i64 = ptrtoint ptr %ba.tmp63 to i64 + %ba.val65 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i64, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val65) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 431, i64 417) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @__insert_2(ptr %0) #0 { +entry: + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.662, i64 848 }) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @format__ct_sf986337c7a126d2b__pack_string_string_string_string(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2, { ptr, i64 } %3, { ptr, i64 } %4) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.663, i64 868 }, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %3, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %4, ptr %allocaN, align 8 + %allocaN = alloca [4 x { i64, i64 }], align 8 + %load = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %load, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + %igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + store { i64, i64 } %ba.val, ptr %igp.ptr, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp7 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp7, align 8 + %ba.p2i8 = ptrtoint ptr %ba.tmp7 to i64 + %ba.val9 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i8, 1 + %igp.ptr10 = getelementptr { i64, i64 }, ptr %allocaN, i64 1 + store { i64, i64 } %ba.val9, ptr %igp.ptr10, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp12 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp12, align 8 + %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 + %ba.val14 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i13, 1 + %igp.ptr15 = getelementptr { i64, i64 }, ptr %allocaN, i64 2 + store { i64, i64 } %ba.val14, ptr %igp.ptr15, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp17 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp17, align 8 + %ba.p2i18 = ptrtoint ptr %ba.tmp17 to i64 + %ba.val19 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i18, 1 + %igp.ptr20 = getelementptr { i64, i64 }, ptr %allocaN, i64 3 + store { i64, i64 } %ba.val19, ptr %igp.ptr20, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %igp.ptr22 = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr22, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 4, ptr %gepN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.664, i64 0 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 121) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %call) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp30 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp30, align 8 + %ba.p2i31 = ptrtoint ptr %ba.tmp30 to i64 + %ba.val32 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i31, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val32) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 123, i64 167) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp41 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp41, align 8 + %ba.p2i42 = ptrtoint ptr %ba.tmp41 to i64 + %ba.val43 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i42, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val43) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 292, i64 162) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp52 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp52, align 8 + %ba.p2i53 = ptrtoint ptr %ba.tmp52 to i64 + %ba.val54 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i53, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val54) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 456, i64 151) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp63 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp63, align 8 + %ba.p2i64 = ptrtoint ptr %ba.tmp63 to i64 + %ba.val65 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i64, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val65) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 609, i64 259) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @__insert_3(ptr %0) #0 { +entry: + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.665, i64 868 }) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @format__ct_s27eb77fba02bd25d__pack_string_string_string_string_string(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2, { ptr, i64 } %3, { ptr, i64 } %4, { ptr, i64 } %5) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.666, i64 1400 }, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %3, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %4, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %5, ptr %allocaN, align 8 + %allocaN = alloca [5 x { i64, i64 }], align 8 + %load = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %load, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + %igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + store { i64, i64 } %ba.val, ptr %igp.ptr, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp8 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp8, align 8 + %ba.p2i9 = ptrtoint ptr %ba.tmp8 to i64 + %ba.val10 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i9, 1 + %igp.ptr11 = getelementptr { i64, i64 }, ptr %allocaN, i64 1 + store { i64, i64 } %ba.val10, ptr %igp.ptr11, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp13 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp13, align 8 + %ba.p2i14 = ptrtoint ptr %ba.tmp13 to i64 + %ba.val15 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i14, 1 + %igp.ptr16 = getelementptr { i64, i64 }, ptr %allocaN, i64 2 + store { i64, i64 } %ba.val15, ptr %igp.ptr16, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp18 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp18, align 8 + %ba.p2i19 = ptrtoint ptr %ba.tmp18 to i64 + %ba.val20 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i19, 1 + %igp.ptr21 = getelementptr { i64, i64 }, ptr %allocaN, i64 3 + store { i64, i64 } %ba.val20, ptr %igp.ptr21, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp23 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp23, align 8 + %ba.p2i24 = ptrtoint ptr %ba.tmp23 to i64 + %ba.val25 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i24, 1 + %igp.ptr26 = getelementptr { i64, i64 }, ptr %allocaN, i64 4 + store { i64, i64 } %ba.val25, ptr %igp.ptr26, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %igp.ptr28 = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr28, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 5, ptr %gepN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.667, i64 0 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 217) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %call) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp36 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp36, align 8 + %ba.p2i37 = ptrtoint ptr %ba.tmp36 to i64 + %ba.val38 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i37, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val38) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 219, i64 50) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp47 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp47, align 8 + %ba.p2i48 = ptrtoint ptr %ba.tmp47 to i64 + %ba.val49 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i48, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val49) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 271, i64 56) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp58 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp58, align 8 + %ba.p2i59 = ptrtoint ptr %ba.tmp58 to i64 + %ba.val60 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i59, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val60) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 329, i64 236) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp69 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp69, align 8 + %ba.p2i70 = ptrtoint ptr %ba.tmp69 to i64 + %ba.val71 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i70, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val71) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 567, i64 804) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp80 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp80, align 8 + %ba.p2i81 = ptrtoint ptr %ba.tmp80 to i64 + %ba.val82 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i81, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val82) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 1373, i64 27) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @__insert_4(ptr %0) #0 { +entry: + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.668, i64 1400 }) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @format__ct_s7dee655660eb2808__pack_string_string_string(ptr %0, { ptr, i64 } %1, { ptr, i64 } %2, { ptr, i64 } %3) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.669, i64 538 }, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %2, ptr %allocaN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %3, ptr %allocaN, align 8 + %allocaN = alloca [3 x { i64, i64 }], align 8 + %load = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %load, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + %igp.ptr = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + store { i64, i64 } %ba.val, ptr %igp.ptr, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp6 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp6, align 8 + %ba.p2i7 = ptrtoint ptr %ba.tmp6 to i64 + %ba.val8 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i7, 1 + %igp.ptr9 = getelementptr { i64, i64 }, ptr %allocaN, i64 1 + store { i64, i64 } %ba.val8, ptr %igp.ptr9, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp11 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp11, align 8 + %ba.p2i12 = ptrtoint ptr %ba.tmp11 to i64 + %ba.val13 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i12, 1 + %igp.ptr14 = getelementptr { i64, i64 }, ptr %allocaN, i64 2 + store { i64, i64 } %ba.val13, ptr %igp.ptr14, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + %igp.ptr16 = getelementptr { i64, i64 }, ptr %allocaN, i64 0 + %gep = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 0 + store ptr %igp.ptr16, ptr %gep, align 8 + %gepN = getelementptr inbounds nuw { ptr, i64 }, ptr %allocaN, i32 0, i32 1 + store i64 3, ptr %gepN, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.670, i64 0 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %call = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 0, i64 217) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %call) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp24 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp24, align 8 + %ba.p2i25 = ptrtoint ptr %ba.tmp24 to i64 + %ba.val26 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i25, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val26) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 219, i64 50) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp35 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp35, align 8 + %ba.p2i36 = ptrtoint ptr %ba.tmp35 to i64 + %ba.val37 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i36, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val37) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 271, i64 56) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %ba.tmp46 = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %loadN, ptr %ba.tmp46, align 8 + %ba.p2i47 = ptrtoint ptr %ba.tmp46 to i64 + %ba.val48 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i47, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val48) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 329, i64 209) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @__insert_5(ptr %0) #0 { +entry: + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.671, i64 538 }) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 } }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + %ba.tmp26 = alloca { ptr, i64 }, align 8 + store { { ptr, i64 }, i32, i32, { ptr, i64 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.672, i64 15 }, { ptr, i64 } { ptr @str.673, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.620 + +while.hdr.620: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.621, label %while.exit.622 + +while.body.621: ; preds = %while.hdr.620 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.623, label %if.merge.624 + +while.exit.622: ; preds = %while.hdr.620 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.674, i64 1 }) + ret { ptr, i64 } %callN + +if.then.623: ; preds = %while.body.621 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.675, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.624 + +if.merge.624: ; preds = %if.then.623, %while.body.621 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.679, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case24 + ] + +fv.merge: ; preds = %fv.default, %fv.case24, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val23, %fv.case20 ], [ %fv.val28, %fv.case24 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.620 + +fv.default: ; preds = %if.merge.624 + br label %fv.merge + +fv.case: ; preds = %if.merge.624 + %fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 0 + store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.624 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 + %iN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.624 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 + %iN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.624 + %fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 3 + store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8 + %ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64 + %fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %1) #0 { +entry: + %alloca = alloca { ptr, ptr, ptr }, align 8 + store { ptr, ptr, ptr } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.680, i64 9 }, { ptr, i64 } { ptr @str.681, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.625 + +while.hdr.625: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.626, label %while.exit.627 + +while.body.626: ; preds = %while.hdr.625 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.628, label %if.merge.629 + +while.exit.627: ; preds = %while.hdr.625 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.682, i64 1 }) + ret { ptr, i64 } %callN + +if.then.628: ; preds = %while.body.626 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.683, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.629 + +if.merge.629: ; preds = %if.then.628, %while.body.626 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.687, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.688, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, ptr, ptr }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case21 + ] + +fv.merge: ; preds = %fv.default, %fv.case21, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val20, %fv.case17 ], [ %fv.val24, %fv.case21 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.625 + +fv.default: ; preds = %if.merge.629 + br label %fv.merge + +fv.case: ; preds = %if.merge.629 + %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.629 + %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 + %pNi19 = ptrtoint ptr %fv.field18 to i64 + %fv.val20 = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi19, 1 + br label %fv.merge + +fv.case21: ; preds = %if.merge.629 + %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 + %pNi23 = ptrtoint ptr %fv.field22 to i64 + %fv.val24 = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi23, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__SpawnOpts(ptr %0, { i64 } %1) #0 { +entry: + %alloca = alloca { i64 }, align 8 + store { i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.689, i64 9 }, { ptr, i64 } { ptr @str.690, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.630 + +while.hdr.630: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.631, label %while.exit.632 + +while.body.631: ; preds = %while.hdr.630 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.633, label %if.merge.634 + +while.exit.632: ; preds = %while.hdr.630 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.691, i64 1 }) + ret { ptr, i64 } %callN + +if.then.633: ; preds = %while.body.631 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.692, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.634 + +if.merge.634: ; preds = %if.then.633, %while.body.631 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.694, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.695, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + ] + +fv.merge: ; preds = %fv.default, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.630 + +fv.default: ; preds = %if.merge.634 + br label %fv.merge + +fv.case: ; preds = %if.merge.634 + %fv.field = extractvalue { i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 104, i64 undef }, i64 %fv.field, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__ParkToken(ptr %0, { ptr } %1) #0 { +entry: + %alloca = alloca { ptr }, align 8 + store { ptr } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.696, i64 9 }, { ptr, i64 } { ptr @str.697, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.635 + +while.hdr.635: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.636, label %while.exit.637 + +while.body.636: ; preds = %while.hdr.635 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.638, label %if.merge.639 + +while.exit.637: ; preds = %while.hdr.635 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.698, i64 1 }) + ret { ptr, i64 } %callN + +if.then.638: ; preds = %while.body.636 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.699, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.639 + +if.merge.639: ; preds = %if.then.638, %while.body.636 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.701, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.702, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + ] + +fv.merge: ; preds = %fv.default, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.635 + +fv.default: ; preds = %if.merge.639 + br label %fv.merge + +fv.case: ; preds = %if.merge.639 + %fv.field = extractvalue { ptr } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Io(ptr %0, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %1) #0 { +entry: + %alloca = alloca { ptr, ptr, ptr, ptr, ptr, ptr, ptr }, align 8 + store { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.703, i64 2 }, { ptr, i64 } { ptr @str.704, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.640 + +while.hdr.640: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.641, label %while.exit.642 + +while.body.641: ; preds = %while.hdr.640 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.643, label %if.merge.644 + +while.exit.642: ; preds = %while.hdr.640 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.705, i64 1 }) + ret { ptr, i64 } %callN + +if.then.643: ; preds = %while.body.641 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.706, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.644 + +if.merge.644: ; preds = %if.then.643, %while.body.641 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [7 x { ptr, i64 }], ptr @field_names.714, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.715, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, ptr, ptr, ptr, ptr, ptr, ptr }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case21 + i64 3, label %fv.case25 + i64 4, label %fv.case29 + i64 5, label %fv.case33 + i64 6, label %fv.case37 + ] + +fv.merge: ; preds = %fv.default, %fv.case37, %fv.case33, %fv.case29, %fv.case25, %fv.case21, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val20, %fv.case17 ], [ %fv.val24, %fv.case21 ], [ %fv.val28, %fv.case25 ], [ %fv.val32, %fv.case29 ], [ %fv.val36, %fv.case33 ], [ %fv.val40, %fv.case37 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.640 + +fv.default: ; preds = %if.merge.644 + br label %fv.merge + +fv.case: ; preds = %if.merge.644 + %fv.field = extractvalue { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.644 + %fv.field18 = extractvalue { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %loadN, 1 + %pNi19 = ptrtoint ptr %fv.field18 to i64 + %fv.val20 = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi19, 1 + br label %fv.merge + +fv.case21: ; preds = %if.merge.644 + %fv.field22 = extractvalue { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %loadN, 2 + %pNi23 = ptrtoint ptr %fv.field22 to i64 + %fv.val24 = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi23, 1 + br label %fv.merge + +fv.case25: ; preds = %if.merge.644 + %fv.field26 = extractvalue { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %loadN, 3 + %pNi27 = ptrtoint ptr %fv.field26 to i64 + %fv.val28 = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi27, 1 + br label %fv.merge + +fv.case29: ; preds = %if.merge.644 + %fv.field30 = extractvalue { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %loadN, 4 + %pNi31 = ptrtoint ptr %fv.field30 to i64 + %fv.val32 = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.644 + %fv.field34 = extractvalue { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %loadN, 5 + %pNi35 = ptrtoint ptr %fv.field34 to i64 + %fv.val36 = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi35, 1 + br label %fv.merge + +fv.case37: ; preds = %if.merge.644 + %fv.field38 = extractvalue { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %loadN, 6 + %pNi39 = ptrtoint ptr %fv.field38 to i64 + %fv.val40 = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi39, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } } %1) #0 { +entry: + %alloca = alloca { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } }, align 8 + %ba.tmp = alloca { ptr, ptr, ptr }, align 8 + %ba.tmp22 = alloca { ptr, ptr, ptr, ptr, ptr, ptr, ptr }, align 8 + store { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 7 }, { ptr, i64 } { ptr @str.717, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.645 + +while.hdr.645: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.646, label %while.exit.647 + +while.body.646: ; preds = %while.hdr.645 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.648, label %if.merge.649 + +while.exit.647: ; preds = %while.hdr.645 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.718, i64 1 }) + ret { ptr, i64 } %callN + +if.then.648: ; preds = %while.body.646 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.719, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.649 + +if.merge.649: ; preds = %if.then.648, %while.body.646 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.723, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.724, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + ] + +fv.merge: ; preds = %fv.default, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val24, %fv.case20 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.645 + +fv.default: ; preds = %if.merge.649 + br label %fv.merge + +fv.case: ; preds = %if.merge.649 + %fv.field = extractvalue { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } } %loadN, 0 + store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 103, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.649 + %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } } %loadN, 1 + %pNi = ptrtoint ptr %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 101, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.649 + %fv.field21 = extractvalue { { ptr, ptr, ptr }, ptr, { ptr, ptr, ptr, ptr, ptr, ptr, ptr } } %loadN, 2 + store { ptr, ptr, ptr, ptr, ptr, ptr, ptr } %fv.field21, ptr %ba.tmp22, align 8 + %ba.p2i23 = ptrtoint ptr %ba.tmp22 to i64 + %fv.val24 = insertvalue { i64, i64 } { i64 107, i64 undef }, i64 %ba.p2i23, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Timespec(ptr %0, { i64, i64 } %1) #0 { +entry: + %alloca = alloca { i64, i64 }, align 8 + store { i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.725, i64 8 }, { ptr, i64 } { ptr @str.726, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.650 + +while.hdr.650: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.651, label %while.exit.652 + +while.body.651: ; preds = %while.hdr.650 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.653, label %if.merge.654 + +while.exit.652: ; preds = %while.hdr.650 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.727, i64 1 }) + ret { ptr, i64 } %callN + +if.then.653: ; preds = %while.body.651 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.728, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.654 + +if.merge.654: ; preds = %if.then.653, %while.body.651 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.731, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.732, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.650 + +fv.default: ; preds = %if.merge.654 + br label %fv.merge + +fv.case: ; preds = %if.merge.654 + %fv.field = extractvalue { i64, i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.654 + %fv.field18 = extractvalue { i64, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__CBlockingIo(ptr %0, {} %1) #0 { +entry: + %alloca = alloca {}, align 8 + store {} %1, ptr %alloca, align 1 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.733, i64 11 }, { ptr, i64 } { ptr @str.734, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.655 + +while.hdr.655: ; preds = %if.merge.659, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.656, label %while.exit.657 + +while.body.656: ; preds = %while.hdr.655 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.658, label %if.merge.659 + +while.exit.657: ; preds = %while.hdr.655 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.735, i64 1 }) + ret { ptr, i64 } %callN + +if.then.658: ; preds = %while.body.656 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.736, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.659 + +if.merge.659: ; preds = %if.then.658, %while.body.656 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.737, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.738, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load {}, ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } { i64 17, i64 0 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.655 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %1) #0 { +entry: + %alloca = alloca {}, align 8 + store {} %1, ptr %alloca, align 1 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.739, i64 10 }, { ptr, i64 } { ptr @str.740, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.660 + +while.hdr.660: ; preds = %if.merge.664, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.661, label %while.exit.662 + +while.body.661: ; preds = %while.hdr.660 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.663, label %if.merge.664 + +while.exit.662: ; preds = %while.hdr.660 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.741, i64 1 }) + ret { ptr, i64 } %callN + +if.then.663: ; preds = %while.body.661 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.742, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.664 + +if.merge.664: ; preds = %if.then.663, %while.body.661 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.743, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.744, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load {}, ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } { i64 17, i64 0 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.660 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %1) #0 { +entry: + %alloca = alloca { i64 }, align 8 + store { i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.745, i64 3 }, { ptr, i64 } { ptr @str.746, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.665 + +while.hdr.665: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.666, label %while.exit.667 + +while.body.666: ; preds = %while.hdr.665 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.668, label %if.merge.669 + +while.exit.667: ; preds = %while.hdr.665 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.747, i64 1 }) + ret { ptr, i64 } %callN + +if.then.668: ; preds = %while.body.666 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.748, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.669 + +if.merge.669: ; preds = %if.then.668, %while.body.666 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.750, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.751, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + ] + +fv.merge: ; preds = %fv.default, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.665 + +fv.default: ; preds = %if.merge.669 + br label %fv.merge + +fv.case: ; preds = %if.merge.669 + %fv.field = extractvalue { i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.752, i64 10 }, { ptr, i64 } { ptr @str.753, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.670 + +while.hdr.670: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.671, label %while.exit.672 + +while.body.671: ; preds = %while.hdr.670 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.673, label %if.merge.674 + +while.exit.672: ; preds = %while.hdr.670 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.754, i64 1 }) + ret { ptr, i64 } %callN + +if.then.673: ; preds = %while.body.671 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.755, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.674 + +if.merge.674: ; preds = %if.then.673, %while.body.671 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.758, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.759, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.670 + +fv.default: ; preds = %if.merge.674 + br label %fv.merge + +fv.case: ; preds = %if.merge.674 + %fv.field = extractvalue { ptr, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 124, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.674 + %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %1) #0 { +entry: + %alloca = alloca { ptr, i64, { ptr, ptr, ptr } }, align 8 + %ba.tmp = alloca { ptr, ptr, ptr }, align 8 + store { ptr, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.760, i64 5 }, { ptr, i64 } { ptr @str.761, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.675 + +while.hdr.675: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.676, label %while.exit.677 + +while.body.676: ; preds = %while.hdr.675 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.678, label %if.merge.679 + +while.exit.677: ; preds = %while.hdr.675 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.762, i64 1 }) + ret { ptr, i64 } %callN + +if.then.678: ; preds = %while.body.676 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.763, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.679 + +if.merge.679: ; preds = %if.then.678, %while.body.676 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.767, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.768, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64, { ptr, ptr, ptr } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + ] + +fv.merge: ; preds = %fv.default, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.675 + +fv.default: ; preds = %if.merge.679 + br label %fv.merge + +fv.case: ; preds = %if.merge.679 + %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 124, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.679 + %fv.field18 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.679 + %fv.field21 = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 2 + store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 103, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64, i64 }, align 8 + store { ptr, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.769, i64 8 }, { ptr, i64 } { ptr @str.770, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.680 + +while.hdr.680: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.681, label %while.exit.682 + +while.body.681: ; preds = %while.hdr.680 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.683, label %if.merge.684 + +while.exit.682: ; preds = %while.hdr.680 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.771, i64 1 }) + ret { ptr, i64 } %callN + +if.then.683: ; preds = %while.body.681 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.772, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.684 + +if.merge.684: ; preds = %if.then.683, %while.body.681 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.776, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.777, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + ] + +fv.merge: ; preds = %fv.default, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.680 + +fv.default: ; preds = %if.merge.684 + br label %fv.merge + +fv.case: ; preds = %if.merge.684 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 100, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.684 + %fv.field18 = extractvalue { ptr, i64, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.684 + %fv.field21 = extractvalue { ptr, i64, i64 } %loadN, 2 + %fv.val22 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field21, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %1) #0 { +entry: + %alloca = alloca { { ptr, ptr, ptr }, i64, i64, i64 }, align 8 + %ba.tmp = alloca { ptr, ptr, ptr }, align 8 + store { { ptr, ptr, ptr }, i64, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.778, i64 17 }, { ptr, i64 } { ptr @str.779, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.685 + +while.hdr.685: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.686, label %while.exit.687 + +while.body.686: ; preds = %while.hdr.685 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.688, label %if.merge.689 + +while.exit.687: ; preds = %while.hdr.685 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.780, i64 1 }) + ret { ptr, i64 } %callN + +if.then.688: ; preds = %while.body.686 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.781, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.689 + +if.merge.689: ; preds = %if.then.688, %while.body.686 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.786, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.787, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case23 + ] + +fv.merge: ; preds = %fv.default, %fv.case23, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ %fv.val25, %fv.case23 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.685 + +fv.default: ; preds = %if.merge.689 + br label %fv.merge + +fv.case: ; preds = %if.merge.689 + %fv.field = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 0 + store { ptr, ptr, ptr } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 103, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.689 + %fv.field18 = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.689 + %fv.field21 = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 2 + %fv.val22 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field21, 1 + br label %fv.merge + +fv.case23: ; preds = %if.merge.689 + %fv.field24 = extractvalue { { ptr, ptr, ptr }, i64, i64, i64 } %loadN, 3 + %fv.val25 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field24, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %1) #0 { +entry: + %alloca = alloca { i32 }, align 8 + store { i32 } %1, ptr %alloca, align 4 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.788, i64 4 }, { ptr, i64 } { ptr @str.789, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.690 + +while.hdr.690: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.691, label %while.exit.692 + +while.body.691: ; preds = %while.hdr.690 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.693, label %if.merge.694 + +while.exit.692: ; preds = %while.hdr.690 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.790, i64 1 }) + ret { ptr, i64 } %callN + +if.then.693: ; preds = %while.body.691 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.791, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.694 + +if.merge.694: ; preds = %if.then.693, %while.body.691 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.793, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.794, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i32 }, ptr %alloca, align 4 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + ] + +fv.merge: ; preds = %fv.default, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.690 + +fv.default: ; preds = %if.merge.694 + br label %fv.merge + +fv.case: ; preds = %if.merge.694 + %fv.field = extractvalue { i32 } %loadN, 0 + %iN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + %ba.tmp26 = alloca { ptr, i64 }, align 8 + %ba.tmp31 = alloca { ptr, i64 }, align 8 + store { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.795, i64 10 }, { ptr, i64 } { ptr @str.796, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.695 + +while.hdr.695: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.696, label %while.exit.697 + +while.body.696: ; preds = %while.hdr.695 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.698, label %if.merge.699 + +while.exit.697: ; preds = %while.hdr.695 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.797, i64 1 }) + ret { ptr, i64 } %callN + +if.then.698: ; preds = %while.body.696 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.798, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.699 + +if.merge.699: ; preds = %if.then.698, %while.body.696 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.804, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.805, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case24 + i64 4, label %fv.case29 + ] + +fv.merge: ; preds = %fv.default, %fv.case29, %fv.case24, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val23, %fv.case20 ], [ %fv.val28, %fv.case24 ], [ %fv.val33, %fv.case29 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.695 + +fv.default: ; preds = %if.merge.699 + br label %fv.merge + +fv.case: ; preds = %if.merge.699 + %fv.field = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 0 + store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.699 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %iN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.699 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %iN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.699 + %fv.field25 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 3 + store { ptr, i64 } %fv.field25, ptr %ba.tmp26, align 8 + %ba.p2i27 = ptrtoint ptr %ba.tmp26 to i64 + %fv.val28 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i27, 1 + br label %fv.merge + +fv.case29: ; preds = %if.merge.699 + %fv.field30 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 4 + store { ptr, i64 } %fv.field30, ptr %ba.tmp31, align 8 + %ba.p2i32 = ptrtoint ptr %ba.tmp31 to i64 + %fv.val33 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i32, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %1) #0 { +entry: + %alloca = alloca { i32, { ptr, i64 } }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { i32, { ptr, i64 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.806, i64 13 }, { ptr, i64 } { ptr @str.807, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.700 + +while.hdr.700: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.701, label %while.exit.702 + +while.body.701: ; preds = %while.hdr.700 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.703, label %if.merge.704 + +while.exit.702: ; preds = %while.hdr.700 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.808, i64 1 }) + ret { ptr, i64 } %callN + +if.then.703: ; preds = %while.body.701 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.809, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.704 + +if.merge.704: ; preds = %if.then.703, %while.body.701 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.812, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.813, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i32, { ptr, i64 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.700 + +fv.default: ; preds = %if.merge.704 + br label %fv.merge + +fv.case: ; preds = %if.merge.704 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %iN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.704 + %fv.field18 = extractvalue { i32, { ptr, i64 } } %loadN, 1 + store { ptr, i64 } %fv.field18, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %1) #0 { +entry: + %alloca = alloca { i8, i8, i16, i32, i64 }, align 8 + store { i8, i8, i16, i32, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.814, i64 8 }, { ptr, i64 } { ptr @str.815, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.705 + +while.hdr.705: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.706, label %while.exit.707 + +while.body.706: ; preds = %while.hdr.705 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.708, label %if.merge.709 + +while.exit.707: ; preds = %while.hdr.705 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.816, i64 1 }) + ret { ptr, i64 } %callN + +if.then.708: ; preds = %while.body.706 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.817, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.709 + +if.merge.709: ; preds = %if.then.708, %while.body.706 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.823, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.824, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i8, i8, i16, i32, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case21 + i64 3, label %fv.case25 + i64 4, label %fv.case29 + ] + +fv.merge: ; preds = %fv.default, %fv.case29, %fv.case25, %fv.case21, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val20, %fv.case17 ], [ %fv.val24, %fv.case21 ], [ %fv.val28, %fv.case25 ], [ %fv.val31, %fv.case29 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.705 + +fv.default: ; preds = %if.merge.709 + br label %fv.merge + +fv.case: ; preds = %if.merge.709 + %fv.field = extractvalue { i8, i8, i16, i32, i64 } %loadN, 0 + %zN = zext i8 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 6, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.709 + %fv.field18 = extractvalue { i8, i8, i16, i32, i64 } %loadN, 1 + %zN = zext i8 %fv.field18 to i64 + %fv.val20 = insertvalue { i64, i64 } { i64 6, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case21: ; preds = %if.merge.709 + %fv.field22 = extractvalue { i8, i8, i16, i32, i64 } %loadN, 2 + %zN = zext i16 %fv.field22 to i64 + %fv.val24 = insertvalue { i64, i64 } { i64 7, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case25: ; preds = %if.merge.709 + %fv.field26 = extractvalue { i8, i8, i16, i32, i64 } %loadN, 3 + %zN = zext i32 %fv.field26 to i64 + %fv.val28 = insertvalue { i64, i64 } { i64 8, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case29: ; preds = %if.merge.709 + %fv.field30 = extractvalue { i8, i8, i16, i32, i64 } %loadN, 4 + %fv.val31 = insertvalue { i64, i64 } { i64 9, i64 undef }, i64 %fv.field30, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64, i64 }, align 8 + store { ptr, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.825, i64 5 }, { ptr, i64 } { ptr @str.826, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.710 + +while.hdr.710: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.711, label %while.exit.712 + +while.body.711: ; preds = %while.hdr.710 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.713, label %if.merge.714 + +while.exit.712: ; preds = %while.hdr.710 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.827, i64 1 }) + ret { ptr, i64 } %callN + +if.then.713: ; preds = %while.body.711 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.828, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.714 + +if.merge.714: ; preds = %if.then.713, %while.body.711 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.832, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.833, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + ] + +fv.merge: ; preds = %fv.default, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.710 + +fv.default: ; preds = %if.merge.714 + br label %fv.merge + +fv.case: ; preds = %if.merge.714 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 153, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.714 + %fv.field18 = extractvalue { ptr, i64, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.714 + %fv.field21 = extractvalue { ptr, i64, i64 } %loadN, 2 + %fv.val22 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field21, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64, i64 }, align 8 + store { ptr, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.834, i64 6 }, { ptr, i64 } { ptr @str.835, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.715 + +while.hdr.715: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.716, label %while.exit.717 + +while.body.716: ; preds = %while.hdr.715 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.718, label %if.merge.719 + +while.exit.717: ; preds = %while.hdr.715 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.836, i64 1 }) + ret { ptr, i64 } %callN + +if.then.718: ; preds = %while.body.716 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.837, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.719 + +if.merge.719: ; preds = %if.then.718, %while.body.716 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.841, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.842, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + ] + +fv.merge: ; preds = %fv.default, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.715 + +fv.default: ; preds = %if.merge.719 + br label %fv.merge + +fv.case: ; preds = %if.merge.719 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 155, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.719 + %fv.field18 = extractvalue { ptr, i64, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.719 + %fv.field21 = extractvalue { ptr, i64, i64 } %loadN, 2 + %fv.val22 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field21, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, { i64, [24 x i8] } }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + %ba.tmp19 = alloca { i64, [24 x i8] }, align 8 + store { { ptr, i64 }, { i64, [24 x i8] } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.843, i64 6 }, { ptr, i64 } { ptr @str.844, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.720 + +while.hdr.720: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.721, label %while.exit.722 + +while.body.721: ; preds = %while.hdr.720 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.723, label %if.merge.724 + +while.exit.722: ; preds = %while.hdr.720 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.845, i64 1 }) + ret { ptr, i64 } %callN + +if.then.723: ; preds = %while.body.721 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.846, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.724 + +if.merge.724: ; preds = %if.then.723, %while.body.721 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.849, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.850, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val21, %fv.case17 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.720 + +fv.default: ; preds = %if.merge.724 + br label %fv.merge + +fv.case: ; preds = %if.merge.724 + %fv.field = extractvalue { { ptr, i64 }, { i64, [24 x i8] } } %loadN, 0 + store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.724 + %fv.field18 = extractvalue { { ptr, i64 }, { i64, [24 x i8] } } %loadN, 1 + store { i64, [24 x i8] } %fv.field18, ptr %ba.tmp19, align 8 + %ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64 + %fv.val21 = insertvalue { i64, i64 } { i64 151, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, i64, ptr }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { { ptr, i64 }, i64, ptr } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.851, i64 4 }, { ptr, i64 } { ptr @str.852, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.725 + +while.hdr.725: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.726, label %while.exit.727 + +while.body.726: ; preds = %while.hdr.725 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.728, label %if.merge.729 + +while.exit.727: ; preds = %while.hdr.725 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.853, i64 1 }) + ret { ptr, i64 } %callN + +if.then.728: ; preds = %while.body.726 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.854, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.729 + +if.merge.729: ; preds = %if.then.728, %while.body.726 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.858, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.859, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, i64 }, i64, ptr }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + ] + +fv.merge: ; preds = %fv.default, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.725 + +fv.default: ; preds = %if.merge.729 + br label %fv.merge + +fv.case: ; preds = %if.merge.729 + %fv.field = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 0 + store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 157, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.729 + %fv.field18 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.729 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 134, i64 undef }, i64 %pNi, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, i64, { ptr, ptr, ptr } }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + %ba.tmp22 = alloca { ptr, ptr, ptr }, align 8 + store { { ptr, i64 }, i64, { ptr, ptr, ptr } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.860, i64 6 }, { ptr, i64 } { ptr @str.861, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.730 + +while.hdr.730: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.731, label %while.exit.732 + +while.body.731: ; preds = %while.hdr.730 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.733, label %if.merge.734 + +while.exit.732: ; preds = %while.hdr.730 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.862, i64 1 }) + ret { ptr, i64 } %callN + +if.then.733: ; preds = %while.body.731 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.863, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.734 + +if.merge.734: ; preds = %if.then.733, %while.body.731 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.867, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.868, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + ] + +fv.merge: ; preds = %fv.default, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val24, %fv.case20 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.730 + +fv.default: ; preds = %if.merge.734 + br label %fv.merge + +fv.case: ; preds = %if.merge.734 + %fv.field = extractvalue { { ptr, i64 }, i64, { ptr, ptr, ptr } } %loadN, 0 + store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.734 + %fv.field18 = extractvalue { { ptr, i64 }, i64, { ptr, ptr, ptr } } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.734 + %fv.field21 = extractvalue { { ptr, i64 }, i64, { ptr, ptr, ptr } } %loadN, 2 + store { ptr, ptr, ptr } %fv.field21, ptr %ba.tmp22, align 8 + %ba.p2i23 = ptrtoint ptr %ba.tmp22 to i64 + %fv.val24 = insertvalue { i64, i64 } { i64 103, i64 undef }, i64 %ba.p2i23, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__List__string(ptr %0, { ptr, i64, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64, i64 }, align 8 + store { ptr, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.869, i64 12 }, { ptr, i64 } { ptr @str.870, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.735 + +while.hdr.735: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.736, label %while.exit.737 + +while.body.736: ; preds = %while.hdr.735 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.738, label %if.merge.739 + +while.exit.737: ; preds = %while.hdr.735 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.871, i64 1 }) + ret { ptr, i64 } %callN + +if.then.738: ; preds = %while.body.736 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.872, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.739 + +if.merge.739: ; preds = %if.then.738, %while.body.736 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.876, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.877, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + ] + +fv.merge: ; preds = %fv.default, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.735 + +fv.default: ; preds = %if.merge.739 + br label %fv.merge + +fv.case: ; preds = %if.merge.739 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 167, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.739 + %fv.field18 = extractvalue { ptr, i64, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.739 + %fv.field21 = extractvalue { ptr, i64, i64 } %loadN, 2 + %fv.val22 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field21, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %1) #0 { +entry: + %alloca = alloca {}, align 8 + store {} %1, ptr %alloca, align 1 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.878, i64 12 }, { ptr, i64 } { ptr @str.879, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.740 + +while.hdr.740: ; preds = %if.merge.744, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.741, label %while.exit.742 + +while.body.741: ; preds = %while.hdr.740 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.743, label %if.merge.744 + +while.exit.742: ; preds = %while.hdr.740 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.880, i64 1 }) + ret { ptr, i64 } %callN + +if.then.743: ; preds = %while.body.741 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.881, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.744 + +if.merge.744: ; preds = %if.then.743, %while.body.741 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.882, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.883, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load {}, ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } { i64 17, i64 0 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.740 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, i1, i1 }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { { ptr, i64 }, i1, i1 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.884, i64 8 }, { ptr, i64 } { ptr @str.885, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.745 + +while.hdr.745: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.746, label %while.exit.747 + +while.body.746: ; preds = %while.hdr.745 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.748, label %if.merge.749 + +while.exit.747: ; preds = %while.hdr.745 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.886, i64 1 }) + ret { ptr, i64 } %callN + +if.then.748: ; preds = %while.body.746 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.887, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.749 + +if.merge.749: ; preds = %if.then.748, %while.body.746 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.891, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.892, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, i64 }, i1, i1 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + ] + +fv.merge: ; preds = %fv.default, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val23, %fv.case20 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.745 + +fv.default: ; preds = %if.merge.749 + br label %fv.merge + +fv.case: ; preds = %if.merge.749 + %fv.field = extractvalue { { ptr, i64 }, i1, i1 } %loadN, 0 + store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.749 + %fv.field18 = extractvalue { { ptr, i64 }, i1, i1 } %loadN, 1 + %zN = zext i1 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.749 + %fv.field21 = extractvalue { { ptr, i64 }, i1, i1 } %loadN, 2 + %zN = zext i1 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + %ba.tmp19 = alloca { ptr, i64 }, align 8 + %ba.tmp24 = alloca { ptr, i64 }, align 8 + store { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.893, i64 7 }, { ptr, i64 } { ptr @str.894, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.750 + +while.hdr.750: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.751, label %while.exit.752 + +while.body.751: ; preds = %while.hdr.750 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.753, label %if.merge.754 + +while.exit.752: ; preds = %while.hdr.750 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.895, i64 1 }) + ret { ptr, i64 } %callN + +if.then.753: ; preds = %while.body.751 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.896, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.754 + +if.merge.754: ; preds = %if.then.753, %while.body.751 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.900, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.901, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case22 + ] + +fv.merge: ; preds = %fv.default, %fv.case22, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val21, %fv.case17 ], [ %fv.val26, %fv.case22 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.750 + +fv.default: ; preds = %if.merge.754 + br label %fv.merge + +fv.case: ; preds = %if.merge.754 + %fv.field = extractvalue { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %loadN, 0 + store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.754 + %fv.field18 = extractvalue { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + store { ptr, i64 } %fv.field18, ptr %ba.tmp19, align 8 + %ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64 + %fv.val21 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.754 + %fv.field23 = extractvalue { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + store { ptr, i64 } %fv.field23, ptr %ba.tmp24, align 8 + %ba.p2i25 = ptrtoint ptr %ba.tmp24 to i64 + %fv.val26 = insertvalue { i64, i64 } { i64 176, i64 undef }, i64 %ba.p2i25, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %1) #0 { +entry: + %alloca = alloca { i1, { ptr, i64 } }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { i1, { ptr, i64 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.902, i64 9 }, { ptr, i64 } { ptr @str.903, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.755 + +while.hdr.755: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.756, label %while.exit.757 + +while.body.756: ; preds = %while.hdr.755 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.758, label %if.merge.759 + +while.exit.757: ; preds = %while.hdr.755 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.904, i64 1 }) + ret { ptr, i64 } %callN + +if.then.758: ; preds = %while.body.756 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.905, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.759 + +if.merge.759: ; preds = %if.then.758, %while.body.756 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.908, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.909, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i1, { ptr, i64 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.755 + +fv.default: ; preds = %if.merge.759 + br label %fv.merge + +fv.case: ; preds = %if.merge.759 + %fv.field = extractvalue { i1, { ptr, i64 } } %loadN, 0 + %zN = zext i1 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.759 + %fv.field18 = extractvalue { i1, { ptr, i64 } } %loadN, 1 + store { ptr, i64 } %fv.field18, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %1) #0 { +entry: + %alloca = alloca { i64, { ptr, i64 } }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { i64, { ptr, i64 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.910, i64 4 }, { ptr, i64 } { ptr @str.911, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.760 + +while.hdr.760: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.761, label %while.exit.762 + +while.body.761: ; preds = %while.hdr.760 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.763, label %if.merge.764 + +while.exit.762: ; preds = %while.hdr.760 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.912, i64 1 }) + ret { ptr, i64 } %callN + +if.then.763: ; preds = %while.body.761 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.913, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.764 + +if.merge.764: ; preds = %if.then.763, %while.body.761 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.916, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.917, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64, { ptr, i64 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.760 + +fv.default: ; preds = %if.merge.764 + br label %fv.merge + +fv.case: ; preds = %if.merge.764 + %fv.field = extractvalue { i64, { ptr, i64 } } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.764 + %fv.field18 = extractvalue { i64, { ptr, i64 } } %loadN, 1 + store { ptr, i64 } %fv.field18, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Parsed(ptr %0, { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + %ba.tmp19 = alloca { ptr, i64 }, align 8 + %ba.tmp30 = alloca { ptr, i64 }, align 8 + %ba.tmp35 = alloca { ptr, i64 }, align 8 + %ba.tmp40 = alloca [16 x { i1, { ptr, i64 } }], align 8 + store { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.918, i64 6 }, { ptr, i64 } { ptr @str.919, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.765 + +while.hdr.765: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.766, label %while.exit.767 + +while.body.766: ; preds = %while.hdr.765 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.768, label %if.merge.769 + +while.exit.767: ; preds = %while.hdr.765 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.920, i64 1 }) + ret { ptr, i64 } %callN + +if.then.768: ; preds = %while.body.766 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.921, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.769 + +if.merge.769: ; preds = %if.then.768, %while.body.766 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [7 x { ptr, i64 }], ptr @field_names.929, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.930, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case22 + i64 3, label %fv.case25 + i64 4, label %fv.case28 + i64 5, label %fv.case33 + i64 6, label %fv.case38 + ] + +fv.merge: ; preds = %fv.default, %fv.case38, %fv.case33, %fv.case28, %fv.case25, %fv.case22, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val21, %fv.case17 ], [ %fv.val24, %fv.case22 ], [ %fv.val27, %fv.case25 ], [ %fv.val32, %fv.case28 ], [ %fv.val37, %fv.case33 ], [ %fv.val42, %fv.case38 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.765 + +fv.default: ; preds = %if.merge.769 + br label %fv.merge + +fv.case: ; preds = %if.merge.769 + %fv.field = extractvalue { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %loadN, 0 + store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.769 + %fv.field18 = extractvalue { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %loadN, 1 + store { ptr, i64 } %fv.field18, ptr %ba.tmp19, align 8 + %ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64 + %fv.val21 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.769 + %fv.field23 = extractvalue { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %loadN, 2 + %fv.val24 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field23, 1 + br label %fv.merge + +fv.case25: ; preds = %if.merge.769 + %fv.field26 = extractvalue { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %loadN, 3 + %zN = zext i1 %fv.field26 to i64 + %fv.val27 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case28: ; preds = %if.merge.769 + %fv.field29 = extractvalue { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %loadN, 4 + store { ptr, i64 } %fv.field29, ptr %ba.tmp30, align 8 + %ba.p2i31 = ptrtoint ptr %ba.tmp30 to i64 + %fv.val32 = insertvalue { i64, i64 } { i64 111, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.769 + %fv.field34 = extractvalue { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %loadN, 5 + store { ptr, i64 } %fv.field34, ptr %ba.tmp35, align 8 + %ba.p2i36 = ptrtoint ptr %ba.tmp35 to i64 + %fv.val37 = insertvalue { i64, i64 } { i64 176, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.769 + %fv.field39 = extractvalue { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] } %loadN, 6 + store [16 x { i1, { ptr, i64 } }] %fv.field39, ptr %ba.tmp40, align 8 + %ba.p2i41 = ptrtoint ptr %ba.tmp40 to i64 + %fv.val42 = insertvalue { i64, i64 } { i64 180, i64 undef }, i64 %ba.p2i41, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %1) #0 { +entry: + %alloca = alloca { [8 x i64], [64 x i8], i64, i64 }, align 8 + %ba.tmp = alloca [8 x i64], align 8 + %ba.tmp19 = alloca [64 x i8], align 1 + store { [8 x i64], [64 x i8], i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.931, i64 6 }, { ptr, i64 } { ptr @str.932, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.770 + +while.hdr.770: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.771, label %while.exit.772 + +while.body.771: ; preds = %while.hdr.770 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.773, label %if.merge.774 + +while.exit.772: ; preds = %while.hdr.770 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.933, i64 1 }) + ret { ptr, i64 } %callN + +if.then.773: ; preds = %while.body.771 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.934, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.774 + +if.merge.774: ; preds = %if.then.773, %while.body.771 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.939, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.940, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { [8 x i64], [64 x i8], i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case22 + i64 3, label %fv.case25 + ] + +fv.merge: ; preds = %fv.default, %fv.case25, %fv.case22, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val21, %fv.case17 ], [ %fv.val24, %fv.case22 ], [ %fv.val27, %fv.case25 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.770 + +fv.default: ; preds = %if.merge.774 + br label %fv.merge + +fv.case: ; preds = %if.merge.774 + %fv.field = extractvalue { [8 x i64], [64 x i8], i64, i64 } %loadN, 0 + store [8 x i64] %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 186, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.774 + %fv.field18 = extractvalue { [8 x i64], [64 x i8], i64, i64 } %loadN, 1 + store [64 x i8] %fv.field18, ptr %ba.tmp19, align 1 + %ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64 + %fv.val21 = insertvalue { i64, i64 } { i64 187, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.774 + %fv.field23 = extractvalue { [8 x i64], [64 x i8], i64, i64 } %loadN, 2 + %fv.val24 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field23, 1 + br label %fv.merge + +fv.case25: ; preds = %if.merge.774 + %fv.field26 = extractvalue { [8 x i64], [64 x i8], i64, i64 } %loadN, 3 + %fv.val27 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field26, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Kevent(ptr %0, { i64, i16, i16, i32, i64, i64 } %1) #0 { +entry: + %alloca = alloca { i64, i16, i16, i32, i64, i64 }, align 8 + store { i64, i16, i16, i32, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.941, i64 6 }, { ptr, i64 } { ptr @str.942, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.775 + +while.hdr.775: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 6 + br i1 %icmp, label %while.body.776, label %while.exit.777 + +while.body.776: ; preds = %while.hdr.775 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.778, label %if.merge.779 + +while.exit.777: ; preds = %while.hdr.775 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.943, i64 1 }) + ret { ptr, i64 } %callN + +if.then.778: ; preds = %while.body.776 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.944, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.779 + +if.merge.779: ; preds = %if.then.778, %while.body.776 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [6 x { ptr, i64 }], ptr @field_names.951, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.952, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64, i16, i16, i32, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case23 + i64 4, label %fv.case27 + i64 5, label %fv.case30 + ] + +fv.merge: ; preds = %fv.default, %fv.case30, %fv.case27, %fv.case23, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ %fv.val26, %fv.case23 ], [ %fv.val29, %fv.case27 ], [ %fv.val32, %fv.case30 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.775 + +fv.default: ; preds = %if.merge.779 + br label %fv.merge + +fv.case: ; preds = %if.merge.779 + %fv.field = extractvalue { i64, i16, i16, i32, i64, i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 16, i64 undef }, i64 %fv.field, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.779 + %fv.field18 = extractvalue { i64, i16, i16, i32, i64, i64 } %loadN, 1 + %iN = sext i16 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 3, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.779 + %fv.field21 = extractvalue { i64, i16, i16, i32, i64, i64 } %loadN, 2 + %zN = zext i16 %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 7, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case23: ; preds = %if.merge.779 + %fv.field24 = extractvalue { i64, i16, i16, i32, i64, i64 } %loadN, 3 + %zN = zext i32 %fv.field24 to i64 + %fv.val26 = insertvalue { i64, i64 } { i64 8, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case27: ; preds = %if.merge.779 + %fv.field28 = extractvalue { i64, i16, i16, i32, i64, i64 } %loadN, 4 + %fv.val29 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field28, 1 + br label %fv.merge + +fv.case30: ; preds = %if.merge.779 + %fv.field31 = extractvalue { i64, i16, i16, i32, i64, i64 } %loadN, 5 + %fv.val32 = insertvalue { i64, i64 } { i64 16, i64 undef }, i64 %fv.field31, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__KqTimespec(ptr %0, { i64, i64 } %1) #0 { +entry: + %alloca = alloca { i64, i64 }, align 8 + store { i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.953, i64 10 }, { ptr, i64 } { ptr @str.954, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.780 + +while.hdr.780: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.781, label %while.exit.782 + +while.body.781: ; preds = %while.hdr.780 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.783, label %if.merge.784 + +while.exit.782: ; preds = %while.hdr.780 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.955, i64 1 }) + ret { ptr, i64 } %callN + +if.then.783: ; preds = %while.body.781 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.956, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.784 + +if.merge.784: ; preds = %if.then.783, %while.body.781 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.959, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.960, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.780 + +fv.default: ; preds = %if.merge.784 + br label %fv.merge + +fv.case: ; preds = %if.merge.784 + %fv.field = extractvalue { i64, i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.784 + %fv.field18 = extractvalue { i64, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Event(ptr %0, { i32, i64, i1, i1, i1, i1, i1, i64 } %1) #0 { +entry: + %alloca = alloca { i32, i64, i1, i1, i1, i1, i1, i64 }, align 8 + store { i32, i64, i1, i1, i1, i1, i1, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.961, i64 5 }, { ptr, i64 } { ptr @str.962, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.785 + +while.hdr.785: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.786, label %while.exit.787 + +while.body.786: ; preds = %while.hdr.785 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.788, label %if.merge.789 + +while.exit.787: ; preds = %while.hdr.785 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.963, i64 1 }) + ret { ptr, i64 } %callN + +if.then.788: ; preds = %while.body.786 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.964, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.789 + +if.merge.789: ; preds = %if.then.788, %while.body.786 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [8 x { ptr, i64 }], ptr @field_names.973, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.974, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i32, i64, i1, i1, i1, i1, i1, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case23 + i64 4, label %fv.case27 + i64 5, label %fv.case31 + i64 6, label %fv.case35 + i64 7, label %fv.case39 + ] + +fv.merge: ; preds = %fv.default, %fv.case39, %fv.case35, %fv.case31, %fv.case27, %fv.case23, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ %fv.val26, %fv.case23 ], [ %fv.val30, %fv.case27 ], [ %fv.val34, %fv.case31 ], [ %fv.val38, %fv.case35 ], [ %fv.val41, %fv.case39 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.785 + +fv.default: ; preds = %if.merge.789 + br label %fv.merge + +fv.case: ; preds = %if.merge.789 + %fv.field = extractvalue { i32, i64, i1, i1, i1, i1, i1, i64 } %loadN, 0 + %iN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.789 + %fv.field18 = extractvalue { i32, i64, i1, i1, i1, i1, i1, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 16, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.789 + %fv.field21 = extractvalue { i32, i64, i1, i1, i1, i1, i1, i64 } %loadN, 2 + %zN = zext i1 %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case23: ; preds = %if.merge.789 + %fv.field24 = extractvalue { i32, i64, i1, i1, i1, i1, i1, i64 } %loadN, 3 + %zN = zext i1 %fv.field24 to i64 + %fv.val26 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case27: ; preds = %if.merge.789 + %fv.field28 = extractvalue { i32, i64, i1, i1, i1, i1, i1, i64 } %loadN, 4 + %zN = zext i1 %fv.field28 to i64 + %fv.val30 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case31: ; preds = %if.merge.789 + %fv.field32 = extractvalue { i32, i64, i1, i1, i1, i1, i1, i64 } %loadN, 5 + %zN = zext i1 %fv.field32 to i64 + %fv.val34 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case35: ; preds = %if.merge.789 + %fv.field36 = extractvalue { i32, i64, i1, i1, i1, i1, i1, i64 } %loadN, 6 + %zN = zext i1 %fv.field36 to i64 + %fv.val38 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case39: ; preds = %if.merge.789 + %fv.field40 = extractvalue { i32, i64, i1, i1, i1, i1, i1, i64 } %loadN, 7 + %fv.val41 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field40, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Loop(ptr %0, { i32 } %1) #0 { +entry: + %alloca = alloca { i32 }, align 8 + store { i32 } %1, ptr %alloca, align 4 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.975, i64 4 }, { ptr, i64 } { ptr @str.976, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.790 + +while.hdr.790: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.791, label %while.exit.792 + +while.body.791: ; preds = %while.hdr.790 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.793, label %if.merge.794 + +while.exit.792: ; preds = %while.hdr.790 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.977, i64 1 }) + ret { ptr, i64 } %callN + +if.then.793: ; preds = %while.body.791 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.978, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.794 + +if.merge.794: ; preds = %if.then.793, %while.body.791 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.980, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.981, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i32 }, ptr %alloca, align 4 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + ] + +fv.merge: ; preds = %fv.default, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.790 + +fv.default: ; preds = %if.merge.794 + br label %fv.merge + +fv.case: ; preds = %if.merge.794 + %fv.field = extractvalue { i32 } %loadN, 0 + %iN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Config(ptr %0, { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %1) #0 { +entry: + %alloca = alloca { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, align 8 + store { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.982, i64 6 }, { ptr, i64 } { ptr @str.983, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.795 + +while.hdr.795: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 9 + br i1 %icmp, label %while.body.796, label %while.exit.797 + +while.body.796: ; preds = %while.hdr.795 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.798, label %if.merge.799 + +while.exit.797: ; preds = %while.hdr.795 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.984, i64 1 }) + ret { ptr, i64 } %callN + +if.then.798: ; preds = %while.body.796 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.985, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.799 + +if.merge.799: ; preds = %if.then.798, %while.body.796 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [9 x { ptr, i64 }], ptr @field_names.995, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.996, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case23 + i64 4, label %fv.case26 + i64 5, label %fv.case29 + i64 6, label %fv.case32 + i64 7, label %fv.case35 + i64 8, label %fv.case38 + ] + +fv.merge: ; preds = %fv.default, %fv.case38, %fv.case35, %fv.case32, %fv.case29, %fv.case26, %fv.case23, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ %fv.val25, %fv.case23 ], [ %fv.val28, %fv.case26 ], [ %fv.val31, %fv.case29 ], [ %fv.val34, %fv.case32 ], [ %fv.val37, %fv.case35 ], [ %fv.val40, %fv.case38 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.795 + +fv.default: ; preds = %if.merge.799 + br label %fv.merge + +fv.case: ; preds = %if.merge.799 + %fv.field = extractvalue { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.799 + %fv.field18 = extractvalue { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %loadN, 1 + %iN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.799 + %fv.field21 = extractvalue { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %loadN, 2 + %fv.val22 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field21, 1 + br label %fv.merge + +fv.case23: ; preds = %if.merge.799 + %fv.field24 = extractvalue { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %loadN, 3 + %fv.val25 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field24, 1 + br label %fv.merge + +fv.case26: ; preds = %if.merge.799 + %fv.field27 = extractvalue { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %loadN, 4 + %fv.val28 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field27, 1 + br label %fv.merge + +fv.case29: ; preds = %if.merge.799 + %fv.field30 = extractvalue { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %loadN, 5 + %fv.val31 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field30, 1 + br label %fv.merge + +fv.case32: ; preds = %if.merge.799 + %fv.field33 = extractvalue { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %loadN, 6 + %fv.val34 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field33, 1 + br label %fv.merge + +fv.case35: ; preds = %if.merge.799 + %fv.field36 = extractvalue { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %loadN, 7 + %fv.val37 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.799 + %fv.field39 = extractvalue { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %loadN, 8 + %fv.val40 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field39, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Request(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + %ba.tmp19 = alloca { ptr, i64 }, align 8 + %ba.tmp24 = alloca { ptr, i64 }, align 8 + %ba.tmp29 = alloca { ptr, i64 }, align 8 + %ba.tmp34 = alloca { ptr, i64 }, align 8 + store { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.997, i64 7 }, { ptr, i64 } { ptr @str.998, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.800 + +while.hdr.800: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 6 + br i1 %icmp, label %while.body.801, label %while.exit.802 + +while.body.801: ; preds = %while.hdr.800 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.803, label %if.merge.804 + +while.exit.802: ; preds = %while.hdr.800 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.999, i64 1 }) + ret { ptr, i64 } %callN + +if.then.803: ; preds = %while.body.801 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1000, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.804 + +if.merge.804: ; preds = %if.then.803, %while.body.801 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [6 x { ptr, i64 }], ptr @field_names.1007, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1008, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case22 + i64 3, label %fv.case27 + i64 4, label %fv.case32 + i64 5, label %fv.case37 + ] + +fv.merge: ; preds = %fv.default, %fv.case37, %fv.case32, %fv.case27, %fv.case22, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val21, %fv.case17 ], [ %fv.val26, %fv.case22 ], [ %fv.val31, %fv.case27 ], [ %fv.val36, %fv.case32 ], [ %fv.val39, %fv.case37 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.800 + +fv.default: ; preds = %if.merge.804 + br label %fv.merge + +fv.case: ; preds = %if.merge.804 + %fv.field = extractvalue { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %loadN, 0 + store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.804 + %fv.field18 = extractvalue { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %loadN, 1 + store { ptr, i64 } %fv.field18, ptr %ba.tmp19, align 8 + %ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64 + %fv.val21 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.804 + %fv.field23 = extractvalue { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %loadN, 2 + store { ptr, i64 } %fv.field23, ptr %ba.tmp24, align 8 + %ba.p2i25 = ptrtoint ptr %ba.tmp24 to i64 + %fv.val26 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i25, 1 + br label %fv.merge + +fv.case27: ; preds = %if.merge.804 + %fv.field28 = extractvalue { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %loadN, 3 + store { ptr, i64 } %fv.field28, ptr %ba.tmp29, align 8 + %ba.p2i30 = ptrtoint ptr %ba.tmp29 to i64 + %fv.val31 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i30, 1 + br label %fv.merge + +fv.case32: ; preds = %if.merge.804 + %fv.field33 = extractvalue { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %loadN, 4 + store { ptr, i64 } %fv.field33, ptr %ba.tmp34, align 8 + %ba.p2i35 = ptrtoint ptr %ba.tmp34 to i64 + %fv.val36 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i35, 1 + br label %fv.merge + +fv.case37: ; preds = %if.merge.804 + %fv.field38 = extractvalue { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %loadN, 5 + %zN = zext i1 %fv.field38 to i64 + %fv.val39 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Response(ptr %0, { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %1) #0 { +entry: + %alloca = alloca { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + %ba.tmp22 = alloca { ptr, i64 }, align 8 + %ba.tmp27 = alloca { ptr, i64 }, align 8 + store { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1009, i64 8 }, { ptr, i64 } { ptr @str.1010, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.805 + +while.hdr.805: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.806, label %while.exit.807 + +while.body.806: ; preds = %while.hdr.805 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.808, label %if.merge.809 + +while.exit.807: ; preds = %while.hdr.805 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1011, i64 1 }) + ret { ptr, i64 } %callN + +if.then.808: ; preds = %while.body.806 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1012, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.809 + +if.merge.809: ; preds = %if.then.808, %while.body.806 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.1017, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1018, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case25 + ] + +fv.merge: ; preds = %fv.default, %fv.case25, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val24, %fv.case20 ], [ %fv.val29, %fv.case25 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.805 + +fv.default: ; preds = %if.merge.809 + br label %fv.merge + +fv.case: ; preds = %if.merge.809 + %fv.field = extractvalue { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.809 + %fv.field18 = extractvalue { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + store { ptr, i64 } %fv.field18, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.809 + %fv.field21 = extractvalue { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + store { ptr, i64 } %fv.field21, ptr %ba.tmp22, align 8 + %ba.p2i23 = ptrtoint ptr %ba.tmp22 to i64 + %fv.val24 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i23, 1 + br label %fv.merge + +fv.case25: ; preds = %if.merge.809 + %fv.field26 = extractvalue { i64, { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %loadN, 3 + store { ptr, i64 } %fv.field26, ptr %ba.tmp27, align 8 + %ba.p2i28 = ptrtoint ptr %ba.tmp27 to i64 + %fv.val29 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i28, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Conn(ptr %0, { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %1) #0 { +entry: + %alloca = alloca { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 }, align 8 + store { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1019, i64 4 }, { ptr, i64 } { ptr @str.1020, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.810 + +while.hdr.810: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 13 + br i1 %icmp, label %while.body.811, label %while.exit.812 + +while.body.811: ; preds = %while.hdr.810 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.813, label %if.merge.814 + +while.exit.812: ; preds = %while.hdr.810 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1021, i64 1 }) + ret { ptr, i64 } %callN + +if.then.813: ; preds = %while.body.811 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1022, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.814 + +if.merge.814: ; preds = %if.then.813, %while.body.811 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [13 x { ptr, i64 }], ptr @field_names.1036, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1037, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case23 + i64 4, label %fv.case26 + i64 5, label %fv.case29 + i64 6, label %fv.case33 + i64 7, label %fv.case36 + i64 8, label %fv.case39 + i64 9, label %fv.case42 + i64 10, label %fv.case45 + i64 11, label %fv.case49 + i64 12, label %fv.case53 + ] + +fv.merge: ; preds = %fv.default, %fv.case53, %fv.case49, %fv.case45, %fv.case42, %fv.case39, %fv.case36, %fv.case33, %fv.case29, %fv.case26, %fv.case23, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ %fv.val25, %fv.case23 ], [ %fv.val28, %fv.case26 ], [ %fv.val32, %fv.case29 ], [ %fv.val35, %fv.case33 ], [ %fv.val38, %fv.case36 ], [ %fv.val41, %fv.case39 ], [ %fv.val44, %fv.case42 ], [ %fv.val48, %fv.case45 ], [ %fv.val52, %fv.case49 ], [ %fv.val55, %fv.case53 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.810 + +fv.default: ; preds = %if.merge.814 + br label %fv.merge + +fv.case: ; preds = %if.merge.814 + %fv.field = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 0 + %iN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.814 + %fv.field18 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 1 + %zN = zext i8 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 6, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.814 + %fv.field21 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 100, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case23: ; preds = %if.merge.814 + %fv.field24 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 3 + %fv.val25 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field24, 1 + br label %fv.merge + +fv.case26: ; preds = %if.merge.814 + %fv.field27 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 4 + %fv.val28 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field27, 1 + br label %fv.merge + +fv.case29: ; preds = %if.merge.814 + %fv.field30 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 5 + %pNi31 = ptrtoint ptr %fv.field30 to i64 + %fv.val32 = insertvalue { i64, i64 } { i64 100, i64 undef }, i64 %pNi31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.814 + %fv.field34 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 6 + %fv.val35 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field34, 1 + br label %fv.merge + +fv.case36: ; preds = %if.merge.814 + %fv.field37 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 7 + %fv.val38 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field37, 1 + br label %fv.merge + +fv.case39: ; preds = %if.merge.814 + %fv.field40 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 8 + %fv.val41 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field40, 1 + br label %fv.merge + +fv.case42: ; preds = %if.merge.814 + %fv.field43 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 9 + %fv.val44 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field43, 1 + br label %fv.merge + +fv.case45: ; preds = %if.merge.814 + %fv.field46 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 10 + %zN = zext i1 %fv.field46 to i64 + %fv.val48 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case49: ; preds = %if.merge.814 + %fv.field50 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 11 + %zN = zext i1 %fv.field50 to i64 + %fv.val52 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case53: ; preds = %if.merge.814 + %fv.field54 = extractvalue { i32, i8, ptr, i64, i64, ptr, i64, i64, i64, i64, i1, i1, i64 } %loadN, 12 + %fv.val55 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field54, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__OutBytes(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1038, i64 8 }, { ptr, i64 } { ptr @str.1039, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.815 + +while.hdr.815: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.816, label %while.exit.817 + +while.body.816: ; preds = %while.hdr.815 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.818, label %if.merge.819 + +while.exit.817: ; preds = %while.hdr.815 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1040, i64 1 }) + ret { ptr, i64 } %callN + +if.then.818: ; preds = %while.body.816 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1041, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.819 + +if.merge.819: ; preds = %if.then.818, %while.body.816 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.1044, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1045, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.815 + +fv.default: ; preds = %if.merge.819 + br label %fv.merge + +fv.case: ; preds = %if.merge.819 + %fv.field = extractvalue { ptr, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 100, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.819 + %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Completion(ptr %0, { i64, i64, { ptr, i64 }, i1, i64 } %1) #0 { +entry: + %alloca = alloca { i64, i64, { ptr, i64 }, i1, i64 }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { i64, i64, { ptr, i64 }, i1, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1046, i64 10 }, { ptr, i64 } { ptr @str.1047, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.820 + +while.hdr.820: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.821, label %while.exit.822 + +while.body.821: ; preds = %while.hdr.820 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.823, label %if.merge.824 + +while.exit.822: ; preds = %while.hdr.820 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1048, i64 1 }) + ret { ptr, i64 } %callN + +if.then.823: ; preds = %while.body.821 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1049, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.824 + +if.merge.824: ; preds = %if.then.823, %while.body.821 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.1055, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1056, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64, i64, { ptr, i64 }, i1, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case23 + i64 4, label %fv.case26 + ] + +fv.merge: ; preds = %fv.default, %fv.case26, %fv.case23, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ %fv.val25, %fv.case23 ], [ %fv.val28, %fv.case26 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.820 + +fv.default: ; preds = %if.merge.824 + br label %fv.merge + +fv.case: ; preds = %if.merge.824 + %fv.field = extractvalue { i64, i64, { ptr, i64 }, i1, i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.824 + %fv.field18 = extractvalue { i64, i64, { ptr, i64 }, i1, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.824 + %fv.field21 = extractvalue { i64, i64, { ptr, i64 }, i1, i64 } %loadN, 2 + store { ptr, i64 } %fv.field21, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 209, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case23: ; preds = %if.merge.824 + %fv.field24 = extractvalue { i64, i64, { ptr, i64 }, i1, i64 } %loadN, 3 + %zN = zext i1 %fv.field24 to i64 + %fv.val25 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case26: ; preds = %if.merge.824 + %fv.field27 = extractvalue { i64, i64, { ptr, i64 }, i1, i64 } %loadN, 4 + %fv.val28 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field27, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Pool(ptr %0, { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %1) #0 { +entry: + %alloca = alloca { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 }, align 8 + %ba.tmp = alloca { { i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8 + %ba.tmp19 = alloca { { i64, i64, i64, i64, i64, i64 } }, align 8 + store { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1057, i64 4 }, { ptr, i64 } { ptr @str.1058, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.825 + +while.hdr.825: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 9 + br i1 %icmp, label %while.body.826, label %while.exit.827 + +while.body.826: ; preds = %while.hdr.825 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.828, label %if.merge.829 + +while.exit.827: ; preds = %while.hdr.825 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1059, i64 1 }) + ret { ptr, i64 } %callN + +if.then.828: ; preds = %while.body.826 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1060, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.829 + +if.merge.829: ; preds = %if.then.828, %while.body.826 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [9 x { ptr, i64 }], ptr @field_names.1070, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1071, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case22 + i64 3, label %fv.case25 + i64 4, label %fv.case28 + i64 5, label %fv.case31 + i64 6, label %fv.case34 + i64 7, label %fv.case37 + i64 8, label %fv.case41 + ] + +fv.merge: ; preds = %fv.default, %fv.case41, %fv.case37, %fv.case34, %fv.case31, %fv.case28, %fv.case25, %fv.case22, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val21, %fv.case17 ], [ %fv.val24, %fv.case22 ], [ %fv.val27, %fv.case25 ], [ %fv.val30, %fv.case28 ], [ %fv.val33, %fv.case31 ], [ %fv.val36, %fv.case34 ], [ %fv.val40, %fv.case37 ], [ %fv.val43, %fv.case41 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.825 + +fv.default: ; preds = %if.merge.829 + br label %fv.merge + +fv.case: ; preds = %if.merge.829 + %fv.field = extractvalue { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %loadN, 0 + store { { i64, i64, i64, i64, i64, i64, i64, i64 } } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 213, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.829 + %fv.field18 = extractvalue { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %loadN, 1 + store { { i64, i64, i64, i64, i64, i64 } } %fv.field18, ptr %ba.tmp19, align 8 + %ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64 + %fv.val21 = insertvalue { i64, i64 } { i64 233, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.829 + %fv.field23 = extractvalue { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %loadN, 2 + %pNi = ptrtoint ptr %fv.field23 to i64 + %fv.val24 = insertvalue { i64, i64 } { i64 240, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case25: ; preds = %if.merge.829 + %fv.field26 = extractvalue { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %loadN, 3 + %fv.val27 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field26, 1 + br label %fv.merge + +fv.case28: ; preds = %if.merge.829 + %fv.field29 = extractvalue { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %loadN, 4 + %fv.val30 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field29, 1 + br label %fv.merge + +fv.case31: ; preds = %if.merge.829 + %fv.field32 = extractvalue { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %loadN, 5 + %fv.val33 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field32, 1 + br label %fv.merge + +fv.case34: ; preds = %if.merge.829 + %fv.field35 = extractvalue { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %loadN, 6 + %zN = zext i1 %fv.field35 to i64 + %fv.val36 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case37: ; preds = %if.merge.829 + %fv.field38 = extractvalue { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %loadN, 7 + %pNi39 = ptrtoint ptr %fv.field38 to i64 + %fv.val40 = insertvalue { i64, i64 } { i64 241, i64 undef }, i64 %pNi39, 1 + br label %fv.merge + +fv.case41: ; preds = %if.merge.829 + %fv.field42 = extractvalue { { { i64, i64, i64, i64, i64, i64, i64, i64 } }, { { i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, i64, i1, ptr, i64 } %loadN, 8 + %fv.val43 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field42, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Mutex(ptr %0, { { i64, i64, i64, i64, i64, i64, i64, i64 } } %1) #0 { +entry: + %alloca = alloca { { i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8 + %ba.tmp = alloca { i64, i64, i64, i64, i64, i64, i64, i64 }, align 8 + store { { i64, i64, i64, i64, i64, i64, i64, i64 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1072, i64 5 }, { ptr, i64 } { ptr @str.1073, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.830 + +while.hdr.830: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.831, label %while.exit.832 + +while.body.831: ; preds = %while.hdr.830 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.833, label %if.merge.834 + +while.exit.832: ; preds = %while.hdr.830 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1074, i64 1 }) + ret { ptr, i64 } %callN + +if.then.833: ; preds = %while.body.831 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1075, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.834 + +if.merge.834: ; preds = %if.then.833, %while.body.831 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.1077, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1078, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + ] + +fv.merge: ; preds = %fv.default, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.830 + +fv.default: ; preds = %if.merge.834 + br label %fv.merge + +fv.case: ; preds = %if.merge.834 + %fv.field = extractvalue { { i64, i64, i64, i64, i64, i64, i64, i64 } } %loadN, 0 + store { i64, i64, i64, i64, i64, i64, i64, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 227, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__PoolState(ptr %0, { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } } %1) #0 { +entry: + %alloca = alloca { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } }, align 8 + %ba.tmp = alloca { { i64, i64, i64, i64, i64, i64, i64, i64 } }, align 8 + %ba.tmp32 = alloca { i32 }, align 8 + store { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1079, i64 9 }, { ptr, i64 } { ptr @str.1080, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.835 + +while.hdr.835: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 6 + br i1 %icmp, label %while.body.836, label %while.exit.837 + +while.body.836: ; preds = %while.hdr.835 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.838, label %if.merge.839 + +while.exit.837: ; preds = %while.hdr.835 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1081, i64 1 }) + ret { ptr, i64 } %callN + +if.then.838: ; preds = %while.body.836 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1082, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.839 + +if.merge.839: ; preds = %if.then.838, %while.body.836 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [6 x { ptr, i64 }], ptr @field_names.1089, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1090, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case24 + i64 4, label %fv.case27 + i64 5, label %fv.case30 + ] + +fv.merge: ; preds = %fv.default, %fv.case30, %fv.case27, %fv.case24, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val23, %fv.case20 ], [ %fv.val26, %fv.case24 ], [ %fv.val29, %fv.case27 ], [ %fv.val34, %fv.case30 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.835 + +fv.default: ; preds = %if.merge.839 + br label %fv.merge + +fv.case: ; preds = %if.merge.839 + %fv.field = extractvalue { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 212, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.839 + %fv.field18 = extractvalue { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } } %loadN, 1 + store { { i64, i64, i64, i64, i64, i64, i64, i64 } } %fv.field18, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 213, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.839 + %fv.field21 = extractvalue { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } } %loadN, 2 + %pNi22 = ptrtoint ptr %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 214, i64 undef }, i64 %pNi22, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.839 + %fv.field25 = extractvalue { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } } %loadN, 3 + %fv.val26 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field25, 1 + br label %fv.merge + +fv.case27: ; preds = %if.merge.839 + %fv.field28 = extractvalue { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } } %loadN, 4 + %fv.val29 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field28, 1 + br label %fv.merge + +fv.case30: ; preds = %if.merge.839 + %fv.field31 = extractvalue { ptr, { { i64, i64, i64, i64, i64, i64, i64, i64 } }, ptr, i64, i64, { i32 } } %loadN, 5 + store { i32 } %fv.field31, ptr %ba.tmp32, align 4 + %ba.p2i33 = ptrtoint ptr %ba.tmp32 to i64 + %fv.val34 = insertvalue { i64, i64 } { i64 198, i64 undef }, i64 %ba.p2i33, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__HandlerJob(ptr %0, { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 }, align 8 + %ba.tmp = alloca { ptr, ptr, ptr }, align 8 + %ba.tmp29 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, align 8 + store { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1091, i64 10 }, { ptr, i64 } { ptr @str.1092, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.840 + +while.hdr.840: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 9 + br i1 %icmp, label %while.body.841, label %while.exit.842 + +while.body.841: ; preds = %while.hdr.840 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.843, label %if.merge.844 + +while.exit.842: ; preds = %while.hdr.840 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1093, i64 1 }) + ret { ptr, i64 } %callN + +if.then.843: ; preds = %while.body.841 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1094, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.844 + +if.merge.844: ; preds = %if.then.843, %while.body.841 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [9 x { ptr, i64 }], ptr @field_names.1104, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1105, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case24 + i64 4, label %fv.case27 + i64 5, label %fv.case32 + i64 6, label %fv.case35 + i64 7, label %fv.case38 + i64 8, label %fv.case41 + ] + +fv.merge: ; preds = %fv.default, %fv.case41, %fv.case38, %fv.case35, %fv.case32, %fv.case27, %fv.case24, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val23, %fv.case20 ], [ %fv.val26, %fv.case24 ], [ %fv.val31, %fv.case27 ], [ %fv.val34, %fv.case32 ], [ %fv.val37, %fv.case35 ], [ %fv.val40, %fv.case38 ], [ %fv.val43, %fv.case41 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.840 + +fv.default: ; preds = %if.merge.844 + br label %fv.merge + +fv.case: ; preds = %if.merge.844 + %fv.field = extractvalue { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 217, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.844 + %fv.field18 = extractvalue { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 16, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.844 + %fv.field21 = extractvalue { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %loadN, 2 + %pNi22 = ptrtoint ptr %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 218, i64 undef }, i64 %pNi22, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.844 + %fv.field25 = extractvalue { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %loadN, 3 + store { ptr, ptr, ptr } %fv.field25, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val26 = insertvalue { i64, i64 } { i64 103, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case27: ; preds = %if.merge.844 + %fv.field28 = extractvalue { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %loadN, 4 + store { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 } %fv.field28, ptr %ba.tmp29, align 8 + %ba.p2i30 = ptrtoint ptr %ba.tmp29 to i64 + %fv.val31 = insertvalue { i64, i64 } { i64 205, i64 undef }, i64 %ba.p2i30, 1 + br label %fv.merge + +fv.case32: ; preds = %if.merge.844 + %fv.field33 = extractvalue { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %loadN, 5 + %fv.val34 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field33, 1 + br label %fv.merge + +fv.case35: ; preds = %if.merge.844 + %fv.field36 = extractvalue { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %loadN, 6 + %fv.val37 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.844 + %fv.field39 = extractvalue { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %loadN, 7 + %zN = zext i1 %fv.field39 to i64 + %fv.val40 = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case41: ; preds = %if.merge.844 + %fv.field42 = extractvalue { ptr, i64, ptr, { ptr, ptr, ptr }, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, { ptr, i64 }, i1 }, i64, i64, i1, i64 } %loadN, 8 + %fv.val43 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field42, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Server(ptr %0, { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %1) #0 { +entry: + %alloca = alloca { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr }, align 8 + %ba.tmp = alloca { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, align 8 + %ba.tmp19 = alloca { i32 }, align 8 + %ba.tmp30 = alloca { ptr, ptr, ptr }, align 8 + store { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1106, i64 6 }, { ptr, i64 } { ptr @str.1107, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.845 + +while.hdr.845: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.846, label %while.exit.847 + +while.body.846: ; preds = %while.hdr.845 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.848, label %if.merge.849 + +while.exit.847: ; preds = %while.hdr.845 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1108, i64 1 }) + ret { ptr, i64 } %callN + +if.then.848: ; preds = %while.body.846 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1109, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.849 + +if.merge.849: ; preds = %if.then.848, %while.body.846 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [8 x { ptr, i64 }], ptr @field_names.1118, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1119, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case22 + i64 3, label %fv.case25 + i64 4, label %fv.case28 + i64 5, label %fv.case33 + i64 6, label %fv.case37 + i64 7, label %fv.case40 + ] + +fv.merge: ; preds = %fv.default, %fv.case40, %fv.case37, %fv.case33, %fv.case28, %fv.case25, %fv.case22, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val21, %fv.case17 ], [ %fv.val24, %fv.case22 ], [ %fv.val27, %fv.case25 ], [ %fv.val32, %fv.case28 ], [ %fv.val36, %fv.case33 ], [ %fv.val39, %fv.case37 ], [ %fv.val43, %fv.case40 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.845 + +fv.default: ; preds = %if.merge.849 + br label %fv.merge + +fv.case: ; preds = %if.merge.849 + %fv.field = extractvalue { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %loadN, 0 + store { i64, i32, i64, i64, i64, i64, i64, i64, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 204, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.849 + %fv.field18 = extractvalue { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %loadN, 1 + store { i32 } %fv.field18, ptr %ba.tmp19, align 4 + %ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64 + %fv.val21 = insertvalue { i64, i64 } { i64 198, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.849 + %fv.field23 = extractvalue { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %loadN, 2 + %iN = sext i32 %fv.field23 to i64 + %fv.val24 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %iN, 1 + br label %fv.merge + +fv.case25: ; preds = %if.merge.849 + %fv.field26 = extractvalue { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %loadN, 3 + %pNi = ptrtoint ptr %fv.field26 to i64 + %fv.val27 = insertvalue { i64, i64 } { i64 220, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case28: ; preds = %if.merge.849 + %fv.field29 = extractvalue { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %loadN, 4 + store { ptr, ptr, ptr } %fv.field29, ptr %ba.tmp30, align 8 + %ba.p2i31 = ptrtoint ptr %ba.tmp30 to i64 + %fv.val32 = insertvalue { i64, i64 } { i64 103, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.849 + %fv.field34 = extractvalue { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %loadN, 5 + %pNi35 = ptrtoint ptr %fv.field34 to i64 + %fv.val36 = insertvalue { i64, i64 } { i64 217, i64 undef }, i64 %pNi35, 1 + br label %fv.merge + +fv.case37: ; preds = %if.merge.849 + %fv.field38 = extractvalue { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %loadN, 6 + %fv.val39 = insertvalue { i64, i64 } { i64 16, i64 undef }, i64 %fv.field38, 1 + br label %fv.merge + +fv.case40: ; preds = %if.merge.849 + %fv.field41 = extractvalue { { i64, i32, i64, i64, i64, i64, i64, i64, i64 }, { i32 }, i32, ptr, { ptr, ptr, ptr }, ptr, i64, ptr } %loadN, 7 + %pNi42 = ptrtoint ptr %fv.field41 to i64 + %fv.val43 = insertvalue { i64, i64 } { i64 218, i64 undef }, i64 %pNi42, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__MutexBuf(ptr %0, { i64, i64, i64, i64, i64, i64, i64, i64 } %1) #0 { +entry: + %alloca = alloca { i64, i64, i64, i64, i64, i64, i64, i64 }, align 8 + store { i64, i64, i64, i64, i64, i64, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1120, i64 8 }, { ptr, i64 } { ptr @str.1121, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.850 + +while.hdr.850: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.851, label %while.exit.852 + +while.body.851: ; preds = %while.hdr.850 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.853, label %if.merge.854 + +while.exit.852: ; preds = %while.hdr.850 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1122, i64 1 }) + ret { ptr, i64 } %callN + +if.then.853: ; preds = %while.body.851 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1123, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.854 + +if.merge.854: ; preds = %if.then.853, %while.body.851 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [8 x { ptr, i64 }], ptr @field_names.1132, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1133, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64, i64, i64, i64, i64, i64, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case23 + i64 4, label %fv.case26 + i64 5, label %fv.case29 + i64 6, label %fv.case32 + i64 7, label %fv.case35 + ] + +fv.merge: ; preds = %fv.default, %fv.case35, %fv.case32, %fv.case29, %fv.case26, %fv.case23, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ %fv.val25, %fv.case23 ], [ %fv.val28, %fv.case26 ], [ %fv.val31, %fv.case29 ], [ %fv.val34, %fv.case32 ], [ %fv.val37, %fv.case35 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.850 + +fv.default: ; preds = %if.merge.854 + br label %fv.merge + +fv.case: ; preds = %if.merge.854 + %fv.field = extractvalue { i64, i64, i64, i64, i64, i64, i64, i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.854 + %fv.field18 = extractvalue { i64, i64, i64, i64, i64, i64, i64, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.854 + %fv.field21 = extractvalue { i64, i64, i64, i64, i64, i64, i64, i64 } %loadN, 2 + %fv.val22 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field21, 1 + br label %fv.merge + +fv.case23: ; preds = %if.merge.854 + %fv.field24 = extractvalue { i64, i64, i64, i64, i64, i64, i64, i64 } %loadN, 3 + %fv.val25 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field24, 1 + br label %fv.merge + +fv.case26: ; preds = %if.merge.854 + %fv.field27 = extractvalue { i64, i64, i64, i64, i64, i64, i64, i64 } %loadN, 4 + %fv.val28 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field27, 1 + br label %fv.merge + +fv.case29: ; preds = %if.merge.854 + %fv.field30 = extractvalue { i64, i64, i64, i64, i64, i64, i64, i64 } %loadN, 5 + %fv.val31 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field30, 1 + br label %fv.merge + +fv.case32: ; preds = %if.merge.854 + %fv.field33 = extractvalue { i64, i64, i64, i64, i64, i64, i64, i64 } %loadN, 6 + %fv.val34 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field33, 1 + br label %fv.merge + +fv.case35: ; preds = %if.merge.854 + %fv.field36 = extractvalue { i64, i64, i64, i64, i64, i64, i64, i64 } %loadN, 7 + %fv.val37 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field36, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__CondBuf(ptr %0, { i64, i64, i64, i64, i64, i64 } %1) #0 { +entry: + %alloca = alloca { i64, i64, i64, i64, i64, i64 }, align 8 + store { i64, i64, i64, i64, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1134, i64 7 }, { ptr, i64 } { ptr @str.1135, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.855 + +while.hdr.855: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 6 + br i1 %icmp, label %while.body.856, label %while.exit.857 + +while.body.856: ; preds = %while.hdr.855 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.858, label %if.merge.859 + +while.exit.857: ; preds = %while.hdr.855 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1136, i64 1 }) + ret { ptr, i64 } %callN + +if.then.858: ; preds = %while.body.856 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1137, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.859 + +if.merge.859: ; preds = %if.then.858, %while.body.856 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [6 x { ptr, i64 }], ptr @field_names.1144, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1145, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64, i64, i64, i64, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case23 + i64 4, label %fv.case26 + i64 5, label %fv.case29 + ] + +fv.merge: ; preds = %fv.default, %fv.case29, %fv.case26, %fv.case23, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ %fv.val25, %fv.case23 ], [ %fv.val28, %fv.case26 ], [ %fv.val31, %fv.case29 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.855 + +fv.default: ; preds = %if.merge.859 + br label %fv.merge + +fv.case: ; preds = %if.merge.859 + %fv.field = extractvalue { i64, i64, i64, i64, i64, i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.859 + %fv.field18 = extractvalue { i64, i64, i64, i64, i64, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.859 + %fv.field21 = extractvalue { i64, i64, i64, i64, i64, i64 } %loadN, 2 + %fv.val22 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field21, 1 + br label %fv.merge + +fv.case23: ; preds = %if.merge.859 + %fv.field24 = extractvalue { i64, i64, i64, i64, i64, i64 } %loadN, 3 + %fv.val25 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field24, 1 + br label %fv.merge + +fv.case26: ; preds = %if.merge.859 + %fv.field27 = extractvalue { i64, i64, i64, i64, i64, i64 } %loadN, 4 + %fv.val28 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field27, 1 + br label %fv.merge + +fv.case29: ; preds = %if.merge.859 + %fv.field30 = extractvalue { i64, i64, i64, i64, i64, i64 } %loadN, 5 + %fv.val31 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field30, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Cond(ptr %0, { { i64, i64, i64, i64, i64, i64 } } %1) #0 { +entry: + %alloca = alloca { { i64, i64, i64, i64, i64, i64 } }, align 8 + %ba.tmp = alloca { i64, i64, i64, i64, i64, i64 }, align 8 + store { { i64, i64, i64, i64, i64, i64 } } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1146, i64 4 }, { ptr, i64 } { ptr @str.1147, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.860 + +while.hdr.860: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.861, label %while.exit.862 + +while.body.861: ; preds = %while.hdr.860 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.863, label %if.merge.864 + +while.exit.862: ; preds = %while.hdr.860 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1148, i64 1 }) + ret { ptr, i64 } %callN + +if.then.863: ; preds = %while.body.861 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1149, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.864 + +if.merge.864: ; preds = %if.then.863, %while.body.861 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.1151, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1152, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { i64, i64, i64, i64, i64, i64 } }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + ] + +fv.merge: ; preds = %fv.default, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.860 + +fv.default: ; preds = %if.merge.864 + br label %fv.merge + +fv.case: ; preds = %if.merge.864 + %fv.field = extractvalue { { i64, i64, i64, i64, i64, i64 } } %loadN, 0 + store { i64, i64, i64, i64, i64, i64 } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 229, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Thread(ptr %0, { i64 } %1) #0 { +entry: + %alloca = alloca { i64 }, align 8 + store { i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1153, i64 6 }, { ptr, i64 } { ptr @str.1154, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.865 + +while.hdr.865: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.866, label %while.exit.867 + +while.body.866: ; preds = %while.hdr.865 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.868, label %if.merge.869 + +while.exit.867: ; preds = %while.hdr.865 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1155, i64 1 }) + ret { ptr, i64 } %callN + +if.then.868: ; preds = %while.body.866 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1156, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.869 + +if.merge.869: ; preds = %if.then.868, %while.body.866 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.1158, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1159, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + ] + +fv.merge: ; preds = %fv.default, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.865 + +fv.default: ; preds = %if.merge.869 + br label %fv.merge + +fv.case: ; preds = %if.merge.869 + %fv.field = extractvalue { i64 } %loadN, 0 + %fv.val = insertvalue { i64, i64 } { i64 16, i64 undef }, i64 %fv.field, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__PoolTask(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1160, i64 8 }, { ptr, i64 } { ptr @str.1161, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.870 + +while.hdr.870: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.871, label %while.exit.872 + +while.body.871: ; preds = %while.hdr.870 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.873, label %if.merge.874 + +while.exit.872: ; preds = %while.hdr.870 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1162, i64 1 }) + ret { ptr, i64 } %callN + +if.then.873: ; preds = %while.body.871 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1163, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.874 + +if.merge.874: ; preds = %if.then.873, %while.body.871 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.1166, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1167, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.870 + +fv.default: ; preds = %if.merge.874 + br label %fv.merge + +fv.case: ; preds = %if.merge.874 + %fv.field = extractvalue { ptr, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 238, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.874 + %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 + %fv.val19 = insertvalue { i64, i64 } { i64 16, i64 undef }, i64 %fv.field18, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__FiberCtx(ptr %0, { [13 x i64] } %1) #0 { +entry: + %alloca = alloca { [13 x i64] }, align 8 + %ba.tmp = alloca [13 x i64], align 8 + store { [13 x i64] } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1168, i64 8 }, { ptr, i64 } { ptr @str.1169, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.875 + +while.hdr.875: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.876, label %while.exit.877 + +while.body.876: ; preds = %while.hdr.875 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.878, label %if.merge.879 + +while.exit.877: ; preds = %while.hdr.875 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1170, i64 1 }) + ret { ptr, i64 } %callN + +if.then.878: ; preds = %while.body.876 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1171, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.879 + +if.merge.879: ; preds = %if.then.878, %while.body.876 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.1173, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1174, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { [13 x i64] }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + ] + +fv.merge: ; preds = %fv.default, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.875 + +fv.default: ; preds = %if.merge.879 + br label %fv.merge + +fv.case: ; preds = %if.merge.879 + %fv.field = extractvalue { [13 x i64] } %loadN, 0 + store [13 x i64] %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 243, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Fiber(ptr %0, { { [13 x i64] }, ptr, i64, i64 } %1) #0 { +entry: + %alloca = alloca { { [13 x i64] }, ptr, i64, i64 }, align 8 + %ba.tmp = alloca { [13 x i64] }, align 8 + store { { [13 x i64] }, ptr, i64, i64 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1175, i64 5 }, { ptr, i64 } { ptr @str.1176, i64 1 }) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.880 + +while.hdr.880: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.881, label %while.exit.882 + +while.body.881: ; preds = %while.hdr.880 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.883, label %if.merge.884 + +while.exit.882: ; preds = %while.hdr.880 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1177, i64 1 }) + ret { ptr, i64 } %callN + +if.then.883: ; preds = %while.body.881 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1178, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.884 + +if.merge.884: ; preds = %if.then.883, %while.body.881 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.1183, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %fn.load) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1184, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { { [13 x i64] }, ptr, i64, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case17 + i64 2, label %fv.case20 + i64 3, label %fv.case23 + ] + +fv.merge: ; preds = %fv.default, %fv.case23, %fv.case20, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val19, %fv.case17 ], [ %fv.val22, %fv.case20 ], [ %fv.val25, %fv.case23 ], [ undef, %fv.default ] + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %fv.phi) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.880 + +fv.default: ; preds = %if.merge.884 + br label %fv.merge + +fv.case: ; preds = %if.merge.884 + %fv.field = extractvalue { { [13 x i64] }, ptr, i64, i64 } %loadN, 0 + store { [13 x i64] } %fv.field, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 244, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.884 + %fv.field18 = extractvalue { { [13 x i64] }, ptr, i64, i64 } %loadN, 1 + %pNi = ptrtoint ptr %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 245, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.884 + %fv.field21 = extractvalue { { [13 x i64] }, ptr, i64, i64 } %loadN, 2 + %fv.val22 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field21, 1 + br label %fv.merge + +fv.case23: ; preds = %if.merge.884 + %fv.field24 = extractvalue { { [13 x i64] }, ptr, i64, i64 } %loadN, 3 + %fv.val25 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field24, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @enum_to_string__PinTarget(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.1189, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1185, i64 1 }, { ptr, i64 } %fn.load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load i64, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %allocaN = alloca { i64, i64 }, align 8 + store { i64, i64 } { i64 17, i64 0 }, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.895, label %if.merge.896 + +if.then.895: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1191, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1190, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.896 + +if.merge.896: ; preds = %if.then.895, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @enum_to_string__Ordering(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.1198, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1192, i64 1 }, { ptr, i64 } %fn.load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load i64, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %allocaN = alloca { i64, i64 }, align 8 + store { i64, i64 } { i64 17, i64 0 }, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.897, label %if.merge.898 + +if.then.897: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1200, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1199, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.898 + +if.merge.898: ; preds = %if.then.897, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @enum_to_string__FutureState(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.1206, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1201, i64 1 }, { ptr, i64 } %fn.load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load i64, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %allocaN = alloca { i64, i64 }, align 8 + store { i64, i64 } { i64 17, i64 0 }, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.899, label %if.merge.900 + +if.then.899: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1208, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1207, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.900 + +if.merge.900: ; preds = %if.then.899, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.1214, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1209, i64 1 }, { ptr, i64 } %fn.load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load i64, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %allocaN = alloca { i64, i64 }, align 8 + store { i64, i64 } { i64 17, i64 0 }, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.901, label %if.merge.902 + +if.then.901: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1216, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1215, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.902 + +if.merge.902: ; preds = %if.then.901, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.1221, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1217, i64 1 }, { ptr, i64 } %fn.load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load i64, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %allocaN = alloca { i64, i64 }, align 8 + store { i64, i64 } { i64 17, i64 0 }, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.903, label %if.merge.904 + +if.then.903: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1223, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1222, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.904 + +if.merge.904: ; preds = %if.then.903, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %1) #0 { +entry: + %alloca = alloca { i64, [24 x i8] }, align 8 + %fv.utmp = alloca { i64, [24 x i8] }, align 8 + %fv.utmp8 = alloca { i64, [24 x i8] }, align 8 + %fv.utmp13 = alloca { i64, [24 x i8] }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + %fv.utmp18 = alloca { i64, [24 x i8] }, align 8 + %ba.tmp21 = alloca { ptr, i64, i64 }, align 8 + %fv.utmp25 = alloca { i64, [24 x i8] }, align 8 + %ba.tmp28 = alloca { ptr, i64, i64 }, align 8 + %allocaN = alloca { i64, i64 }, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { i64, [24 x i8] } %1, ptr %alloca, align 8 + %load = load { i64, [24 x i8] }, ptr %alloca, align 8 + %etag = extractvalue { i64, [24 x i8] } %load, 0 + %allocaN = alloca i64, align 8 + store i64 %etag, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [6 x { ptr, i64 }], ptr @field_names.1231, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1224, i64 1 }, { ptr, i64 } %fn.load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load { i64, [24 x i8] }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + switch i64 %loadN, label %fv.default [ + i64 0, label %fv.case + i64 1, label %fv.case6 + i64 2, label %fv.case7 + i64 3, label %fv.case12 + i64 4, label %fv.case17 + i64 5, label %fv.case24 + ] + +if.then.905: ; preds = %fv.merge + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1233, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1232, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.906 + +if.merge.906: ; preds = %if.then.905, %fv.merge + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN + +fv.merge: ; preds = %fv.default, %fv.case24, %fv.case17, %fv.case12, %fv.case7, %fv.case6, %fv.case + %fv.phi = phi { i64, i64 } [ { i64 17, i64 0 }, %fv.case ], [ %fv.val, %fv.case6 ], [ %fv.val11, %fv.case7 ], [ %fv.val16, %fv.case12 ], [ %fv.val23, %fv.case17 ], [ %fv.val30, %fv.case24 ], [ undef, %fv.default ] + store { i64, i64 } %fv.phi, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.905, label %if.merge.906 + +fv.default: ; preds = %entry + br label %fv.merge + +fv.case: ; preds = %entry + br label %fv.merge + +fv.case6: ; preds = %entry + store { i64, [24 x i8] } %loadN, ptr %fv.utmp, align 8 + %fv.pp = getelementptr inbounds nuw { i64, [24 x i8] }, ptr %fv.utmp, i32 0, i32 1 + %fv.field = load i1, ptr %fv.pp, align 1 + %zN = zext i1 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 1, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case7: ; preds = %entry + store { i64, [24 x i8] } %loadN, ptr %fv.utmp8, align 8 + %fv.pp9 = getelementptr inbounds nuw { i64, [24 x i8] }, ptr %fv.utmp8, i32 0, i32 1 + %fv.field10 = load i64, ptr %fv.pp9, align 8 + %fv.val11 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field10, 1 + br label %fv.merge + +fv.case12: ; preds = %entry + store { i64, [24 x i8] } %loadN, ptr %fv.utmp13, align 8 + %fv.pp14 = getelementptr inbounds nuw { i64, [24 x i8] }, ptr %fv.utmp13, i32 0, i32 1 + %fv.field15 = load { ptr, i64 }, ptr %fv.pp14, align 8 + store { ptr, i64 } %fv.field15, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val16 = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %entry + store { i64, [24 x i8] } %loadN, ptr %fv.utmp18, align 8 + %fv.pp19 = getelementptr inbounds nuw { i64, [24 x i8] }, ptr %fv.utmp18, i32 0, i32 1 + %fv.field20 = load { ptr, i64, i64 }, ptr %fv.pp19, align 8 + store { ptr, i64, i64 } %fv.field20, ptr %ba.tmp21, align 8 + %ba.p2i22 = ptrtoint ptr %ba.tmp21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 149, i64 undef }, i64 %ba.p2i22, 1 + br label %fv.merge + +fv.case24: ; preds = %entry + store { i64, [24 x i8] } %loadN, ptr %fv.utmp25, align 8 + %fv.pp26 = getelementptr inbounds nuw { i64, [24 x i8] }, ptr %fv.utmp25, i32 0, i32 1 + %fv.field27 = load { ptr, i64, i64 }, ptr %fv.pp26, align 8 + store { ptr, i64, i64 } %fv.field27, ptr %ba.tmp28, align 8 + %ba.p2i29 = ptrtoint ptr %ba.tmp28 to i64 + %fv.val30 = insertvalue { i64, i64 } { i64 150, i64 undef }, i64 %ba.p2i29, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [7 x { ptr, i64 }], ptr @field_names.1242, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1234, i64 1 }, { ptr, i64 } %fn.load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load i64, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %allocaN = alloca { i64, i64 }, align 8 + store { i64, i64 } { i64 17, i64 0 }, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.907, label %if.merge.908 + +if.then.907: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1244, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1243, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.908 + +if.merge.908: ; preds = %if.then.907, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %1) #0 { +entry: + %alloca = alloca i64, align 8 + store i64 %1, ptr %alloca, align 8 + %load = load i64, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + store i64 %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.1251, i64 0, i64 %loadN + %fn.load = load { ptr, i64 }, ptr %fn.gep, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1245, i64 1 }, { ptr, i64 } %fn.load) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %call, ptr %allocaN, align 8 + %loadN = load i64, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %allocaN = alloca { i64, i64 }, align 8 + store { i64, i64 } { i64 17, i64 0 }, ptr %allocaN, align 8 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %loadN) + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp sgt i64 %len, 0 + br i1 %icmp, label %if.then.909, label %if.merge.910 + +if.then.909: ; preds = %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1253, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1252, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.910 + +if.merge.910: ; preds = %if.then.909, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @slice_to_string__i64(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1254, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.924 + +while.hdr.924: ; preds = %if.merge.928, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.925, label %while.exit.926 + +while.body.925: ; preds = %while.hdr.924 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.927, label %if.merge.928 + +while.exit.926: ; preds = %while.hdr.924 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1255, i64 1 }) + ret { ptr, i64 } %call + +if.then.927: ; preds = %while.body.925 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1256, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.928 + +if.merge.928: ; preds = %if.then.927, %while.body.925 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i64, ptr %ig.data, i64 %loadN + %ig.val = load i64, ptr %ig.ptr, align 8 + %ba.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %ig.val, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.924 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @slice_to_string__FlagValue(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1257, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.929 + +while.hdr.929: ; preds = %if.merge.933, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.930, label %while.exit.931 + +while.body.930: ; preds = %while.hdr.929 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.932, label %if.merge.933 + +while.exit.931: ; preds = %while.hdr.929 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1258, i64 1 }) + ret { ptr, i64 } %call + +if.then.932: ; preds = %while.body.930 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1259, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.933 + +if.merge.933: ; preds = %if.then.932, %while.body.930 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr { i1, { ptr, i64 } }, ptr %ig.data, i64 %loadN + %ig.val = load { i1, { ptr, i64 } }, ptr %ig.ptr, align 8 + store { i1, { ptr, i64 } } %ig.val, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 178, i64 undef }, i64 %ba.p2i, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.929 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1260, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.934 + +while.hdr.934: ; preds = %if.merge.938, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.935, label %while.exit.936 + +while.body.935: ; preds = %while.hdr.934 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.937, label %if.merge.938 + +while.exit.936: ; preds = %while.hdr.934 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1261, i64 1 }) + ret { ptr, i64 } %call + +if.then.937: ; preds = %while.body.935 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1262, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.938 + +if.merge.938: ; preds = %if.then.937, %while.body.935 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i8, ptr %ig.data, i64 %loadN + %ig.val = load i8, ptr %ig.ptr, align 1 + %zN = zext i8 %ig.val to i64 + %ba.val = insertvalue { i64, i64 } { i64 6, i64 undef }, i64 %zN, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.934 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @slice_to_string__u64(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1263, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.939 + +while.hdr.939: ; preds = %if.merge.943, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.940, label %while.exit.941 + +while.body.940: ; preds = %while.hdr.939 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.942, label %if.merge.943 + +while.exit.941: ; preds = %while.hdr.939 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1264, i64 1 }) + ret { ptr, i64 } %call + +if.then.942: ; preds = %while.body.940 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1265, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.943 + +if.merge.943: ; preds = %if.then.942, %while.body.940 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr i64, ptr %ig.data, i64 %loadN + %ig.val = load i64, ptr %ig.ptr, align 8 + %ba.val = insertvalue { i64, i64 } { i64 9, i64 undef }, i64 %ig.val, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.939 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %ba.tmp = alloca { i64, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1266, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.944 + +while.hdr.944: ; preds = %if.merge.948, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.945, label %while.exit.946 + +while.body.945: ; preds = %while.hdr.944 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.947, label %if.merge.948 + +while.exit.946: ; preds = %while.hdr.944 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1267, i64 1 }) + ret { ptr, i64 } %call + +if.then.947: ; preds = %while.body.945 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1268, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.948 + +if.merge.948: ; preds = %if.then.947, %while.body.945 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr { i64, i64 }, ptr %ig.data, i64 %loadN + %ig.val = load { i64, i64 }, ptr %ig.ptr, align 8 + store { i64, i64 } %ig.val, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %ba.p2i, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.944 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1269, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.949 + +while.hdr.949: ; preds = %if.merge.953, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.950, label %while.exit.951 + +while.body.950: ; preds = %while.hdr.949 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.952, label %if.merge.953 + +while.exit.951: ; preds = %while.hdr.949 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1270, i64 1 }) + ret { ptr, i64 } %call + +if.then.952: ; preds = %while.body.950 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1271, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.953 + +if.merge.953: ; preds = %if.then.952, %while.body.950 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr { ptr, i64 }, ptr %ig.data, i64 %loadN + %ig.val = load { ptr, i64 }, ptr %ig.ptr, align 8 + store { ptr, i64 } %ig.val, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.949 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %ba.tmp = alloca { { ptr, i64 }, i1, i1 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1272, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.962 + +while.hdr.962: ; preds = %if.merge.966, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.963, label %while.exit.964 + +while.body.963: ; preds = %while.hdr.962 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.965, label %if.merge.966 + +while.exit.964: ; preds = %while.hdr.962 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1273, i64 1 }) + ret { ptr, i64 } %call + +if.then.965: ; preds = %while.body.963 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1274, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.966 + +if.merge.966: ; preds = %if.then.965, %while.body.963 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr { { ptr, i64 }, i1, i1 }, ptr %ig.data, i64 %loadN + %ig.val = load { { ptr, i64 }, i1, i1 }, ptr %ig.ptr, align 8 + store { { ptr, i64 }, i1, i1 } %ig.val, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 175, i64 undef }, i64 %ba.p2i, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.962 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %ba.tmp = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1275, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.967 + +while.hdr.967: ; preds = %if.merge.971, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.968, label %while.exit.969 + +while.body.968: ; preds = %while.hdr.967 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.970, label %if.merge.971 + +while.exit.969: ; preds = %while.hdr.967 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1276, i64 1 }) + ret { ptr, i64 } %call + +if.then.970: ; preds = %while.body.968 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1277, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.971 + +if.merge.971: ; preds = %if.then.970, %while.body.968 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ig.data, i64 %loadN + %ig.val = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ig.ptr, align 8 + store { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ig.val, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 177, i64 undef }, i64 %ba.p2i, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.967 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @slice_to_string__Event(ptr %0, { ptr, i64 } %1) #0 { +entry: + %alloca = alloca { ptr, i64 }, align 8 + %ba.tmp = alloca { i32, i64, i1, i1, i1, i1, i1, i64 }, align 8 + store { ptr, i64 } %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1278, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.972 + +while.hdr.972: ; preds = %if.merge.976, %entry + %load = load i64, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %len = extractvalue { ptr, i64 } %loadN, 1 + %icmp = icmp slt i64 %load, %len + br i1 %icmp, label %while.body.973, label %while.exit.974 + +while.body.973: ; preds = %while.hdr.972 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.975, label %if.merge.976 + +while.exit.974: ; preds = %while.hdr.972 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1279, i64 1 }) + ret { ptr, i64 } %call + +if.then.975: ; preds = %while.body.973 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1280, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.976 + +if.merge.976: ; preds = %if.then.975, %while.body.973 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %ig.data = extractvalue { ptr, i64 } %loadN, 0 + %ig.ptr = getelementptr { i32, i64, i1, i1, i1, i1, i1, i64 }, ptr %ig.data, i64 %loadN + %ig.val = load { i32, i64, i1, i1, i1, i1, i1, i64 }, ptr %ig.ptr, align 8 + store { i32, i64, i1, i1, i1, i1, i1, i64 } %ig.val, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 197, i64 undef }, i64 %ba.p2i, 1 + %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %add = add i64 %loadN, 1 + store i64 %add, ptr %allocaN, align 8 + br label %while.hdr.972 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1055, label %if.else.1056 + +if.then.1055: ; preds = %entry + br label %if.merge.1057 + +if.else.1056: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1283, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1282, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1057 + +if.merge.1057: ; preds = %if.else.1056, %if.then.1055 + %bp = phi { ptr, i64 } [ { ptr @str.1281, i64 4 }, %if.then.1055 ], [ %callN, %if.else.1056 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1071, label %if.else.1072 + +if.then.1071: ; preds = %entry + br label %if.merge.1073 + +if.else.1072: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1286, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1285, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1073 + +if.merge.1073: ; preds = %if.else.1072, %if.then.1071 + %bp = phi { ptr, i64 } [ { ptr @str.1284, i64 4 }, %if.then.1071 ], [ %callN, %if.else.1072 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Timespec(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1074, label %if.else.1075 + +if.then.1074: ; preds = %entry + br label %if.merge.1076 + +if.else.1075: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1289, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1288, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1076 + +if.merge.1076: ; preds = %if.else.1075, %if.then.1074 + %bp = phi { ptr, i64 } [ { ptr @str.1287, i64 4 }, %if.then.1074 ], [ %callN, %if.else.1075 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_CBlockingIo(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1077, label %if.else.1078 + +if.then.1077: ; preds = %entry + br label %if.merge.1079 + +if.else.1078: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1292, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1291, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.1079 + +if.merge.1079: ; preds = %if.else.1078, %if.then.1077 + %bp = phi { ptr, i64 } [ { ptr @str.1290, i64 4 }, %if.then.1077 ], [ %callN, %if.else.1078 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1080, label %if.else.1081 + +if.then.1080: ; preds = %entry + br label %if.merge.1082 + +if.else.1081: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1295, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1294, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.1082 + +if.merge.1082: ; preds = %if.else.1081, %if.then.1080 + %bp = phi { ptr, i64 } [ { ptr @str.1293, i64 4 }, %if.then.1080 ], [ %callN, %if.else.1081 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1083, label %if.else.1084 + +if.then.1083: ; preds = %entry + br label %if.merge.1085 + +if.else.1084: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1298, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1297, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.1085 + +if.merge.1085: ; preds = %if.else.1084, %if.then.1083 + %bp = phi { ptr, i64 } [ { ptr @str.1296, i64 4 }, %if.then.1083 ], [ %callN, %if.else.1084 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1086, label %if.else.1087 + +if.then.1086: ; preds = %entry + br label %if.merge.1088 + +if.else.1087: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1301, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1300, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.1088 + +if.merge.1088: ; preds = %if.else.1087, %if.then.1086 + %bp = phi { ptr, i64 } [ { ptr @str.1299, i64 4 }, %if.then.1086 ], [ %callN, %if.else.1087 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1089, label %if.else.1090 + +if.then.1089: ; preds = %entry + br label %if.merge.1091 + +if.else.1090: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1304, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1303, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.1091 + +if.merge.1091: ; preds = %if.else.1090, %if.then.1089 + %bp = phi { ptr, i64 } [ { ptr @str.1302, i64 4 }, %if.then.1089 ], [ %callN, %if.else.1090 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1092, label %if.else.1093 + +if.then.1092: ; preds = %entry + br label %if.merge.1094 + +if.else.1093: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1307, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1306, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1094 + +if.merge.1094: ; preds = %if.else.1093, %if.then.1092 + %bp = phi { ptr, i64 } [ { ptr @str.1305, i64 4 }, %if.then.1092 ], [ %callN, %if.else.1093 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1095, label %if.else.1096 + +if.then.1095: ; preds = %entry + br label %if.merge.1097 + +if.else.1096: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1310, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1309, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.1097 + +if.merge.1097: ; preds = %if.else.1096, %if.then.1095 + %bp = phi { ptr, i64 } [ { ptr @str.1308, i64 4 }, %if.then.1095 ], [ %callN, %if.else.1096 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1098, label %if.else.1099 + +if.then.1098: ; preds = %entry + br label %if.merge.1100 + +if.else.1099: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1313, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1312, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1100 + +if.merge.1100: ; preds = %if.else.1099, %if.then.1098 + %bp = phi { ptr, i64 } [ { ptr @str.1311, i64 4 }, %if.then.1098 ], [ %callN, %if.else.1099 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_i32(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1101, label %if.else.1102 + +if.then.1101: ; preds = %entry + br label %if.merge.1103 + +if.else.1102: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1316, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1315, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.1103 + +if.merge.1103: ; preds = %if.else.1102, %if.then.1101 + %bp = phi { ptr, i64 } [ { ptr @str.1314, i64 4 }, %if.then.1101 ], [ %callN, %if.else.1102 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1104, label %if.else.1105 + +if.then.1104: ; preds = %entry + br label %if.merge.1106 + +if.else.1105: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1319, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1318, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1106 + +if.merge.1106: ; preds = %if.else.1105, %if.then.1104 + %bp = phi { ptr, i64 } [ { ptr @str.1317, i64 4 }, %if.then.1104 ], [ %callN, %if.else.1105 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1107, label %if.else.1108 + +if.then.1107: ; preds = %entry + br label %if.merge.1109 + +if.else.1108: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1322, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1321, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.1109 + +if.merge.1109: ; preds = %if.else.1108, %if.then.1107 + %bp = phi { ptr, i64 } [ { ptr @str.1320, i64 4 }, %if.then.1107 ], [ %callN, %if.else.1108 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1110, label %if.else.1111 + +if.then.1110: ; preds = %entry + br label %if.merge.1112 + +if.else.1111: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1325, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1324, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.1112 + +if.merge.1112: ; preds = %if.else.1111, %if.then.1110 + %bp = phi { ptr, i64 } [ { ptr @str.1323, i64 4 }, %if.then.1110 ], [ %callN, %if.else.1111 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1113, label %if.else.1114 + +if.then.1113: ; preds = %entry + br label %if.merge.1115 + +if.else.1114: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1328, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1327, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.1115 + +if.merge.1115: ; preds = %if.else.1114, %if.then.1113 + %bp = phi { ptr, i64 } [ { ptr @str.1326, i64 4 }, %if.then.1113 ], [ %callN, %if.else.1114 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1116, label %if.else.1117 + +if.then.1116: ; preds = %entry + br label %if.merge.1118 + +if.else.1117: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1331, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1330, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1118 + +if.merge.1118: ; preds = %if.else.1117, %if.then.1116 + %bp = phi { ptr, i64 } [ { ptr @str.1329, i64 4 }, %if.then.1116 ], [ %callN, %if.else.1117 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1119, label %if.else.1120 + +if.then.1119: ; preds = %entry + br label %if.merge.1121 + +if.else.1120: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1334, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1333, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1121 + +if.merge.1121: ; preds = %if.else.1120, %if.then.1119 + %bp = phi { ptr, i64 } [ { ptr @str.1332, i64 4 }, %if.then.1119 ], [ %callN, %if.else.1120 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1122, label %if.else.1123 + +if.then.1122: ; preds = %entry + br label %if.merge.1124 + +if.else.1123: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1337, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1336, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1124 + +if.merge.1124: ; preds = %if.else.1123, %if.then.1122 + %bp = phi { ptr, i64 } [ { ptr @str.1335, i64 4 }, %if.then.1122 ], [ %callN, %if.else.1123 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1125, label %if.else.1126 + +if.then.1125: ; preds = %entry + br label %if.merge.1127 + +if.else.1126: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1340, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1339, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1127 + +if.merge.1127: ; preds = %if.else.1126, %if.then.1125 + %bp = phi { ptr, i64 } [ { ptr @str.1338, i64 4 }, %if.then.1125 ], [ %callN, %if.else.1126 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__mptr_string(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1128, label %if.else.1129 + +if.then.1128: ; preds = %entry + br label %if.merge.1130 + +if.else.1129: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1343, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1342, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1130 + +if.merge.1130: ; preds = %if.else.1129, %if.then.1128 + %bp = phi { ptr, i64 } [ { ptr @str.1341, i64 4 }, %if.then.1128 ], [ %callN, %if.else.1129 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_i64(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1131, label %if.else.1132 + +if.then.1131: ; preds = %entry + br label %if.merge.1133 + +if.else.1132: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1346, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1345, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.1133 + +if.merge.1133: ; preds = %if.else.1132, %if.then.1131 + %bp = phi { ptr, i64 } [ { ptr @str.1344, i64 4 }, %if.then.1131 ], [ %callN, %if.else.1132 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1134, label %if.else.1135 + +if.then.1134: ; preds = %entry + br label %if.merge.1136 + +if.else.1135: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1349, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1348, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1136 + +if.merge.1136: ; preds = %if.else.1135, %if.then.1134 + %bp = phi { ptr, i64 } [ { ptr @str.1347, i64 4 }, %if.then.1134 ], [ %callN, %if.else.1135 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1137, label %if.else.1138 + +if.then.1137: ; preds = %entry + br label %if.merge.1139 + +if.else.1138: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1352, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1351, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1139 + +if.merge.1139: ; preds = %if.else.1138, %if.then.1137 + %bp = phi { ptr, i64 } [ { ptr @str.1350, i64 4 }, %if.then.1137 ], [ %callN, %if.else.1138 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1140, label %if.else.1141 + +if.then.1140: ; preds = %entry + br label %if.merge.1142 + +if.else.1141: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1355, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1354, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1142 + +if.merge.1142: ; preds = %if.else.1141, %if.then.1140 + %bp = phi { ptr, i64 } [ { ptr @str.1353, i64 4 }, %if.then.1140 ], [ %callN, %if.else.1141 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Kevent(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1143, label %if.else.1144 + +if.then.1143: ; preds = %entry + br label %if.merge.1145 + +if.else.1144: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1358, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1357, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1145 + +if.merge.1145: ; preds = %if.else.1144, %if.then.1143 + %bp = phi { ptr, i64 } [ { ptr @str.1356, i64 4 }, %if.then.1143 ], [ %callN, %if.else.1144 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_KqTimespec(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1146, label %if.else.1147 + +if.then.1146: ; preds = %entry + br label %if.merge.1148 + +if.else.1147: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1361, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1360, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.1148 + +if.merge.1148: ; preds = %if.else.1147, %if.then.1146 + %bp = phi { ptr, i64 } [ { ptr @str.1359, i64 4 }, %if.then.1146 ], [ %callN, %if.else.1147 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Loop(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1149, label %if.else.1150 + +if.then.1149: ; preds = %entry + br label %if.merge.1151 + +if.else.1150: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1364, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1363, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1151 + +if.merge.1151: ; preds = %if.else.1150, %if.then.1149 + %bp = phi { ptr, i64 } [ { ptr @str.1362, i64 4 }, %if.then.1149 ], [ %callN, %if.else.1150 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Request(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1152, label %if.else.1153 + +if.then.1152: ; preds = %entry + br label %if.merge.1154 + +if.else.1153: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1367, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1366, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.1154 + +if.merge.1154: ; preds = %if.else.1153, %if.then.1152 + %bp = phi { ptr, i64 } [ { ptr @str.1365, i64 4 }, %if.then.1152 ], [ %callN, %if.else.1153 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Pool(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1155, label %if.else.1156 + +if.then.1155: ; preds = %entry + br label %if.merge.1157 + +if.else.1156: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1370, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1369, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1157 + +if.merge.1157: ; preds = %if.else.1156, %if.then.1155 + %bp = phi { ptr, i64 } [ { ptr @str.1368, i64 4 }, %if.then.1155 ], [ %callN, %if.else.1156 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__mptr_Completion(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1158, label %if.else.1159 + +if.then.1158: ; preds = %entry + br label %if.merge.1160 + +if.else.1159: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1373, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1372, i64 13 }, { ptr, i64 } %callN) + br label %if.merge.1160 + +if.merge.1160: ; preds = %if.else.1159, %if.then.1158 + %bp = phi { ptr, i64 } [ { ptr @str.1371, i64 4 }, %if.then.1158 ], [ %callN, %if.else.1159 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Response(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1161, label %if.else.1162 + +if.then.1161: ; preds = %entry + br label %if.merge.1163 + +if.else.1162: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1376, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1375, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1163 + +if.merge.1163: ; preds = %if.else.1162, %if.then.1161 + %bp = phi { ptr, i64 } [ { ptr @str.1374, i64 4 }, %if.then.1161 ], [ %callN, %if.else.1162 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_PoolState(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1164, label %if.else.1165 + +if.then.1164: ; preds = %entry + br label %if.merge.1166 + +if.else.1165: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1379, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1378, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.1166 + +if.merge.1166: ; preds = %if.else.1165, %if.then.1164 + %bp = phi { ptr, i64 } [ { ptr @str.1377, i64 4 }, %if.then.1164 ], [ %callN, %if.else.1165 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__mptr_Conn(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1167, label %if.else.1168 + +if.then.1167: ; preds = %entry + br label %if.merge.1169 + +if.else.1168: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1382, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1381, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1169 + +if.merge.1169: ; preds = %if.else.1168, %if.then.1167 + %bp = phi { ptr, i64 } [ { ptr @str.1380, i64 4 }, %if.then.1167 ], [ %callN, %if.else.1168 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Server(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1170, label %if.else.1171 + +if.then.1170: ; preds = %entry + br label %if.merge.1172 + +if.else.1171: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1385, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1384, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1172 + +if.merge.1172: ; preds = %if.else.1171, %if.then.1170 + %bp = phi { ptr, i64 } [ { ptr @str.1383, i64 4 }, %if.then.1170 ], [ %callN, %if.else.1171 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_usize(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1173, label %if.else.1174 + +if.then.1173: ; preds = %entry + br label %if.merge.1175 + +if.else.1174: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1388, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1387, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.1175 + +if.merge.1175: ; preds = %if.else.1174, %if.then.1173 + %bp = phi { ptr, i64 } [ { ptr @str.1386, i64 4 }, %if.then.1173 ], [ %callN, %if.else.1174 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1176, label %if.else.1177 + +if.then.1176: ; preds = %entry + br label %if.merge.1178 + +if.else.1177: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1391, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1390, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.1178 + +if.merge.1178: ; preds = %if.else.1177, %if.then.1176 + %bp = phi { ptr, i64 } [ { ptr @str.1389, i64 4 }, %if.then.1176 ], [ %callN, %if.else.1177 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_MutexBuf(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1179, label %if.else.1180 + +if.then.1179: ; preds = %entry + br label %if.merge.1181 + +if.else.1180: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1394, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1393, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1181 + +if.merge.1181: ; preds = %if.else.1180, %if.then.1179 + %bp = phi { ptr, i64 } [ { ptr @str.1392, i64 4 }, %if.then.1179 ], [ %callN, %if.else.1180 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_CondBuf(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1182, label %if.else.1183 + +if.then.1182: ; preds = %entry + br label %if.merge.1184 + +if.else.1183: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1397, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1396, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.1184 + +if.merge.1184: ; preds = %if.else.1183, %if.then.1182 + %bp = phi { ptr, i64 } [ { ptr @str.1395, i64 4 }, %if.then.1182 ], [ %callN, %if.else.1183 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Mutex(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1185, label %if.else.1186 + +if.then.1185: ; preds = %entry + br label %if.merge.1187 + +if.else.1186: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1400, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1399, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.1187 + +if.merge.1187: ; preds = %if.else.1186, %if.then.1185 + %bp = phi { ptr, i64 } [ { ptr @str.1398, i64 4 }, %if.then.1185 ], [ %callN, %if.else.1186 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Cond(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1188, label %if.else.1189 + +if.then.1188: ; preds = %entry + br label %if.merge.1190 + +if.else.1189: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1403, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1402, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1190 + +if.merge.1190: ; preds = %if.else.1189, %if.then.1188 + %bp = phi { ptr, i64 } [ { ptr @str.1401, i64 4 }, %if.then.1188 ], [ %callN, %if.else.1189 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Thread(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1191, label %if.else.1192 + +if.then.1191: ; preds = %entry + br label %if.merge.1193 + +if.else.1192: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1406, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1405, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1193 + +if.merge.1193: ; preds = %if.else.1192, %if.then.1191 + %bp = phi { ptr, i64 } [ { ptr @str.1404, i64 4 }, %if.then.1191 ], [ %callN, %if.else.1192 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__mptr_PoolTask(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1194, label %if.else.1195 + +if.then.1194: ; preds = %entry + br label %if.merge.1196 + +if.else.1195: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1409, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1408, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.1196 + +if.merge.1196: ; preds = %if.else.1195, %if.then.1194 + %bp = phi { ptr, i64 } [ { ptr @str.1407, i64 4 }, %if.then.1194 ], [ %callN, %if.else.1195 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__mptr_usize(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + store ptr %load, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1197, label %if.else.1198 + +if.then.1197: ; preds = %entry + br label %if.merge.1199 + +if.else.1198: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1412, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1411, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.1199 + +if.merge.1199: ; preds = %if.else.1198, %if.then.1197 + %bp = phi { ptr, i64 } [ { ptr @str.1410, i64 4 }, %if.then.1197 ], [ %callN, %if.else.1198 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_FiberCtx(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1200, label %if.else.1201 + +if.then.1200: ; preds = %entry + br label %if.merge.1202 + +if.else.1201: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1415, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1414, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1202 + +if.merge.1202: ; preds = %if.else.1201, %if.then.1200 + %bp = phi { ptr, i64 } [ { ptr @str.1413, i64 4 }, %if.then.1200 ], [ %callN, %if.else.1201 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Fiber(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1203, label %if.else.1204 + +if.then.1203: ; preds = %entry + br label %if.merge.1205 + +if.else.1204: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1418, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1417, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.1205 + +if.merge.1205: ; preds = %if.else.1204, %if.then.1203 + %bp = phi { ptr, i64 } [ { ptr @str.1416, i64 4 }, %if.then.1203 ], [ %callN, %if.else.1204 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1206, label %if.else.1207 + +if.then.1206: ; preds = %entry + br label %if.merge.1208 + +if.else.1207: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1421, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1420, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.1208 + +if.merge.1208: ; preds = %if.else.1207, %if.then.1206 + %bp = phi { ptr, i64 } [ { ptr @str.1419, i64 4 }, %if.then.1206 ], [ %callN, %if.else.1207 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CBlockingIo(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1209, label %if.else.1210 + +if.then.1209: ; preds = %entry + br label %if.merge.1211 + +if.else.1210: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1424, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1423, i64 13 }, { ptr, i64 } %callN) + br label %if.merge.1211 + +if.merge.1211: ; preds = %if.else.1210, %if.then.1209 + %bp = phi { ptr, i64 } [ { ptr @str.1422, i64 4 }, %if.then.1209 ], [ %callN, %if.else.1210 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_SpawnOpts(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1212, label %if.else.1213 + +if.then.1212: ; preds = %entry + br label %if.merge.1214 + +if.else.1213: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1427, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1426, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.1214 + +if.merge.1214: ; preds = %if.else.1213, %if.then.1212 + %bp = phi { ptr, i64 } [ { ptr @str.1425, i64 4 }, %if.then.1212 ], [ %callN, %if.else.1213 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ParkToken(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1215, label %if.else.1216 + +if.then.1215: ; preds = %entry + br label %if.merge.1217 + +if.else.1216: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1430, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1429, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.1217 + +if.merge.1217: ; preds = %if.else.1216, %if.then.1215 + %bp = phi { ptr, i64 } [ { ptr @str.1428, i64 4 }, %if.then.1215 ], [ %callN, %if.else.1216 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_Fiber(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1218, label %if.else.1219 + +if.then.1218: ; preds = %entry + br label %if.merge.1220 + +if.else.1219: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1433, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1432, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1220 + +if.merge.1220: ; preds = %if.else.1219, %if.then.1218 + %bp = phi { ptr, i64 } [ { ptr @str.1431, i64 4 }, %if.then.1218 ], [ %callN, %if.else.1219 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_FiberCtx(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1221, label %if.else.1222 + +if.then.1221: ; preds = %entry + br label %if.merge.1223 + +if.else.1222: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1436, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1435, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.1223 + +if.merge.1223: ; preds = %if.else.1222, %if.then.1221 + %bp = phi { ptr, i64 } [ { ptr @str.1434, i64 4 }, %if.then.1221 ], [ %callN, %if.else.1222 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_u64(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1224, label %if.else.1225 + +if.then.1224: ; preds = %entry + br label %if.merge.1226 + +if.else.1225: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1439, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1438, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.1226 + +if.merge.1226: ; preds = %if.else.1225, %if.then.1224 + %bp = phi { ptr, i64 } [ { ptr @str.1437, i64 4 }, %if.then.1224 ], [ %callN, %if.else.1225 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_AR_13_u64(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1227, label %if.else.1228 + +if.then.1227: ; preds = %entry + br label %if.merge.1229 + +if.else.1228: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1442, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1441, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.1229 + +if.merge.1229: ; preds = %if.else.1228, %if.then.1227 + %bp = phi { ptr, i64 } [ { ptr @str.1440, i64 4 }, %if.then.1227 ], [ %callN, %if.else.1228 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1230, label %if.else.1231 + +if.then.1230: ; preds = %entry + br label %if.merge.1232 + +if.else.1231: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1445, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1444, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1232 + +if.merge.1232: ; preds = %if.else.1231, %if.then.1230 + %bp = phi { ptr, i64 } [ { ptr @str.1443, i64 4 }, %if.then.1230 ], [ %callN, %if.else.1231 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1233, label %if.else.1234 + +if.then.1233: ; preds = %entry + br label %if.merge.1235 + +if.else.1234: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1448, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1447, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.1235 + +if.merge.1235: ; preds = %if.else.1234, %if.then.1233 + %bp = phi { ptr, i64 } [ { ptr @str.1446, i64 4 }, %if.then.1233 ], [ %callN, %if.else.1234 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1236, label %if.else.1237 + +if.then.1236: ; preds = %entry + br label %if.merge.1238 + +if.else.1237: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1451, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1450, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1238 + +if.merge.1238: ; preds = %if.else.1237, %if.then.1236 + %bp = phi { ptr, i64 } [ { ptr @str.1449, i64 4 }, %if.then.1236 ], [ %callN, %if.else.1237 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1239, label %if.else.1240 + +if.then.1239: ; preds = %entry + br label %if.merge.1241 + +if.else.1240: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1454, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1453, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.1241 + +if.merge.1241: ; preds = %if.else.1240, %if.then.1239 + %bp = phi { ptr, i64 } [ { ptr @str.1452, i64 4 }, %if.then.1239 ], [ %callN, %if.else.1240 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1242, label %if.else.1243 + +if.then.1242: ; preds = %entry + br label %if.merge.1244 + +if.else.1243: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1457, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1456, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.1244 + +if.merge.1244: ; preds = %if.else.1243, %if.then.1242 + %bp = phi { ptr, i64 } [ { ptr @str.1455, i64 4 }, %if.then.1242 ], [ %callN, %if.else.1243 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1245, label %if.else.1246 + +if.then.1245: ; preds = %entry + br label %if.merge.1247 + +if.else.1246: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1460, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1459, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1247 + +if.merge.1247: ; preds = %if.else.1246, %if.then.1245 + %bp = phi { ptr, i64 } [ { ptr @str.1458, i64 4 }, %if.then.1245 ], [ %callN, %if.else.1246 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_BuildOptions(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1248, label %if.else.1249 + +if.then.1248: ; preds = %entry + br label %if.merge.1250 + +if.else.1249: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1463, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1462, i64 13 }, { ptr, i64 } %callN) + br label %if.merge.1250 + +if.merge.1250: ; preds = %if.else.1249, %if.then.1248 + %bp = phi { ptr, i64 } [ { ptr @str.1461, i64 4 }, %if.then.1248 ], [ %callN, %if.else.1249 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_List__string(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1251, label %if.else.1252 + +if.then.1251: ; preds = %entry + br label %if.merge.1253 + +if.else.1252: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1466, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1465, i64 13 }, { ptr, i64 } %callN) + br label %if.merge.1253 + +if.merge.1253: ; preds = %if.else.1252, %if.then.1251 + %bp = phi { ptr, i64 } [ { ptr @str.1464, i64 4 }, %if.then.1251 ], [ %callN, %if.else.1252 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_List__string(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1254, label %if.else.1255 + +if.then.1254: ; preds = %entry + br label %if.merge.1256 + +if.else.1255: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1469, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1468, i64 14 }, { ptr, i64 } %callN) + br label %if.merge.1256 + +if.merge.1256: ; preds = %if.else.1255, %if.then.1254 + %bp = phi { ptr, i64 } [ { ptr @str.1467, i64 4 }, %if.then.1254 ], [ %callN, %if.else.1255 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Allocator(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1257, label %if.else.1258 + +if.then.1257: ; preds = %entry + br label %if.merge.1259 + +if.else.1258: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1472, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1471, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.1259 + +if.merge.1259: ; preds = %if.else.1258, %if.then.1257 + %bp = phi { ptr, i64 } [ { ptr @str.1470, i64 4 }, %if.then.1257 ], [ %callN, %if.else.1258 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_mptr_string(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1260, label %if.else.1261 + +if.then.1260: ; preds = %entry + br label %if.merge.1262 + +if.else.1261: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1475, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1474, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.1262 + +if.merge.1262: ; preds = %if.else.1261, %if.then.1260 + %bp = phi { ptr, i64 } [ { ptr @str.1473, i64 4 }, %if.then.1260 ], [ %callN, %if.else.1261 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ProcessResult(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1263, label %if.else.1264 + +if.then.1263: ; preds = %entry + br label %if.merge.1265 + +if.else.1264: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1478, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1477, i64 14 }, { ptr, i64 } %callN) + br label %if.merge.1265 + +if.merge.1265: ; preds = %if.else.1264, %if.then.1263 + %bp = phi { ptr, i64 } [ { ptr @str.1476, i64 4 }, %if.then.1263 ], [ %callN, %if.else.1264 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_SL_string(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1266, label %if.else.1267 + +if.then.1266: ; preds = %entry + br label %if.merge.1268 + +if.else.1267: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1481, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1480, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1268 + +if.merge.1268: ; preds = %if.else.1267, %if.then.1266 + %bp = phi { ptr, i64 } [ { ptr @str.1479, i64 4 }, %if.then.1266 ], [ %callN, %if.else.1267 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_AR_2_string(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1269, label %if.else.1270 + +if.then.1269: ; preds = %entry + br label %if.merge.1271 + +if.else.1270: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1484, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1483, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.1271 + +if.merge.1271: ; preds = %if.else.1270, %if.then.1269 + %bp = phi { ptr, i64 } [ { ptr @str.1482, i64 4 }, %if.then.1269 ], [ %callN, %if.else.1270 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_opt_cstring(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1272, label %if.else.1273 + +if.then.1272: ; preds = %entry + br label %if.merge.1274 + +if.else.1273: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1487, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1486, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.1274 + +if.merge.1274: ; preds = %if.else.1273, %if.then.1272 + %bp = phi { ptr, i64 } [ { ptr @str.1485, i64 4 }, %if.then.1272 ], [ %callN, %if.else.1273 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_cstring(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1275, label %if.else.1276 + +if.then.1275: ; preds = %entry + br label %if.merge.1277 + +if.else.1276: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1490, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1489, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.1277 + +if.merge.1277: ; preds = %if.else.1276, %if.then.1275 + %bp = phi { ptr, i64 } [ { ptr @str.1488, i64 4 }, %if.then.1275 ], [ %callN, %if.else.1276 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_mptr_u8(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1278, label %if.else.1279 + +if.then.1278: ; preds = %entry + br label %if.merge.1280 + +if.else.1279: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1493, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1492, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.1280 + +if.merge.1280: ; preds = %if.else.1279, %if.then.1278 + %bp = phi { ptr, i64 } [ { ptr @str.1491, i64 4 }, %if.then.1278 ], [ %callN, %if.else.1279 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_isize(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1281, label %if.else.1282 + +if.then.1281: ; preds = %entry + br label %if.merge.1283 + +if.else.1282: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1496, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1495, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.1283 + +if.merge.1283: ; preds = %if.else.1282, %if.then.1281 + %bp = phi { ptr, i64 } [ { ptr @str.1494, i64 4 }, %if.then.1281 ], [ %callN, %if.else.1282 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_AR_4_Any(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1284, label %if.else.1285 + +if.then.1284: ; preds = %entry + br label %if.merge.1286 + +if.else.1285: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1499, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1498, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1286 + +if.merge.1286: ; preds = %if.else.1285, %if.then.1284 + %bp = phi { ptr, i64 } [ { ptr @str.1497, i64 4 }, %if.then.1284 ], [ %callN, %if.else.1285 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_AR_5_Any(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1287, label %if.else.1288 + +if.then.1287: ; preds = %entry + br label %if.merge.1289 + +if.else.1288: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1502, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1501, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1289 + +if.merge.1289: ; preds = %if.else.1288, %if.then.1287 + %bp = phi { ptr, i64 } [ { ptr @str.1500, i64 4 }, %if.then.1287 ], [ %callN, %if.else.1288 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1290, label %if.else.1291 + +if.then.1290: ; preds = %entry + br label %if.merge.1292 + +if.else.1291: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1505, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1504, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.1292 + +if.merge.1292: ; preds = %if.else.1291, %if.then.1290 + %bp = phi { ptr, i64 } [ { ptr @str.1503, i64 4 }, %if.then.1290 ], [ %callN, %if.else.1291 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_type_value(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %allocaN = alloca i64, align 8 + %load = load ptr, ptr %alloca, align 8 + %pti = ptrtoint ptr %load to i64 + store i64 %pti, ptr %allocaN, align 8 + %loadN = load i64, ptr %allocaN, align 8 + %icmp = icmp eq i64 %loadN, 0 + br i1 %icmp, label %if.then.1293, label %if.else.1294 + +if.then.1293: ; preds = %entry + br label %if.merge.1295 + +if.else.1294: ; preds = %entry + %loadN = load i64, ptr %allocaN, align 8 + %call = call { ptr, i64 } @int_to_hex_string(ptr %0, i64 %loadN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1508, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1507, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.1295 + +if.merge.1295: ; preds = %if.else.1294, %if.then.1293 + %bp = phi { ptr, i64 } [ { ptr @str.1506, i64 4 }, %if.then.1293 ], [ %callN, %if.else.1294 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %1) #0 { +entry: + %alloca = alloca { { i32 }, i1 }, align 8 + %ba.tmp = alloca { i32 }, align 8 + store { { i32 }, i1 } %1, ptr %alloca, align 4 + %load = load { { i32 }, i1 }, ptr %alloca, align 4 + %oh.has = extractvalue { { i32 }, i1 } %load, 1 + %lnot = xor i1 %oh.has, true + br i1 %lnot, label %if.then.1303, label %if.merge.1304 + +if.then.1303: ; preds = %entry + ret { ptr, i64 } { ptr @str.1509, i64 4 } + +if.merge.1304: ; preds = %entry + %loadN = load { { i32 }, i1 }, ptr %alloca, align 4 + %ou.val = extractvalue { { i32 }, i1 } %loadN, 0 + store { i32 } %ou.val, ptr %ba.tmp, align 4 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 133, i64 undef }, i64 %ba.p2i, 1 + %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %1) #0 { +entry: + %alloca = alloca { { ptr, i64 }, i1 }, align 8 + %ba.tmp = alloca { ptr, i64 }, align 8 + store { { ptr, i64 }, i1 } %1, ptr %alloca, align 8 + %load = load { { ptr, i64 }, i1 }, ptr %alloca, align 8 + %oh.has = extractvalue { { ptr, i64 }, i1 } %load, 1 + %lnot = xor i1 %oh.has, true + br i1 %lnot, label %if.then.1305, label %if.merge.1306 + +if.then.1305: ; preds = %entry + ret { ptr, i64 } { ptr @str.1510, i64 4 } + +if.merge.1306: ; preds = %entry + %loadN = load { { ptr, i64 }, i1 }, ptr %alloca, align 8 + %ou.val = extractvalue { { ptr, i64 }, i1 } %loadN, 0 + store { ptr, i64 } %ou.val, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 12, i64 undef }, i64 %ba.p2i, 1 + %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @optional_to_string__opt_cstring(ptr %0, ptr %1) #0 { +entry: + %alloca = alloca ptr, align 8 + store ptr %1, ptr %alloca, align 8 + %load = load ptr, ptr %alloca, align 8 + %oh.nn = icmp ne ptr %load, null + %lnot = xor i1 %oh.nn, true + br i1 %lnot, label %if.then.1307, label %if.merge.1308 + +if.then.1307: ; preds = %entry + ret { ptr, i64 } { ptr @str.1511, i64 4 } + +if.merge.1308: ; preds = %entry + %loadN = load ptr, ptr %alloca, align 8 + %pNi = ptrtoint ptr %loadN to i64 + %ba.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 + %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %1) #0 { +entry: + %alloca = alloca { { i32, { ptr, i64 } }, i1 }, align 8 + %ba.tmp = alloca { i32, { ptr, i64 } }, align 8 + store { { i32, { ptr, i64 } }, i1 } %1, ptr %alloca, align 8 + %load = load { { i32, { ptr, i64 } }, i1 }, ptr %alloca, align 8 + %oh.has = extractvalue { { i32, { ptr, i64 } }, i1 } %load, 1 + %lnot = xor i1 %oh.has, true + br i1 %lnot, label %if.then.1309, label %if.merge.1310 + +if.then.1309: ; preds = %entry + ret { ptr, i64 } { ptr @str.1512, i64 4 } + +if.merge.1310: ; preds = %entry + %loadN = load { { i32, { ptr, i64 } }, i1 }, ptr %alloca, align 8 + %ou.val = extractvalue { { i32, { ptr, i64 } }, i1 } %loadN, 0 + store { i32, { ptr, i64 } } %ou.val, ptr %ba.tmp, align 8 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 139, i64 undef }, i64 %ba.p2i, 1 + %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + ret { ptr, i64 } %call +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %1) #0 { +entry: + %alloca = alloca { [64 x i8], i1 }, align 8 + %ba.tmp = alloca [64 x i8], align 1 + store { [64 x i8], i1 } %1, ptr %alloca, align 1 + %load = load { [64 x i8], i1 }, ptr %alloca, align 1 + %oh.has = extractvalue { [64 x i8], i1 } %load, 1 + %lnot = xor i1 %oh.has, true + br i1 %lnot, label %if.then.1311, label %if.merge.1312 + +if.then.1311: ; preds = %entry + ret { ptr, i64 } { ptr @str.1513, i64 4 } + +if.merge.1312: ; preds = %entry + %loadN = load { [64 x i8], i1 }, ptr %alloca, align 1 + %ou.val = extractvalue { [64 x i8], i1 } %loadN, 0 + store [64 x i8] %ou.val, ptr %ba.tmp, align 1 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %ba.val = insertvalue { i64, i64 } { i64 187, i64 undef }, i64 %ba.p2i, 1 + %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + ret { ptr, i64 } %call +} diff --git a/examples/expected/1809-concurrency-fiber-guard-stack.stderr b/examples/expected/1809-concurrency-fiber-guard-stack.stderr new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/examples/expected/1809-concurrency-fiber-guard-stack.stderr @@ -0,0 +1 @@ + diff --git a/examples/expected/1809-concurrency-fiber-guard-stack.stdout b/examples/expected/1809-concurrency-fiber-guard-stack.stdout new file mode 100644 index 00000000..5f513c83 --- /dev/null +++ b/examples/expected/1809-concurrency-fiber-guard-stack.stdout @@ -0,0 +1,2 @@ +guard armed: 1 +sum: 20100